‎2011 May 17 10:44 PM
Hi,
A 3rd party will be sending our system XML information periodically, and I would like to create an interface for this.
How would I go about creating this interface? Do I use BAPi's to call my function module? Or can I use a web service that will call a function module when the 3rd party goes to the URL?
Any help would be appreciated!
Thanks!
‎2011 May 18 8:23 AM
Hi Joe,
Do I use BAPi's to call my function module?
This depends on the capability of the 3rd party system who is going to send the XML information, is the third party system capable of calling an RFC in an SAP system?
can I use a web service that will call a function module when the 3rd party goes to the URL?
Again, if the third party system is capable of invoking a web service, then it is preferred(depending on data volume etc) that you choose web service over RFC. You can create an RFC and then expose it as a web service.
I guess if you can provide more information like, what kind of business data is being sent from the 3rd party system, along with information like frequency, data volume, is there a middleware etc...you will get more concrete design ideas/solutions.
Regards,
Chen
‎2011 May 18 8:23 AM
Hi Joe,
Do I use BAPi's to call my function module?
This depends on the capability of the 3rd party system who is going to send the XML information, is the third party system capable of calling an RFC in an SAP system?
can I use a web service that will call a function module when the 3rd party goes to the URL?
Again, if the third party system is capable of invoking a web service, then it is preferred(depending on data volume etc) that you choose web service over RFC. You can create an RFC and then expose it as a web service.
I guess if you can provide more information like, what kind of business data is being sent from the 3rd party system, along with information like frequency, data volume, is there a middleware etc...you will get more concrete design ideas/solutions.
Regards,
Chen
‎2011 May 18 5:03 PM
Hi Chen, thanks for the quick response!
is the third party system capable of calling an RFC in an SAP system?
The 3rd party is not an SAP system, and usually uses a SOAP request to connect to other systems. I guess that is kind of my question, how would I know if a system is capable of calling an RFC in an SAP system if they aren't using SAP?
I guess if you can provide more information like, what kind of business data is being sent from the 3rd party system, along with information like frequency, data volume, is there a middleware etc...you will get more concrete design ideas/solutions.
The data being sent is a small XML file that will probably be sent a few times a day. No middleware is involved....
I was hoping that they could use HTTPS to connect to our system, and somehow trigger a function module on our side to process the data.
Any insight you can provide would be helpful
Thanks!
‎2011 May 18 6:38 PM
Hi Joe,
...usually uses a SOAP request to connect to other systems.
Well, you just need to create an RFC which would take in the data from the 3rd party system and process this into SAP. Once you have created the RFC expose this as a web service. There are a lot of information and step by step guide available on the net to do this. Once you have created the web service, provide the 3rd party system with the WSDL URL or the WSDL file of the web service.
http://help.sap.com/saphelp_nw04/helpdata/en/e9/ae1b9a5d2cef4ea4b579f19d902871/content.htm
how would I know if a system is capable of calling an RFC in an SAP system if they aren't using SAP?
Since the 3rd party system can make a web service call, you needn't worry much about RFC calls, usually this is achieved using 3rd party connectors like Jco etc or by importing the SAP RFC libraries into the 3rd party applications.
Also, when the WSDL is consumed into the third party system, run time components as per the third party application technology/platform will be generated in the 3rd party system. So they can actually send the actual content without marking it up with XML, if they wish to. However if the 3rd party application still chooses to send the content as XML, you will need to do XML transformation within SAP.
Regards,
Chen
‎2011 May 19 1:38 PM
This is great information, thank you!!!!!
One more quick question, I setup my web service with the endpoint as my function module. When someone calls the web service, how will the XML be passed to my function module? I setup a string as an importing parameter, set it as 'Pass as Variable', but will this automatically put the XML into this string?
Thank you so much for the help already!!!!
Edited by: Joe Lee on May 19, 2011 2:54 PM
‎2011 May 19 4:29 PM
Hi Joe,
You did right by setting up string as an import parameter,
set it as 'Pass as Variable', but will this automatically put the XML into this string?
I suppose you meant pass by value, and yes this will automatically put the XML into the import string.
Glad to have been of some help!!!
Regards,
Chen
Edited by: Chen K V on May 19, 2011 9:28 PM