Siebel Partner Relationship Management Administration Guide > Setting Up Application Services Interfaces > ASI Workflows >

Business Services Used by ASIs


A set of business services named PRM ANI Utility Services have been created to support both opportunity transfer and shopping cart transfers.

Most of these service methods deal with the manipulation Integration Objects, and rely on the Siebel Adapter Service on the internal side. Whenever possible, please follow usage examples from the workflows provided.

The PRM ANI Utility Services can only be used in situations where there is only one instance of a component type in the hierarchy path. So if there are multiple instances of a Contact under the Opportunity, you cannot get the Contact element from the integration object. We cannot do this at this time because each Hierarchy Path we provide (Account.Contact in this case) must be unique. If this constraint must be violated, then we must to refer to each instance with a separate Integration Component Name. For example, if Person had the same type of data as Contact, then we could use a reference to Account.Person to store another contact.

Conventions for Hierarchy Paths

We have used the following convention for Hierarchy paths in a number of our Service Methods:

Hierarchy Paths are inputs of the form IC1.IC2.IC3..., where IC1, IC2, IC3, and so on, are Integration Component Names that tell the method how to traverse the Object definition to find the right place to put the child.

For example, if we are placing a business address under the Account under the Opportunity Object, the path would read simply Opportunity.Account.

For the Set Child Type Method, a slightly different methodology in the Hierarchy Path is used:

In the case of Set Child Type, we refer to IC1, IC2, IC3, and so on as the actual structure of our hierarchy. The examples listed come from the ANI Shopping Cart Message (PRM ANI) Integration Object.

The first three substrings will appear as follows: ChildObject.ListOfMessageType.RootComponentName. An example is: SiebelMessage.ListOfANI Shopping Cart Message (PRM ANI).Message Details

The following substrings will alternate between ListOf Component Names and the Component Names themselves. An example is: ListOfChannel Partner.Channel Partner.ListOfChannel Partner Business Address.Channel Partner Business Address

Append Hierarchy

This method is used to append a Child Integration Object to a Parent Integration Object. The Parent object must contain the full definition of the Child object.

See the notes about calls to the Load Child Hierarchy Method. There is a dependency in calls to Append Hierarchy on calls to Load Child Hierarchy, so Load Child Hierarchy Method must be called before calling this method.

  • Inputs:
    • Hierarchy Path - String. Used to denote where to append the Child to the Parent.
    • SiebelMessage - Hierarchy. Used to store the Integration Object data of the Parent Hierarchy.
  • Outputs:
    • SiebelMessage - Hierarchy. The resulting Object Instance with the Child attached to the parent in the correct place on the data structure.
  • Example:

    Transfer Cart Outbound Create Header Process, Append Header to Message

Create Empty Hierarchy

This method is used to Create an empty Integration Object instance with the same structure as a normal integration object but with two notes.

All data fields are present and empty (initialized to empty string).

Each component in the definition of the Integration Object is instantiated Once and only Once in exactly the structure that is prescribed by the definition.

  • Inputs:
    • Hierarchy Name - String. Provides the name of the Integration Object to Instantiate.
    • Message Id - String. (Optional) Provides the Message Id that is used to identify this specific Integration Object Instance. If this is not provided, we will calculate a new one.
  • Outputs:
    • SiebelMessage - Hierarchy. Returns the Integration Object Instance with the empty Component fields.
  • Example:

    Transfer Cart Outbound Create Header Process, Create Header Instance

Generate Key

This method is used to return a string that can be used to uniquely identify a record in the Service's business component. In the case of Workflow Processes, this refers to the primary business component of the processes' business object.

  • Inputs:
    • Key Description - String. Used to describe the form of the string to be generated.

      This input is in the form [A].[B].[C]... where A, B, C... are names of fields that should correspond to a unique key in your database.

      For instance, if we were using Contact, [Last Name].[First Name] would generate an insufficient value. However, [Id].[Last Name] would work because [Id] itself is guaranteed unique in this system.

  • Outputs:
    • Source Key - String. Used to identify the record in the service's business component.
  • Example:

    Transfer Cart Inbound Create Cart Process, Create New quote Key

Get Child Type

This method is used to report the Child Type of a Property Set. For integration objects, this is generally of type SiebelMessage.

  • Inputs:
    • SiebelMessage - Hierarchy. Hierarchy children that we want to examine.
  • Outputs:
    • Child XX - String. (Optional) The outputs will have names numbering from 0 to n-1 where n is the number of children in the input Siebel Message.
    • For example, if there are two children, the output property names will be Child 0 and Child 1. The output values are the names of the Child Types.
  • Example:

    No example

Get Hierarchy Value

This method is used to return a string field value in the Integration Object Structure.

  • Inputs:
    • Hierarchy Path - String. Path to the IC parent of the field. Note that this path does not include the field name in it.
    • Property Name - String. The name of the field we want to read.
    • Siebel Message - Hierarchy. The Integration Object we are looking into.
    • ReturnBlankIfNull - String. (Optional) Allows the returned value to be blank, rather than returning an error if the field is not found in the hierarchy.
  • Outputs:
    • Property Value - String. The value of the field we are examining.
  • Example:

    Transfer Cart Inbound Create Contact Process, Get Contact Street Address

Get System Preference

This method is used to look up values in the System Preferences.

  • Inputs:
    • System Preference Name - String. The name of the System Preference to look for.
  • Outputs:
    • System Preference Value - String. The value of the Preference.
  • Example:

    Transfer Cart Outbound Request Process, Get Organization DUNS

Isolate Integration Id

