Siebel has provided some vanilla business services which can be used to either create or update existing products in Siebel.
- 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.
- To create a simple product, we can use the business service "Siebel Simple Product".
- 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:
- 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).
- "Name" is the only required field to be populated and is the one available in the Integration Component Key also.
- Use the "EAI Siebel Adapter" Business service -- "Insert" method to insert the record.
- 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.)
- 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:
- 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".
- Inactivate the Integration Component Keys, except for the one which just has the "Name" Integration Component Key Field.
- Inactivate the Integration Component User Properties -- "NoDelete", "NoInsert" and "NoUpdate"
- Add a new Integration Object user Property "AdminMode" & value = "Y" and compile.
- Create a Workflow Process with 2 process properties.
- vName -- to pass the Product name as input
- vSiebelMessage -- based on the Integration Object to create the hierarchy.
- Add 4 Business Service steps.
- Step 1 is to create empty hierarchy based on the Integration Object.
- Business Service: "PRM ANI Utility" and Method:"Create Empty Hierarchy"
- Inputs:
- Hierarchy Name = <Name of Integration Object>
- Outputs: save the SiebelMessage in the process property
- Step 2 is to set Property and populate the Product name.
- Business Service: "PRM ANI Utility" and Method:"Set Property"
- Inputs:
- Hierarchy Path: --- IO.IC path
- Property Name -- <Name of the field to set>
- Property Value --- <Value of the property to be set>
- SiebelMessage -- <input the siebel message where the changes are to be made>
- Outputs: Save the modified SiebelMessage into a process property
- Step 3 is to insert the Product record.
- Business Service: "EAI Siebel Adapter" and Method: "Insert"
- Inputs: Pass the Siebel message as input
- Outputs: Capture the ROW_ID of the created record.
- Step 4 is to release the Product.
- 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.
- Inputs:
- RootObjectType --- ISS_PROD_DEF
- RootObjectId --- <ROW_ID of the product to be released>