Today, lets talk about how we can invoke an Outbound Web Service from Siebel. In the last post we learned how to test the WSDL using SOAPUI and I will use the same WSDL today (CurrencyConverter.wsdl) as the sample wsdl in this post.
1. Import the WSDL into Siebel Tools.
Create New Object. File Menu -> New Object -> EAI -> Web Service
Select the WSDL file path
Business Service will get created with name "CurrencyConverter" and its method "CoversionRate"
ConversionRate method has got its Input/Output Arguments. The point to be notice here is the Integration Objects i.e. "ConversionRate" and "ConversionRateResponse". These are the external integration objects which defines the Request and Response XML of the Web Service.
If you query for Integration Object (Input): "ConversionRate", it will look like this:
and these are the two Input arguments of the Request XML of the Web Service.
Similarly, the Output IO will have a single output argument:
2. Create the UI. (Applet based on Opportunity BC)
3. Create Workflow to get the response from Web Service.
4. Call the Workflow from button click. To do this just create a BC User Prop on Opportunity BC
Named Method 1 : "Invoke", "INVOKESVC", "Opportunity", "Workflow Process Manager", "RunProcess", "'ProcessName'", "CurrencyConverter"
Where "Invoke" is Method Invoked from button on the opportunity applet.
5. Compile the objects and test.
After button click:
I am assuming that you are connected to internet while doing this test and this is how you can play with the live web service.
Hi Gaurav,
ReplyDeletevery nicely done (and scriptless ;-). I like your use of the Workflow Utilities/Echo and dot notation.
Keep up the good foot
@lex
if you provided currencyconverter .wsdl file and .xml file as example it will be really help ful please post them or mail me please..............
ReplyDeletebalajikonagalla@gmail.com
thanking in advnce
where do i find currencyconverter.log file
ReplyDeleteHi Maya,
ReplyDeletePlease refer the below post and let me know if you still face any issue on this.
http://siebelmantra.blogspot.com/2010/06/how-to-test-wsdl-if-it-is-working-or.html
--GG
Hi Gaurav,
ReplyDeleteThis post is really helpful for an EAI beginner and works like a charm. Your usage of the Echo method got me curious and i ran into Neel's blog post on the same
http://siebelunleashed.com/setting-a-property-echo-method/
One interesting thing i observed was that he made use of the PRM ANI Utility service in his eg to create an empty property before making use of the Workflow utility BS. However in the above case you have used the echo method straightaway.
Is there a difference between the 2 approaches. I might be wrong but the scenarios cited in the posts seem similar
Regards,
Himanshu
Thanks Gaurav.This is one of the best explanation on Web Services i could find. Really very helpful.
ReplyDeletePlease keep up the good work.
Can you please explain how the workflow utility and dot notation is working here. Thanks
ReplyDeleteHi Arvind,
ReplyDeleteYou can use the Workflow Utilities->Echo method with the help of dot notation to construct the hierarchy and this is the trick demostrated in the post. Please note that, dot notation doesn't work for multiple childs hierarchy.
Cheers
Gaurav
Hi Gaurav,
ReplyDeletei am new to siebel and have done all steps correct what you have explained but i am not getting the output by pressing the button in Opportunity Applet. is there any specific mistake i am making or something else. please advice.
Thanks & regards
Abhas
Hi Gaurav
ReplyDeletedotnotaion doesn't work for mutiple Chaild Hierarchy.but
if we want to create mutiple Chaild Hierarchy.
how its possible
can you please explain it.
Anyone had experience getting a resopnse back from an Outbound web service that contains "multi-part" WSDL response? I've configured a WF to call a WS which would return 2 different types of XML (data result XML or a "Not found" error message XML).
ReplyDeleteIn the Output Argument when you call the Web Service (your "Call Web Service" step in WF above), you can only specify one output argument.
Hi Gaurav,
ReplyDeleteI am Manuj Garg & working in siebel since last 4 yrs.I would like to say that you are doing a fabulous job & this is really a nice post for all the new learners but i would like to point that the post is not complete.
An xml is generated on the path specified while importing the WSDL into the siebel tools as mentioned in the step 1 of the post above.
1) Goto Administration - Web Services --> Outbound Web Services
2) Click the 'Import' button present on the Header List Applet.
3) Import the XML (created while importing the WSDL in the siebel tools) here.
4) A new record for you Outbound Web Service is automatically created after the xml is imported.
You can go ahead & test your outbound web service now as mentioned in the post above.
Thank You so much for the valuable feedback Manuj !!!
ReplyDeleteCheers
Gaurav
Hi Gaurav,
ReplyDeleteyour blog is very useful learnt a lot in siebel from here,
Can you give me some idea how to create a workflow to insert an account using siebel operation and get the row id of the inserted account as output argument. Here the input account record is given in the .xml file.
so that I could deploy the workflow as a webservice and test it in soap ui.
Thanks,
Venkat
It is very useful.
ReplyDeleteSimple and helpful.
Thanks!!
Gaurav, I know from the day one, this blog is unique in the world of CRM.
ReplyDeleteHi Gaurav,
ReplyDeletePlease add a step for Process property and its type. I want to know how did you configured process properties in this example. thanks.
I folllowed this great guide, thanks. I have the WSDL, but it's impossible to create a new contact using SOAP. Seems like it just does not affect siebel in this particular case.
ReplyDeleteHI All Please share me any one of you who has WSDL for Currencyconverter
Deletethrough my mail
werkushewafera2112@gmail.com
Please add definitions of Process properties and its type . I think, its important to know about the process properties specifically InputXML ones.
ReplyDeleteThank you in advance