Skip Navigation
Expand
The required changes to migrate from CCOM v1.2/1.3 to CCOM v1.4
Answer ID 12748   |   Last Review Date 01/16/2024

  
What are the required changes for migrating from CCOM v1.2/1.3 to CCOM v1.4?

Environment:
CCOM, Connect PHP, Connect REST, Connect Web Service for SOAP
 
Resolution:
The 17C Oracle B2C Service release introduced Connect Common Object Model (CCOM) v1.4. CCOM v1.4 delivered metadata improvements, support for bulk delete APIs and bulk extract operations amongst other enhancements. 
 
This answer aims to list the mandatory changes a customer must confirm to in order to migrate the older scripts and integrations to v1.4.
 
Click the plus sign next to the appropriate heading below to expand that section for viewing.
 

 Global Identifier Changes

 

1. Application Context

Application Context is a mandatory identifier field in the CCOM v1.4. The max length of the field is 40 characters. Application Context field should be specified in all three end points available for accessing the data via CCOM.

  • Connect PHP (CPHP)

    Application Context field should be specified for the CurrentContext object. Below is an example of how to pass the Application Context field.
use RightNow\Connect\v1_4 as RNCPHP;
$context = RNCPHP\ConnectAPI::getCurrentContext();
$context->ApplicationContext = "Test Integration";

 
  • Connect Web Services for SOAP (CWSS)

    Including AppID to ClientInfoHeader was already mandatory in previous versions for CWSS however the maximum length constraint for the application context is applicable from v1.4 onwards.
  • Connect REST (CREST)

    A custom header OSvC-CREST-Application-Context should be added to each request else the request will fail with the error code 400: Bad Request
     

 Connect PHP end point changes

  • The Connect Objects related to social objects (excluding the Knowledge) and their properties are renamed as Community objects and community object properties

    For more information, refer to Community object permissions.
     
  • The deprecated PHP Wrapper API function pur_prod_create() has been removed. This functionality is fully supported in the PurchasedProduct object. All uses of the wrapper function pur_prod_create() should be migrated to PurchasedProduct.
  • In the earlier versions, PHP API allowed creation of list duplicates when the list was not associated with its containing primary object. In v1.4, the PHP API has been updated to eliminate the creation of ConnectObjectKeyedList list items that have a key that is a duplicate of one or more items already in the list. However, duplicates existing in the list are allowed to remain. This update applies to any ConnectObject derived from ConnectObjectKeyedList. For CCOM versions 1.3 and lower, the error is ignored, but no duplicate is created.
     

Connect Web Services for SOAP end point changes

  • Consumers should pass either the ID or the LookupName of a NamedID and NamedIDHierarchy objects but not both. Passing both the parameters will result in an error.
  • In v1.4, addition of a row is supported for IncidentContactList and also the IncidentContactList can be replaced all together. But an update operation on IncidentContactList is not supported and will result in an error. This affects OtherContacts field for Incidents and Opportunities. Below snippet of code will result in error.

...

<ns4:OtherContacts action="update">
    <ns4:IncidentContactList xmlns="urn:base.ws.rightnow.com/v1_4" action='update'>
        <ns4:Contact>
            <ID xmlns="urn:base.ws.rightnow.com/v1_4" id="10" />
        </ns4:Contact>
    </ns4:IncidentContactList>
</ns4:OtherContacts>

...

  • The URL format is changed for all soap requests. The use of "cgi-bin" in the URL is not supported for any request using v1.4 onwards. However, for older versions v1.0 through v1.3 it is optional which means both URL formats are supported.
    • Old format: https://<sitename>/cgi-bin/interface.cfg/services/<soap|chat_soap|kf_soap>
    • New format: https://<sitename>/services/soap/connect/<soap|chat_soap|kf_soap>

      Please see examples below for new and old versions: 
       
    • v1.4+: 
      https://<VHOSTNAME>.com/services/soap/connect/soap?wsdl

      Note that the version of soap will default to the newest version unless you specify a specific type in your wsdl call.
       
    • v1.0 - 1.3:  
      https://<VHOSTNAME>.com/cgi-bin/<INTERFACE>.cfg/services/soap?wsdl=typed_v<CCOM version>
      https://<VHOSTNAME>.com/services/soap/connect/soap?wsdl

 Connect REST end point changes

  • In v1.4+, CREST throws the error code 503 in case of retrial errors when the server is busy. In earlier versions, a generic 500 error code was used.
  • In v1.4+, the default output json is in compact form instead of pretty printed form (removing all extra white spaces). A custom header (OSvC-Pretty-JSON) should be added to indicate whether the response should be pretty printed or not.
     

 Standard object field changes

  • Standard Content: StandardContent.ContentValue is a required field in v1.4. It was optional in previous versions.
  • Survey Session: Fetching SurveySession.Account through ROQL returns the account details of those which are populated for the respective object (tables) in v1.4. It should be noted that in v1.3, it returns NULL for those same accounts.
    • Example:  If they have account populated for Survey (surveys table in DB) and SurveySession (question_sessions table in DB) objects, and we execute the following ROQL queries:

      - select AssignedToAccount.* from Survey
      - select Account.* from SurveySession

      The above queries should give relevant account details in v1.4+.
       
  • Campaign: Campaign field in PurchasedProduct, TaskMarketingSettings and Opportunity is exposed as RN object in V 1.4+ instead of NamedID as in previous versions. All the operations (CRUD) for these objects with the Campaign should be in terms of object in v1.4+, but in 'NamedID' for V < 1.4.
  • SendMailingToContact API changes:
    • Chat is available as input from v1.4+.
    • Only one of incident or opportunity or chat could be specified as input else a bad request error will be returned.

