Integration Platform Technologies: Siebel Enterprise Application Integration > EAI Siebel Adapter Business Service > Configuring the EAI Siebel Adapter Business Service for Concurrency Control >

Modification IDs


To determine which Mod Id fields must be used as part of a Modification Key, you expose Mod Id fields for tables whose columns might be updated by that integration object. In some situations you might have to add corresponding integration component fields as well as business component fields.

NOTE:  The EAI Siebel Adapter can update base and extension tables. It might even update joined table columns through picklists that allow updates.

When using Modification IDs, the following behaviors are present:

  • All fields must be present in the integration object instance for the Mod Key to be used.
  • Only one defined Modification Key is present for each integration component. Unlike for User Keys, multiple Mod Keys are not allowed.

About the Modification ID for a Base Table

The integration component field Mod Id for a base table is created by the Integration Object Builder Wizard, but you must make sure it is active if it is needed for your business processes.

About the Modification ID for an Extension Table

An extension table's Mod Id field is accessible as extension table name.Mod Id in the business component, for example, S_ORG_EXT_X.Mod Id. However, if your business processes require this field, then you must manually add it to the integration object definition by copying the Mod Id field and changing the properties.

About the Modification ID for a Joined Table

A joined table's Mod Id field must be manually added in both business component and integration object definitions. Business component Mod Id fields for joined tables must:

  • Be prefixed with CX string and preferably followed by the name of the join
  • Be Joined over the correct join
  • Have MODIFICATION_NUM specified as underlying column of type DTYPE_INTEGER

About MVG and MVGAssociation Integration Components

For integration components that are of type MVG or MVGAssociation, in addition to the preceding steps, you must create user properties MVGFieldName and AssocFieldName for each Modification ID integration component field, respectively, and set the name of the field shown in the parent business component as the value.

To configure the EAI Siebel Adapter business service for concurrency control

  1. For each integration component, identify all needed Modification IDs:

    NOTE:  In addition to the Modification ID for the base table, Modification IDs for tables that are used through one-to-one extension as well as through implicit joins are relevant. For example, on modifying an account record MODIFICATION_NUM column on S_ORG_EXT is updated, not the MODIFICATION_NUM column on S_PARTY.

    1. Identify all active fields in an integration component that will be updated and have to be concurrency safe.
    2. Select the corresponding business component, the value in the External Name property of the integration component.
    3. For each field identified in Step a, check the value of the Join property of the field. If the join is not specified, then the field belongs to the base table; otherwise, note the name of the join.
    4. In the Object Explorer, select Business Component , then Join, and query for the business component from Step b. Search whether there is an entry whose Alias property matches the name of the join from Step c:
      • If a matching Alias is found, then this field belongs to a Joined Table. The name of the join in Step c is the join name, and the value of the Table property is the joined table.
      • If no Alias matches, then this is an implicit join to an Extension Table. The name of the join in Step c is the name of the extension table.
  2. Create business component fields for Mod Ids of Joined Tables. For the previous example, create a new field in the business component Account with the following settings:
    • Name. CX_Primary Organization-S_BU.Mod Id
    • Join. Primary Organization-S_BU
    • Column. MODIFICATION_NUM
    • Type. DTYPE_INTEGER
  3. Expose all Modification IDs identified in Step 1 as integration component fields.
  4. For MVG and MVG Association integration components, add user property MVGFieldName and AssocFieldName respectively, on all Modification ID fields as follows:
    1. Check the Integration Component User Prop sub type for user properties of the integration component.
    2. If there is a user property called MVGAssociation, then the integration component is a MVG Association, but if there is a user property called Association then the integration component is a MVG.

      NOTE:  If the integration component is neither an MVG nor an MVG Association, then nothing is required to be done.

  5. Repeat the following steps for each Modification ID field on the integration component:
    1. Add user property MVGFieldName if MVG, or AssocFieldName if MVG Association.
    2. Set the value of the user property to the same as the field name, for example, Mod Id, extension table name.Mod Id, or CX_join.Mod Id.
  6. Create Modification Key.

    Define a new integration component key of type Modification Key, and include all the integration component fields exposed in Step 3 to this key.

  7. Validate integration objects and compile a new SRF.
  8. Modify client program to use the Modification Key mechanism:
    1. The client program must store the value of the Modification IDs when it queries data from the Siebel Database.
    2. The client program must send exactly the same values of the Modification IDs that it retrieved from the Siebel Database when sending an update.
    3. The client program must not send any Modification IDs when sending a new record to the Siebel application. If this is violated, then the client program generates an error indicating that the record has been deleted by another user.
Integration Component Account Example

Consider an integration component Account of the business component Account:

  • Field Home Page has property Join set to S_ORG_EXT. This is an implicit join, because it is not listed in the joins; therefore, this field belongs to Extension Table S_ORG_EXT.
  • Field Primary Organization has property Join set to Primary Organization-S_BU. This is an explicit join, because it is listed in the joins. The value of Table property is S_BU; therefore, this field belongs to Joined Table S_BU joined over Primary Organization-S_BU.
  • Activate integration component field Mod Id:
    • Set Name, External Name, XML Tag properties to Mod Id
    • Set External Data Type property to DTYPE_NUMBER
    • Set External Length property to 30
    • Set Type property to System
  • Add integration component field S_ORG_EXT.Mod Id:
    • Set Name, External Name, XML Tag properties to S_ORG_EXT.Mod Id
    • Set External Data Type property to DTYPE_NUMBER
    • Set External Length property to 30
    • Set Type property to System
  • Add integration component field CX_Primary Organization-S_BU.Mod Id:
    • Set Name, External Name, XML Tag properties to CX_Primary Organization-S_BU.Mod Id
    • Set External Data Type property to DTYPE_NUMBER
    • Set External Length property to 30
    • Set Type property to System
Integration Component Account_Organization Example

Consider the integration component Account_Organization of the Sample Account integration object. Account_Organization is an MVG Association as denoted by the presence of the user property MVGAssociation. Assume two Modification IDs, Mod Id and S_ORG_EXT.Mod Id, were exposed on this integration component:

  • For field Mod Id create a new user property with the name of AssocFieldName with a value of Mod Id.
  • For field S_ORG_EXT.Mod Id create a new user property with the name of AssocFieldName with a value of S_ORG_EXT.Mod Id.

In this integration component example, Account of the Sample Account integration object, takes the following action:

  • Create a new Integration Component key called Modification Key.
  • Set the type of the key as Modification Key.
  • Add integration component fields Mod Id, S_ORG_EXT.Mod Id, and S_BU.Mod Id to the Modification Key.
Integration Platform Technologies: Siebel Enterprise Application Integration Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices.