Today I am going to tell you how we can pass arguments of type "String" and "Hierarchy" in the call to Customized Business Service (which don't have any methods specified in "Business Service Method" also don't have any Input/Output arguments specified). If you have worked on the similar requirement earlier, you might be knowing the trick here but for the new people this might be useful.
Lets take the "String" arguments first :
Assuming a requirement to create a workflow where we need to call a customized business service which contains the complex logic and return back the Service Request's status. Please cosider this a requirement for an example here.
Input to Customized Business Service : Service Request Number
Output from Customized Business Service : Status
Here is the Workflow :
Input to Customized Business Service : Service Request Number
Output from Customized Business Service : Status
Here is the Workflow :
So, this seems very simple, right, whatever the "property name" I am setting in the Business Service, the same name should be used in the "Output Argument" of the step.
Lets see what extra need to do in case you are passing a Hierarchy as Input/Output arguments.
Workflow Requirement : 1. Query via EAI Siebel Adapter to get the SiebelMessage for Service Request Number.
2. Pass the Siebel Message as Input Argument to Customized Business Service to update something in it.
3. Get the updated Siebel Message as Output from Customized Business Service.
4. Update the Service Request via EAI Siebel Adapter.
Here is the workflow :
I think you need to try it out at your end to actually understand the trick here. Check it out !!
.
good work there.reminds me of my first days of customised business services.
ReplyDeletethere are some vanilla business services which accept inputs as < value >. do you know how to implement this in custom scripts ?
Good Question !!
ReplyDeleteYes you can use "< Value >" that you get as an output for huge number of Vanilla Business Services.
Lets say you are getting the "Out" property set as the output from the business service (for example : EAI XML Converter), then you can get the value like :
TheApplication().RaiseErrorText(Out.GetValue());
You can also try using "EAI XML Write to File" with method "WritePropSet" to see how value of "< Value >" looks like.
Check it out !!
Hi Gaurav,
ReplyDeleteIs there anything additional I need to do if I need to pass SiebelMessage as respose to my inbound integration. I have used business service for the integration.
Good Post!!!
ReplyDelete@Anomymous
ReplyDeleteYou just need to set the SiebelMessage (propertyset) as a Child of Output property of the business service. (please note I am assuming that the method your are calling should have an Output argument of name "SiebelMessage").
So, just set the type of propertyset to "SiebelMessage" and add it as a child of "Outputs" propertyset, which is actually the output of the business service that you are calling during inbound integration.
Hi,
ReplyDeletethank you Gaurav, great post. I am working in siebel 8.0 and I had to copy input property set and then assign it to Outputs PS. Like this:
sblMsg = Inputs.GetChild(0).Copy();
sblMsg.SetType("OutSiebelMessage");
Outputs.AddChild(sblMsg);
Without that "Copy()" call, WF was throwing error like "Argument OutSiebelMessage is not properly inicialized or does not return valid data."
Maybe this will save someone few hours of work.
Nice Blog, Can you give me the steps to Updating a Field with an Appending Information [ ex.. [Comment] = [Comment] + "Name"]in Child Business Component.[Through Workflow].I tried it. But it doesn't work for Multiple Records..... the second record and the following records fields are updated as First records field value. I am a beginner....
ReplyDeleteThanks for your previous post.. explain the Workflow steps in detail for iterating multiple records in a child Business component and update a field with appending data with the Existing Field Value
ReplyDeleteThank you
Hi Gaurav,
ReplyDeleteI want to call ISS Authoring Import Export Service from command prompt. I thought I can include this BS in workflow and call that workflow from command line instead. Having tough time creating small workflow to invoke this BS. Any leads are much appreciated.
BS name : ISS Authoring Import Export service
method name: Post_EIM_Upgrade
Property name : ReportOnly
Property value: False
workflow would be Start -> BS -> End.
Using Siebel 8.1. Thanks in advance.