Saturday 4 February 2017

Force Active - Control User Property

Many time we face the situation where we are using GetFieldValue() in script for particular field and it is giving below error:

After compiling it throws error. "Unable to get field value "Field Name". The field is inactive or does not exist"

In this case we either add ActivateField() before GetFieldValue() code or we make Field property Force Active to True.

BC property Force Active, make field active even though it is not mapped to UI. So whenever BC gets called this force active field is also get queried and many times it leads to performance issue.

To avoid above situation, if you want to make a particular field force active on particular applet then you can use Control user property or List column user property to make field force active instead of making Force active at BC level and instead of mapping field in UI.

This will reduce performance issue as that field will get queried when that particular applet will get called not every time BC will get called.

Configuration is as below:

    1)  Add a control (which you want to make force active) to applet.
    2)  Add control user property as below:

     Name: ForceActive
     Value: Y

    3)  Compile your applet.

As output you can get this field value in script only for that applet without having any performance issue.

Similar user property is there for list column as well.



Wednesday 1 February 2017

Load data from Excel to Siebel

We came across requirement where we have to upload bulk hierarchical data (Account-Contact-Asset) from excel into Siebel.

Below are few approach which we generally used to load bulk data in Siebel:
  • EIM
  • Macro
  • Custom Business Service – using Clib() function or Com object
Here we used simplified approach, using vanilla business service. We used “Read CSV file” vanilla BS to read data from csv file and convert it into IO structure. After creating IO structure we used EAI Siebel Adapter BS to inset or upsert data in Siebel.

Currently there are two standard workflow processes which are using the Read CSV File business service
  •          Import Marketing Contact
  •          Import KPIs

Implementation of this approach is as below:
1) Prepare csv file in specific format as below:
-          Identify the IO in which format you want to import the data.
-          Follow file format as below:
1.   First Line should contain # Integration Object name.
2.   Second line should contain
#Integration Component name.IC Field name1, #Integration Component name.IC Field name2…and so on
3.   Data should be there from third line.



     2) Create workflow as sample below :

   



 Sr No
Step
Business Service
Method
Input parameter
Output Parameter
1
Read from CSV
Read CSV File
CsvToPropSet
CsvFileName
SiebelMessage
2
Insert in Siebel
EAI Siebel Adapter
Insert
SiebelMessage


We used the same workflow to import LOV as well, just we need to make sure that IO should be present to import the data and create respective csv file to import data.