The best thing while working on siebel is you are never short of options. Recently we had requirement of updating a Service request from contact. Finally we did that using "EAI Siebel Adapter" business service. However during that time i came across another business service "FINS Data Transfer Utilities" popularly known as DTU business service. As i was not having prior knowledge of it going by the rule of not learning swimming lessons while drowning i decided not to go for it. Lately i have tried to explore this service and trust me it can do wonders.
Here is a sample example update of Service Request from contact. We need to follow below steps in order to understand strength of this business service.
1 - Navigate to Site Map. Go to Administration - Application -> Data Map Administration tab. Create a new Record with following options:
Name: Service Request Test
Source Business Object: Contact
Destination Business Object: Service Request
Here the source business object specifies where data should come and Destination busobject specifies where data should go.
2 -In Data Map Component we specify mapping of the child business component. There needs to be one root business component and other child business component in the map. This is really handy while creating quotes and quote line items from Opportunity. Or any other instance where multiple BC's are under scanner.
Name: SR Update
Source Business Component: Contact
Destination Business Component: Service Request
3 - In Data Map field we specify field to field mapping, data from which source field should go to which destination field. However source/destination field could be of following types based
on our requirement:
Field: BC field
Parameter: Input argument to business service
Expression: combination of BC field or Parameters
The most important thing here is the Key field, which helps in matching source record with destination record during update operation. More of this is given in "siebel finance bookshelf".
4 - Once data map is done, our job is very simple. We need to write a workflow which can call this business service and invoke that workflow on contact write
record. Sample workflow should look like.
Method Invoked is: DataTransfer
Parameters which we have passed are:
Operation - Update : It specifies which operation we need to perform. Values are Insert,Update,Delete and Upsert
InitBO - Contact : Initiator BO
InitBC - Contact : Initiator BC
DataMapObj - Service Request Test : Name of the Data Map
&Status - Closed : Status value we need to set for SR
&SRId - '288-70710' : SR Number for which we need to set status. This could be process property. I have hard coded for testing purpose.
5 - Create a runtime event which invokes this workflow on writerecord of Contact BC. Once reload is done try to see the magic.
This business service is of immense help if used efficiently and can be of real help in scenarios involving update/insert of multiple business components.
Learning Swimming and Siebel.
9 comments:
Very good post. I am a little confused in step 4. Does "Operation - Update" mean that Operation is the Input Argument and Update is the Value? If so I tried finding "Contact : Initiator BO for InitBO but I was unable to find it. Would you also be able to attach a clearer image for step 4? It is hard to see your input parameters from the screen.
Thank you
Hi Cody,
Thanks for the comment. You are spot on for Operation Argument. Update is the value of this argument. We are passing Contact as InitBO and InitBC. Apologies for poor visibility of screen shot. I will try to upload a clear one.
Regards,
-Rahul-
Thanks Rahul for posting this. It is very helpful. I too can't seem to see your screenshot clearly. I have questions on Step#2. What are the parameters you have defined here and where did you pass them? Can you please provide more insight to that. Thanks for your help.
Abhay
Hi Abhay,
Sorry for poor visibility. I ll try to update the Screenshots. In step 2 &3 we define datamaps for source and Destination BC. we can define input parameter in the workflow.
Regards,
-Rahul-
Hi Abhay,
If it is not throwing any error check for Key field mapping. It is not able to determine Key that may be reason of not updating the record.
Regards,
-Rahul-
Thanks Rahul for your help. By any chance are you familiar with the following error message? --
Error invoking service 'FINS Data Transfer Utilities', method 'DataTransfer' at step 'Data Transfer'.(SBL-BPR-00162)
--
External exception occurs in the Data Transfer Utilities.(SBL-APS-00244)
Regards
Abhay
Thanks Rahul. Appreciate all your help. Yes it worked indeed. I had to uncheck the key flag.
However, I am testing this BS for another business requirement where the Source BC is actually EBC and Destination BC is an internal BC based on S_ASSET table. The Data Mapper looks fine. I am passing the Asset Number as parameter to update a flag on s_asset table. This is the following error messaging coming in the log: --
Error invoking service 'FINS Data Transfer Utilities', method 'DataTransfer' at step 'Data Transfer'.(SBL-BPR-00162)
External exception occurs in the Data Transfer Utilities.(SBL-APS-00244)
ObjMgrBusServiceLog Error 1 00000002520108cc:0 2013-08-07 11:19:34 (ebservice.cpp (3326)) SBL-DEV-61159: No valid Expression Builder could be found for the field Value/Search Specification on business component Repository WF Step I/O Argument.
ObjMgrMiscLog Warning 2 00000002520108cc:0 2013-08-07 11:19:44 (objdef.cpp (7417)) SBL-DAT-00170: The DLL 'SSFADTUBC.DLL' could not be loaded.
ObjMgrLog Error 1 00000002520108cc:0 2013-08-07 11:19:44 (model.cpp (4043)) SBL-DAT-00227: Unable to create the Business Service 'FINS Data Transfer Utilities'
ObjMgrSRFLog Warning 2 00000002520108cc:0 2013-08-07 11:20:08 (ctxtmgr.cpp (5903)) SBL-DAT-00144: Could not find '' named ''. This object is inactive or nonexistent.
Regards
Abhay
Your specialized data is truly helpful for me. Keep upgrade your website.Hadoop Training Chennai
Post a Comment