In v1.4, the following fields have a minimum length of 1 character.

Account.DisplayName
Account.Login
Account.Signature
Address.City
Address.PostalCode
Address.Street
AnalyticsReportColumn.Description
AnalyticsReportColumn.Heading
AnalyticsReportFilter.Values
AnalyticsReportFilter.Prompt
AnalyticsReportRunResult.LookupName
AnalyticsReportSearchFilter.Values
Answer.Keywords
Answer.OriginalReferenceNumber
Answer.Question
Answer.Solution
Answer.Summary
Answer.URL
AnswerContent.Keywords
AnswerContent.Question
AnswerContent.Solution
AnswerContent.Summary
AnswerContent.URL
AnswerSummaryContent.Excerpt
AnswerSummaryContent.Title
AnswerSummaryContent.URL
Asset.Description
Asset.Name
Asset.SerialNumber
Banner.Text
Campaign.Name
Campaign.ObjectivesSummary
ChannelUsername.UserNumber
ChannelUsername.Username
Configuration.Name
Contact.Login
Contact.Title
ContactMarketingSettings.MarketingOrganizationName
ContactMarketingSettings.MarketingOrganizationNameAlt
ContactOpenIDAccount.URL
ContentGroupedSearch.InteractionToken
ContentGroupedSearch.SearchTerms
ContentRequestStatus.Description
Country.PhoneCode
Country.PhoneMask
Country.PostalMask
CurrentContext.ApplicationContext
Email.Address
EventSubscription.Class
EventSubscription.EndPoint
EventSubscription.Name
EventSubscription.ObjectShapeXml
ExecuteMarketingFlow.EntryPoint
FileAttachment.ContentType
FileAttachment.FileName
FileAttachmentAnswer.ContentType
FileAttachmentAnswer.FileName
FileAttachmentAnswer.Description
FileAttachmentAnswer.Name
FileAttachmentCommon.ContentType
FileAttachmentCommon.FileName
FileAttachmentCommon.Description
FileAttachmentCommon.Name
FileAttachmentIncident.ContentType
FileAttachmentIncident.FileName
FileAttachmentIncident.Description
FileAttachmentIncident.Name
FileAttachmentShared.ContentType
FileAttachmentShared.FileName
Holiday.Name
Incident.Subject
InterfaceValue.Value
KeyValueItem.Key
KeyValueItem.Value
KnowledgeStandardContentContentValue.Value
MailboxIncomingEmailSettings.ForwardRejectMessageAddress
MailboxOutgoingEmailSettings.DisplayName
MailboxOutgoingEmailSettings.FriendlyFromAddress
MailboxOutgoingEmailSettings.FromAddress
MailboxOutgoingEmailSettings.ReplyToAddress
MailMessage.FriendlyFromAddress
MailMessage.ReplyToAddress
MailMessage.Subject
MailMessageBody.Html
MailMessageBody.Text
MessageBase.Name
Note.Text
Opportunity.LeadRejectDescription
Opportunity.Name
Opportunity.Summary
Opportunity.WinLossDescription
Organization.Login
Organization.Name
Organization.NameFurigana
Organization.NewPassword
OsnRequest.RequestPayload
OsnRequest.RequestURI
PersonFullName.First
PersonFullName.Last
PersonName.First
PersonName.Last
Phone.Number
PurchasedProduct.Comment
PurchasedProduct.SerialNumber
Quote.Comment
Quote.Name
Quote.SentTo
QuoteLineItem.AdjustedDescription
QuoteLineItem.AdjustedName
QuoteLineItem.AdjustedPartNumber
QuoteLineItem.Comment
SalesProduct.PartNumber
SalesProductSchedule.Comment
SalesTerritory.Comment
SendOptions.DisplayName
SendOptions.Subject
SmartAssistantContentSearch.DetailedDescription
SmartAssistantContentSearch.Summary
SmartAssistantSearch.SessionToken
SmartAssistantSearch.Subject
SmartAssistantSearch.Body
SmartAssistantSuggestions.SessionToken
SmartAssistantSuggestions.DetailedDescription
SmartAssistantSuggestions.Summary
SocialQuestion.Body
SocialQuestion.Subject
SocialQuestionComment.Body
SocialQuestionCommentContent.Body
SocialQuestionCommentSummaryContent.Excerpt
SocialQuestionCommentSummaryContent.Title
SocialQuestionCommentSummaryContent.URL
SocialQuestionContent.Body
SocialQuestionSummaryContent.Excerpt
SocialQuestionSummaryContent.Title
SocialQuestionSummaryContent.URL
SocialUser.AvatarURL
SocialUser.DisplayName
SocialUserSummary.DisplayName
SocialUserSummary.AvatarURL
SSOTokenReference.Comment
SSOTokenReference.TokenHash
StandardContent.HotKey
StandardContent.Name
StandardContentContentValue.Value
StringFileAttachment.FileName
SummaryContent.Excerpt
SummaryContent.Title
SummaryContent.URL
Task.Name
Terminal.TerminalName
Terminal.LogMessage
Thread.MailHeader
Thread.Text
TimeBilled.Comment
TypedAddress.City
TypedAddress.PostalCode
TypedAddress.Street
Variable.Name