Thursday, June 9, 2016

Siebel: Create and Release Products through EAI

Siebel has provided some vanilla business services which can be used to either create or update existing products in Siebel.

  1. There is a "product Import" web service which can be readily used.This is based on the Business service "SWI Product Import".We can create a simple or complex product with this Business service.
  2. To create a simple product, we can use the business service "Siebel Simple Product".
  3. You can also use the Integration Object "Internal Simple Product Interface" with the "EAI Siebel Adapter" business service to insert products.
Apart from these 3 vanilla options, I have found creating a custom Integration Object to be very easy to create simple products in Siebel.

Steps to:
  1. create an Integration Object on the Business Object -- "Admin ISS Product Definition" and select the parent Integration Component on Business component-- "Internal Product - ISS Admin". (This is the same BO and BC on which the Administration - Product Screen>Product Definitions view is based on).
  2. "Name" is the only required field to be populated and is the one available in the Integration Component Key also.
  3. Use the "EAI Siebel Adapter" Business service -- "Insert" method to insert the record.
  4. This will create the Product record in the S_PROD_INT table and also the related version records in S_VOD and S_VOD_VER. (Without records in the version Table, we cannot use the product (or) lock (or) release it.)
  5. To "Release" the product, we can use the "ISS Authoring Import Export Service" Business service and "ReleaseSingleObject" method.




Below is an Example workflow, which takes input as the <ProductName> and then creates and releases a simple product:

  1. Create an Integration Object based on Business Object -- "Admin ISS Product Definition" and select the parent Integration Component on Business component-- "Internal Product - ISS Admin".
  2. Inactivate the Integration Component Keys, except for the one which just has the "Name" Integration Component Key Field.
  3. Inactivate the Integration Component User Properties -- "NoDelete", "NoInsert" and "NoUpdate"
  4. Add a new Integration Object user Property "AdminMode" & value = "Y" and compile.
  5. Create a Workflow Process with 2 process properties. 
    1. vName -- to pass the Product name as input
    2. vSiebelMessage -- based on the Integration Object to create the hierarchy.
  6. Add 4 Business Service steps.
  7. Step 1 is to create empty hierarchy based on the Integration Object.
    1. Business Service: "PRM ANI Utility" and Method:"Create Empty Hierarchy"
    2. Inputs:
      1.  Hierarchy Name =  <Name of Integration Object>
    3. Outputs: save the SiebelMessage in the process property
  8. Step 2 is to set Property and populate the Product name.
    1. Business Service: "PRM ANI Utility" and Method:"Set Property"
    2. Inputs:
      1. Hierarchy Path: --- IO.IC path
      2. Property Name -- <Name of the field to set>
      3. Property Value --- <Value of the property to be set>
      4. SiebelMessage -- <input the siebel message where the changes are to be made>
    3. Outputs: Save the modified SiebelMessage into a process property
  9. Step 3 is to insert the Product record.
    1. Business Service: "EAI Siebel Adapter" and Method: "Insert"
    2. Inputs: Pass the Siebel message as input
    3. Outputs: Capture the ROW_ID of the created record.
  10. Step 4 is to release the Product.
    1. Business Service: "ISS Authoring Import Export Service" and Method: "ReleaseSingleObject". This method will not be visible in the dropdown and has to be typed in literally.
    2. Inputs:
      1. RootObjectType --- ISS_PROD_DEF
      2. RootObjectId --- <ROW_ID of the product to be released>



123Siebel

Search 123Siebel