Wednesday, September 28, 2016

Siebel: Product Administration - EligibilityDisplayMode

Eligibility is checked before the Product or Promotion is displayed in a catalog or Product Pick Applet.
Eligibility information is displayed when we try to add a product in a Quote, Order or an Agreement. The visibility of the product and the information displayed can be controlled by setting the Eligibility Display Mode parameter value. This value controls the Eligibility and Compatibility procedure as below:

  • If set to 0, the procedure is not run.
  • If set to 1, the procedure runs and ineligible products are displayed in red text in configurator.
  • If set to 2, the procedure is run and ineligible products are not displayed.






The Eligibility and Compatibility procedure looks for the display mode value in the following locations and in the following order:
  1. Display Mode workflow process property
    • Workflow Name: Product Eligibility & Compatibility - Default
    • Property Name: Display Mode
  2. The EligibilityDisplayMode property on the applet
    • Applet Name : Product Pick Applet (Eligibility)
    • Applet User Property : EligibilityDisplayMode
  3. The Eligibility Display Mode server parameter
    • Set the parameter "EligibilityDisplayMode" accordingly to either 0 or 1 or 2 for the Application Object manager component or the Server.
    • To define how eligibility output displays on the mobile or dedicated client, edit the CFG file for the application.
      • In the [PSPEngine] section, set the value of the parameter EligibilityDisplayMode to one of the following values:
        • EligibilityDisplayMode=0. All Products appear in product selection applets.
        • EligibilityDisplayMode=1. Default value. Ineligible products appear in the product selection applets with the eligibility status of N and with comments explaining why they are ineligible.
        • EligibilityDisplayMode=2. Only eligible products appear in the product selection applets, so the user cannot see and pick ineligible products.
  4. The Eligibility Display Mode default value (1 – show all products with messages)

Siebel: Diccache.dat and Dicdata.dat

Diccache.dat file is used by the Siebel server to increase the performance when loading the Siebel Repository. It contains a subset of the Siebel Repository which is called as the Dictionary which has information about tables, columns, indexes and docking Objects. Diccache.dat is located in SIEBSRVR_HOME\bin directory. This is accessed whenever a server program is started. The file gets created automatically if it does not exist.






Dicdata.dat file is a subset of diccache.dat file that is downloaded to mobile clients and used by the synchronization process whenever transactions are applied to the local database. The Generate New Database component creates this subset of the diccache.dat and copies it to siebel_server_root\DBTEMPL\<Schema Version>\dicdata.dat. When a mobile client synchronizes, the dicdata.dat is copied to the siebel_client_root\LOCAL\dicdata.dat on the client machine.

Monday, June 20, 2016

Siebel: Purge Workflow Instance Monitor Data

The first step to debug a workflow process in the runtime environment is by increasing the "Monitoring Level" of the workflow process in Administration Business Process > Workflow Deployment > Active Workflow processes view.
When Siebel CRM creates a workflow process instance, it reads the monitoring level from the workflow process. This level remains constant throughout the lifetime of the instance unless Siebel CRM pauses it. If Siebel CRM pauses an instance, then it rereads the monitor level from the workflow process when it resumes this instance.

The "Monitoring Level" has 5 values:

0 - None
1 - Status
2 - Progress
3 - Detail
4 - Debug

Depending on what value is selected for a workflow process, the amount of data collected varies as described below:




Once, the workflow process is executed, we can view the results in the Administration Business Process > Workflow Instance Monitor view.
All the data related to the Workflow Process Instance, Workflow Step Instance and Workflow Process Properties Instance are recorded in their respective tables which are:

Workflow Process Instance Monitor  =  S_WFA_INST_LOG
Workflow Step Instance Monitor  =  S_WFA_INSTP_LOG
Workflow Process Properties Instance Monitor  =  S_WFA_STPRP_LOG

If there is no need to monitor the process at all, set the value "0 - None" which prevents any data to be written into these tables.
If the workflow processes that the monitoring is set on are frequently executed, the amount of data written can be excessively large. Therefore, it is possible that the size of the above tables may increase to several gigabytes of data.
If monitoring level is enabled, regularly use the "Purge" button located in Site Map > Administration - Business Process > Workflow Instance Monitor >   Process Instances applet, to keep only the relevant data in these tables.

If due to incorrect settings of the "Monitoring Level" leads to the tables reaching very critical stage and also could lead to the database failure. In that case, purging may not help to recover and the 3 tables have to be entirely cleared directly connecting to the database.





Wednesday, June 15, 2016

Siebel: "PRM ANI Utility Service" Business Service

"PRM ANI Utility Service" Business service is widely used by EAI developers in creating empty SiebelMessage using the "CreateEmptyPropSet" method, Set a Property value in the SiebelMessage using the "SetProperty" method and to get a value of  a property from the SiebelMessage using the "GetProperty" method. For information on the "Query Business Component" Method, click here.

Let us discuss in detail with an example using the vanilla Integration Object -- "Account_EMR"

"Account_EMR" Integration object has 4 Integration components--
Parent Integration component -- "Account" and 3 child Integration components -- "Related Contact", "Related Opportunity" and "Related Service Request"






CreateEmptyPropSet

Navigate to Administration - Business service>Simulator view and then simulate the "PRM ANI Utility Service" Business service -- "CreateEmptyPropSet" method.

Input Arguments:

Property Name = Hierarchy Name
Property Value = Account_EMR


The output xml will look like below:


This is an empty SiebelMessage.




SetProperty

We can now use the "SetProperty" method of the "PRM ANI Utility Service" Business Service to set values.
Move the SiebelMessage from the Output Arguments applet to Input Arguments applet by clicking the "Move to Input" button.

Business Service Name = PRM ANI Utility Service
Method = SetProperty

Input Arguments:
"Hierarchy Path:" Input argument takes the values of = "<Parent IC>.<Child IC>.<Grandchild IC>"
Hierarchy Path: = Account
Property Name = Alias
Property Value = Test Alias


The Output xml will look like below:



If we want to set a Property value in the child IC, then:

Hierarchy Path: = Account.Related Contact
Property Name = First Name
Property Value = Test Contact
The resulting xml will look like below:





GetProperty
We can use the "GetProperty" to get a value of a property in the SiebelMessage same like the "SetProperty" method.

Move the xml from the output arguments applet from the previous step to input arguments applet by clicking the "Move to Input" button.

Business Service Name = PRM ANI Utility Service
Method = GetProperty

Input arguments:
Hierarchy Path: = Account.Related Contact
Property Name = First Name

the resulting output arguments will look like below:

Limitations:


  1. "GetProperty" will throw error message ("Error Running Method 'Execute'.(SBL-PRM-00104)") when you are trying to get a value from the child IC and if there are more than 1 instances of records in the input SiebelMessage.
    1. The error message can be suppressed by using an additional input argument:                      ReturnBlankIfNull = Y
  2. "HierarchyPath:" can be of max 255 chars
  3. You can get the value of only 1 property at a time. We can get values of multiple properties at a time using the "Workflow Utilities" Business service which will be discussed later. 

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