Oracle Customer Hub (UCM) Master Data Management Reference > ASIs and Messages for Oracle Master Data Management Applications > Application Services Interfaces for Oracle Master Data Management Applications >

About CRMML Messages


Customer Relationship Management Markup Language (CRMML) is a Siebel XML specification for customer-centric data exchange with other enterprise applications and Oracle Customer Hub (UCM) applications. External applications send CRMML request messages to Siebel Business Applications and receive CRMML messages in response.

CRMML messages contain an envelope, a header section, and a body section. The message specification focuses on the hierarchy and definitions of the header elements. It allows users to extend the body section with user-defined elements as long as the object descriptors in the header section describe the usage of the elements in a body section.

Code Example of a CRMML Message

The following example illustrates the layers of a CRMML message:

<?xml version="1.0" encoding="UTF-8>

<CRMML>

<! CRMML Header section starts>

      <CRMHeader>

            <FromSystem>

                  <SystemInfo type="ID">

                  <SystemId>www.mycompany.com</SystemId>

                  <SystemRole>Insurance Application</SystemRole>

                  <SystemName>Client UI System</SystemName>

                  </SystemInfo>

            </FromSystem>

            <ToSystem>

                  <SystemInfo type="ID">

                  <SystemId>123-456-789</SystemId>

                  <SystemRole>Service Provider</SystemRole>

                  <SystemName>Siebel UCM System</SystemName>

                  </SystemInfo>

            </ToSystem>

            <MessageDescriptor>

                  <MessageId>11SC3I2002053116:43:45</MessageId>

                  <TransactionScope>any</TransactionScope>

                  <Timestamp>01/01/2001</Timestamp>

                  <TimeToLive>365</TimeToLive>

            </MessageDescriptor>

      </CRMHeader>

<!CRMML Header section ends>

      <PartyPackage>

         <InsertContactProfile>

               <Contact>

                     <Id>ext2223</Id>

                     <EmailAddress>cifemail</EmailAddress>

                     <FaxPhone>5555555555</FaxPhone>

                     <FirstName>0099INFN</FirstName>

                     <HomePhone>1111111111</HomePhone>

                     <LastName>0099INLN</LastName>

               </Contact>

         </InsertContactProfile>

      </PartyPackage>

</CRMML>

Envelope and Header Section

The CRMML message has one envelope element <CRMML>. <CRMML> is the root element for a message. It contains one optional header element <CRMHeader> and one or more body elements. The envelope has no attributes.

The header includes elements for sender and receiver. The following is an example for communication parties:

<! CRMML Header section starts>

<CRMHeader>

   <FromSystem>

      <SystemInfo type="ID">

            <SystemId>www.mycompany.com</SystemId>

            <SystemRole>Insurance Application</SystemRole>

         <SystemName>Client UI System</SystemName>

      </SystemInfo>

   </FromSystem>

   <ToSystem>

      <SystemInfo type="ID">

         <SystemId>123-456-789</SystemId>

         <SystemRole>Service Provider</SystemRole>

         <SystemName>Siebel UCM System</SystemName>

      </SystemInfo>

   </ToSystem>

   ...

<CRMHeader>

In this code example, note the elements.

where:

  • <FromSystem> is the sender.
  • <ToSystem> is the receiver.
  • <SystemInfo> holds the system ID, system role, and the name of the system.

Both elements contain <SystemInfo> aggregate. In the example, sender is Client UI System and receiver is Siebel Master Data Applications System. Sender plays an insurance application role, and receiver plays a service provider's role.

The header also contains a message descriptor that depicts the body of the message and objects inside the body sections. An example of the message descriptor follows:

<CRMML>

<! CRMML Header section starts>

      <CRMHeader>

            <MessageDescriptor>

                  <MessageId>11SC3I2002053116:43:45</MessageId>

                  <TransactionScope>any</TransactionScope>

                  <Timestamp>Sunday</Timestamp>

                  <TimeToLive>OneYear</TimeToLive>

            </MessageDescriptor>

      </CRMHeader>

where:

  • <MessageId> identifies a single message, a pair of request or response messages, or a group of communication messages.
  • <Transaction scope> can be set to Any or All.
  • <Timestamp> is the creation time of a message
  • <TimeToLive> is the expiration time of a message. The receiver disregards a message if the message has expired.
  • <MessageDescriptor> can have zero or more <ObjectDescriptor> child elements.

The following object descriptor example illustrates the metadata for a remote procedure call in a message header:

