Integration Platform Technologies: Siebel eBusiness Application Integration Volume ll > EAI Siebel Adapter > Configuring the EAI Siebel Adapter for Concurrency Control >
About Modification IDs
To determine which Mod Id fields need to be used as part of a Modification Key, you expose Mod Id fields for tables whose columns may be updated by that integration object. In some situations you might need to add corresponding integration component fields as well as business component fields. NOTE: EAI Siebel Adapter can update base and extension tables. It may even update joined table columns through picklists that allow updates.
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 need to 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, you need to 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 needs to be manually added in both business component and integration object definitions. Business component Mod Id fields for joined tables should:
- 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 above steps, you need to 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 EAI Siebel Adapter for concurrency control
- 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.
- Identify all active fields in an integration component that will be updated and have to be concurrency safe.
- Select the corresponding business component, the value in the External Name property of the integration component.
- 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.
- In the Object explorer, select Business Component > 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.
- Create business component fields for Mod Ids of Joined Tables. For the above example, create a new field in 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
- Expose all Modification IDs identified in Step 1 as integration component fields.
- For MVG and MVG Association integration components, add user property MVGFieldName and AssocFieldName respectively, on all Modification ID fields as follows:
- Check the Integration Component User Prop sub type for user properties of the integration component.
- 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 needs to be done.
- Repeat the following steps for each Modification ID field on the integration component.
- Add user property MVGFieldName if MVG, or AssocFieldName if MVG Association.
- 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.
- 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.
- Validate integration objects and compile a new SRF.
- Modify client program to use the Modification Key mechanism.
- The client program should store the value of the Modification IDs when it queries data from Siebel Database.
- The client program should send exactly the same values of the Modification IDs that it retrieved from Siebel Database when sending an update.
- The client program should not send in any Modification IDs when sending a new record to the Siebel application. If this is violated, 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 as 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 the integration component example, Account (created in Integration Component Account_Organization Example) of 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.
|