Inbound Routing Rule or Routing arbitrary XML document through Gateway Manager
Hello,
I wanted to know if anyone implemented an inbound routing rule using XML transport to process arbitrary XML document through Gateway Manager. This routing rule/service will look at the xml document and extracts sender/receiver/message type and invoke appropriate service with in the routing rule.
If you have a SAP BIT351 course, you can find some steps on pages 110 amd 111.
Does any one have done Inbound XML routing rule.I tried creating a service with routing specifications for doing an xml transport,but no idea how to extract sender,receiver & message type.Any clues/help is greatly appreciated.
Basically you have to setup and configure RoutingRules in the WmPartners package homepage using the ISAdminConsole.So create a rule and enter the criteria for Sender/Receiver/Messagetype (XML DocumentTypeName) or use wildcard(*)indicates any sender/receiver for this messagetype and a ProcessingService(gateway service) which will receive the xml and do parsing,mapping etc…
Thanks for your reply.
It involves routing variours incoming XML/External xml documents documents based on sender/receiver/Message type.I created a roulting rule with wild card, and i selected XML as Transport Type(is this correct or shoul select some thing else).In the configure IS Service tab,should i assign a Gateway service(where is the gateway service located ? should i assign any standard service or should i create one).can you let me know how to create/find one…
Are you using IS or SAP BC/IS?If so which version?
Choosing the XML transport is ok.
yes specify the gateway Service(fully qualified name)and this you have to create and add the logic inside for parsing the inbound XML document and the service input will be node(object).
recordToDocument(IS4.6)
XMLNodeToDocument(IS6.x)Use these services for parsing.
It’s SAP BC/IS 4.6 & 4.7. In Admin console, if we mention this service( which extracts sender/receiver/message )in the routing roule.Then what service should i assign for XML transport…Because in routing console,for an XML transport ,i guess we have to assign a service.This assignment looks like a global one for the entire server…Please Correct me if i’m wrong.
In SAPBC/IS Admin when creating routing rule,if you choose XML as Transport then it should show you the URL with textfield,so enter the fullyqualified servicename(this is a custom service that receives the XML and do parsing and mapping…i believe you have this ready in the Developer.
So depending on the sender/receiver/particularmessage type this custom service will be triggered.
Got confused when i select xml transport.You are right it opens up an text field for a URL,but that is for POSTING.But my case is to receive an arbitrary xml file and then routing a service based on sender info…So you are saying to give fully qualified BC service in this place(URL FIELD) OR Should i use B2B as Transport type.
you are correct use the B2B as Transport and specify there the fullyQualified BC ServiceName,generally this used for receiving IDOC’s from SAP,and in your case it is XML document.is this generating from BAPI?
OOps,you should have told me before,i thought this data is coming from SAP that will be send to a Customer.
Then no need of using Routing rules at all,just create a custom receive service in BC and give them the URL like(http://wmBCserver:port/invoke/folder:customReceiveService) for doing Https Posting.
And the service input should be node(object) so this service will kickedoff and futher down parse the inbound XML as i mentioned above,
Note:let your customer know that when posting XML Documents to your BC server,they should set Content-Type=text/xml.
Thanks for your continous reply.
Why i need routing is because,For Instance same customer is sending different types of XML documents and i need to send that to different services.each xml document will have unique info.So thought of telling them to post to one URL and route them to respective BC/IS services…
Anyways routing rules will work for different purpose.IF you are using webMethods TradingNetwork component,this could be straight forward which will match your requirement.
So what you do is give the customer one URL which i have metioned above creating custom ReceiveService(GatewayService) and build a logic in such a way, once you parse the XML document you will have document RoottagName in the pipeline,and do a Branch condition on this RootName and invoke respective main service that is expecting the particular XML document and map this to that service input.
This way you can manage the unique XML processing.Hope this process work for you.
If you are using TN as mentioned above, you can give the document to TN and let TN handle the correct processing flow based on the document type. Its better to give the parsing and validation part to TN since its a TN functionality anyway.
Hai All,
Good Morning, can anyone gelp me in mapping the Customer data DTD to Xcbl standards. i receive an XML file to BC using HTTP.I should map in BC Developer such that it should convert into an IDOC format and post it to SAP.
We have downloded some DTD’s from Xcbl.org but we couldn’t find which DTD gives information regarding Customer data.
Please help me as we are new to this concept.
Thanks in advance,
Shankar
Look at the roottag in the Xcbl document and search in the DTD’s if it has the same (Customer data).IF you find then load it in the BC developer to create new recordType(documentstructure) for further mapping transformation.
hai RMG,
Thanks for ur reply and at the same time i’m sorry for late reply. RMG, i couldn’t find the roottag with Customer anywhere in Xcbl.org, but i found it as TRADING PARTNER INFORMATION DTD. Is this right.I have downloaded and created a record type in BC with this DTD.But i dont know if this right.
And one more issue is that our client posts the XML document using HTTP.I started my mapping with <pub.sap.http><string><document> but i’m not sure where this XML file is stored when the Customer posts in XML format and can u guide me what steps should i follow for mapping.
hai RMG,
Thanks for ur reply and at the same time i’m sorry for late reply. RMG, i couldn’t find the roottag with Customer anywhere in Xcbl.org, but i found it as TRADING PARTNER INFORMATION DTD. Is this right.I have downloaded and created a record type in BC with this DTD.But i dont know if this right.
And one more issue is that our client posts the XML document using HTTP.I started my mapping with <pub.sap.http><stringtodocument><document> but i’m not sure where this XML file is stored when the Customer posts in XML format and can u guide me what steps should i follow for mapping.