This method is used to strip an Integration Object instance of everything except for the Integration Id. Even child components will be stripped away.

This method is not called by PRM ASIs, but is referenced by other ASIs. It is used because we want Siebel Adapter Operations to consider only the Integration Id to look for a record in some cases.

  • Inputs:
    • Siebel Message - Hierarchy. This contains the Object that we want to strip through.
  • Outputs:
    • Siebel Message - Hierarchy. This is the object that will be returned. The only field that will contain any data is the Integration Id.
  • Example:

    No Example

Load Child Hierarchy

This method is used to place a child hierarchy in memory to be used at a later time. It is used for operations that require two hierarchy type operands, such as Append Property Set.

  • Inputs:
    • Siebel Message - Hierarchy. The message one wants to load, to be operated upon later.
  • Outputs:
    • None
  • Example:

    Transfer Cart Outbound Create and Append Process, Set the Child Hierarchy

Parse Key

This method generates a search specification from a given Key and Key Description. The search specification can be fed into a query step (Siebel operation or otherwise) to look for the record that the Key has specified.

  • Inputs:
    • Key Description - String. Description of the Key, follows the format described in Generate Key.
    • Source Key - String. In conjunction with the description, defines the record we want to look at.
  • Outputs:
    • Search Spec - String. The search specification that we can use to execute the primary business component with. Only one record should be in this record set, since it is unique.
  • Example:

    Transfer Cart Inbound Create Quote Process, Parse Quote Key

Query Business Component

Provides a means to query any business component in the business object. This provides a bit more flexibility than the Standard Siebel Operation Query, since you can search the entire business component without regard to the links to the primary business component.

If both Search Spec and Query field are provided, the Search Spec will be chosen over the Query field arguments to execute the business component with. If neither is provided, then an error will be returned.

  • Inputs:
    • Business Component - String. The name of the business component in the business object to Query through.
    • Keep Context - String. (Optional, defaults to Yes) String defining whether we query with regard to the current state of the business object or if we instantiate a new business object to query with (outside of context).
    • Output Field - String. (Optional) The values we want to have returned from the record. A number can be appended to the Name so that more than one Field can be retrieved.

      For instance, if we wanted a Name and Location, we would have arguments Output Field 1 and Output Field 2 with Name and Location as their values. If there is more than one record with the search specification, we obtain values from the first record in the executed business component.

    • Query Field - String. (Optional) The input values here determine the search specification that is used on the business component.

      To use this argument correctly, one must append the name of the field to the Argument name. The value of the field can be any Workflow Process evaluated string. For instance, if you are looking for a record where [Account Id] = Process Property [Siebel Operation Object Id], you would have:

      • Argument Name: Query Field Account Id
      • Type: Process Property
      • Process Property: Siebel Operation Object Id
    • Search Spec - String. (Optional) If the search specification is more easily formulated as a string, then one can choose to provide it here. It can have the same format as any other search specification in Siebel Tools, with the added bonus that you can also choose to have a Workflow Process evaluated string as a possible input.
  • Outputs:
    • Record Count - String. Returns a string representation of the number of records found in the query, up to 100. If there are more than 100 records, returns the value -1, indicating that there are too many records in the query.
    • Output Fields - String. Fields that we asked to return in the query are returned with the property name equal to the field name.

      In our example above, we would find two output arguments, named Name and Location. Their values would be those of the first record returned by the query.

  • Example:

    PRM ANI Inbound Create Account Process, Find Account

Detach Hierarchy

This method is a complementary function to Append Hierarchy. It basically takes the Specified Integration Object and extracts it from the Parent Object.

  • Inputs:
    • Child Hierarchy Name - String. The name of the Child hierarchy to instantiate from the Parent Data.
    • Hierarchy Path - String. Specifies the path to trace to find the Child Root Integration Component.
    • Siebel Message - Hierarchy. Specifies the Parent to extract the Child Object from.
  • Outputs:
    • SiebelMessage - Hierarchy. The Child Object Instance defined by The Child Hierarchy Name, with data contributed from the input Siebel Message.
  • Example:

    PRM ANI Inbound Create Account Process, Get Account Object

Set Child Type

This method is a complementary Function to Get Child Type. It sets the Hierarchy type, in case we need to change something to the type Siebel Message.

  • Inputs:
    • Siebel Message - Hierarchy. The object whose children we are trying to set the type of.
    • Child Type - String. (Optional) Basically lists the current Child types and what you want to change their values to. For instance, if a user wanted to change a child of type Account to be a child of type Partner, the user would need to specify the following:
      • Argument Name: Child Type: Account
      • Argument Value: Partner
    • Hierarchy Path - String. (Optional). Used to tell the method where to do its work. For more information about the structure of this string, see Conventions for Hierarchy Paths.
  • Outputs:
    • Siebel Message - Hierarchy. The existing object with the child type changed.
  • Example:

    Transfer Cart Outbound Request Process, Rename Root Object 1

Set Hierarchy Value

This method is a complementary Function to Get Hierarchy Value. It is used to set the value of a property in an object.

  • Inputs:
    • Hierarchy Path - String. Specifies the Integration Component path to the field.
    • Property Name - String. The name of the Property you want to set.
    • Property Value - String. The Value you want to set the Property equal to.
    • Siebel Message - Hierarchy. The object that you want to have this new field.

      If there is a problem with the path (a component in the path cannot be found), an error will be returned.

  • Outputs:
    • Siebel Message - Hierarchy. The object with the Hierarchy value set correctly.
  • Example:

    Transfer Cart Outbound Create Header Process, Set Message Time Stamp

Siebel Partner Relationship Management Administration Guide