Thursday, March 11, 2010

Different ways to integrate to third party applications with Siebel.

In order to integrate Siebel with external application, what I can share, from my own experience, is that there are two options that can be easily carried out without any problem:

Option A: Using synchronous workflow that retrieve xml file that contains process information.

You should create integration objects within the Siebel repository to provide the definition of the mapping between the fields in the xml and Siebel.

Add a Sub Process step to invoke an EAI XML Converter(using this integration object created as a Input Argument – IntObjectName)
Business Service Name: EAI XML Converter
Business Service Method: XMLDocToIntObjHier

In Addition, add another Sub Process step to invoke an EAI Siebel Adapter Upsert (When a Workflow Process has a Business Object then a Siebel Operation Upsert step defined will upsert the record in the Primary Buisiness Component.)
Business Service Name: EAI Siebel Adapter
Business Service Method: Upsert

(*) For queues we need an external system/middleware.




Option B: Data load via EIM

EIM batch jobs are used for bulk data load. EIM are background batch jobs (not real time jobs).

In this case it's required:

1. Previous Thread : PL/SQL can be used in order to delete previous records in EIM table.

delete from siebel.eim_EXAMPLE
where if_row_batch_num = LOT_NUMBER;


2. Preparing the EIM Tables : This section provides assistance in loading the EIM tables with data used to control insertion of rows from Siebel base tables.

insert into siebel.eim_EXAMPLE (
row_id,
/* This value in combination with the nonempty contents of if_row_batch_num must yield a unique value. */
if_row_batch_num,
/* Set this to an identifying number for all EIM table rows to be processed as a batch.*/
if_row_stat,
/* In each row to be deleted, set this column to FOR_INSERT to indicate that the row has not been inserted. */
[…]
/*Add Required Fields to be informed*/
);

3. Finally, execute EIM through Server Manager, using a sentence such as:

set ExecuteEIM ="Run task for component EIM with config=C:\sea704\EXAMPLE.ifb"

%SRVRMGR%srvrmgr /g %SERVER% /e % SERVER % /u %USER% /p %PASSWORD% /s %EIMSERVER% /c %ExecuteEIM% /o %BASE%\Log.LOG