<CRMHeader>

      <MessageDescriptor>

      ...

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">p1</ObjectId>

            <ObjectUsage>SoftwarePackage</ObjectUsage>

      </ObjectDescriptor>

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">m1</ObjectId>

            <ObjectUsage>Method</ObjectUsage>

      </ObjectDescriptor>

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">a1</ObjectId>

            <ObjectUsage>Argument</ObjectUsage>

      </ObjectDescriptor>

      </MessageDescriptor>

</CRMHeader>

<PartyPackage ID="p1">

      <InsertContactProfile ID="m1">

            <Contact ID="a1">

                  <Id>ext2223</Id>

where:

  • First <ObjectDescriptor>. Refers to the <PartyPackage> element in the message body by HREF. It indicates that <PartyPackage> is a software package. In this example, it is the Oracle Customer Hub (UCM).

  • Second <ObjectDescriptor>. Indicates that <InsertContactProfile> is a method in the package that the message intends to invoke.
  • Third <ObjectDescriptor>. Shows that <Contact> aggregate is the input argument for <InsertContactProfile>.

For an implementation of Oracle Customer Hub (UCM), the default usages of the first three elements are package, method, and argument. Therefore, no objective descriptor is required for Oracle Customer Hub (UCM) specific messages.

Certain values in the header are automatically generated by the connector, but you can specify others in the envelope integration object. Table 308 describes the elements and how they are configured. For system-generated attributes, there is no configuration available.

NOTE:  The CRMML envelope object information can be configured. It contains custom fields and works for both input and output formats. However, business services for Oracle Customer Hub (UCM) refer to information in this object and look for specific XML values. Make sure the specific fields exist in the business services before configuring CRMML.

Table 308. Header Elements
Element
Structure
Attribute
Description
Default
Configuration

CRMML

(top level)

 

CRMHeader

In CRMML

Not applicable

Header aggregate

Not applicable

Not applicable

FromSystem

In CRMHeader

Not applicable

FromSystem aggregate

Not applicable

Not applicable

SystemInfo

In FromSystem

Not applicable

SystemInfo aggregate

Not applicable

Not applicable

Type

Describes the type of SystemID such as ID or URL

ID

UCM Envelope Integration Object- SystemInfo Integration Component-type Integration Component Field, XML Literal Value

 

SystemId

Identifier of the system

123-456-789

UCM Envelope Integration Object- SystemInfo Integration Component- SystemId Integration Component Field, XML Literal Value

SystemName

Name of the system

SiebelCIFSystem

UCM Envelope Integration Object- SystemInfo Integration Component- SystemName Integration Component Field, XML Literal Value

SystemRole

The role that the system has.

Service Provider

UCM Envelope Integration Object- SystemInfo Integration Component- SystemRole Integration Component Field, XML Literal Value

ToSystem

In CRMHeader

Not applicable

ToSystem aggregate

Not applicable

Not applicable

SystemInfo

In ToSystem

Not applicable

SystemInfo aggregate

Not applicable

Not applicable

Type

Describes the type of SystemID such as ID or URL.

ID

UCM Envelope Integration Object- SystemInfo Integration Component- ToSystem_type Integration Component Field, XML Literal Value

SystemId

Identifier of the system

Not applicable

System generated

SystemName

Name of the system

Not applicable

System generated

SystemRole

The role that the system has.

Not applicable

System generated

Message Descriptor

In CRMHeader

MessageId

Identifier of the message

Not applicable

System generated

Transaction Scope

Currently, the only value supported for transaction scope is: Any.

Not applicable

UCM Envelope Integration Object->MessageDescriptor Integration Component->MessageDescriptor_TrasactionScope Integration Component Field, XML Literal Value

Timestamp

Time stamp of when the message is constructed

Not applicable

System generated

TimeToLive

Expiration length of the message from Timestamp value

Not applicable

UCM Envelope Integration Object->MessageDescriptor Integration Component->MessageDescriptor_ToLive Integration Component Field, XML Literal Value

Body Section

The body section contains user-defined message elements. The following is an example body section and is one of the messages supported by Siebel Master Data Management Applications.

<CRMML>

      <CRMHeader>

      ...

      </CRMHeader>

      <PartyPackage ID="p1">

            <InsertContactProfile ID="m1">

                  <Contact ID="a1">

                        <Id>ext2223</Id>

                        ...

The example indicates that an external application requests to insert a contact profile to the Siebel Master Data Applications database. The contact detail information is contained within the <Contact> aggregate.

Oracle Customer Hub (UCM) Master Data Management Reference Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Legal Notices.