cancel
Showing results for 
Search instead for 
Did you mean: 

Which Adaptor is appropriate please suggest

Former Member
0 Kudos

Hi All,

I have the following scenario and want your suggestions:

A web based applicaiton (say A) to create customer need to integrate with another web based applicaiton (say B) which uses the customer details to display of Applicaiton A... wondering do I need to go for SOAP adaptor/HTTP adaptor or do I need to integrate these two applicaitons at data base level using JDBC adaptor?

What are the steps/any documentation to get the data from web site to SAP PI when User clicks submit button?

Please suggest.

Thanks

Rajeev

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos
Former Member
0 Kudos

HI All,

Thanks for your feedback but want to know how can I know or get to know from the client that their Applicaitons support web services to use SOAP or HTTP or direct connection? What are the pre-requisite for a applicaiton to be connected using SOAP/HTTP/Direct connection of SAP PI?

These are standalone applicaitons (Server-Client) say

Applicaiton A which is using client applicaiton to create/update the customer information. Simply end user will use the client applicaiton (front end) web interface to create the customer..How can I send data to SAP PI?

Applicaiton B is using a web client/application to view the customer information along with additional informaiton. How can SAP PI will push data to this applicaiton?

What are things I need to look after if I want to go for SOAP/HTTP or Direct connection using SAP PI EPH1.

Thanks

Rajeev.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

You mentioned A is client server and B is web based application.

so A can use HTTP (Via PI) to communicate with B.

Also talk to both A and B and check whether they host webservice or ready to consume webservice?

Note: Direct connection via PI can be used only between SAP systems. So in your case that might not be feasible.

Hope the above suggestions helpful

Former Member
0 Kudos

Thanks Baskar,

I found out that Applicaiton B can provide WSDL file, so I can use the WSDL and push the data to Applicaiton B. So I can use SOAP adaptor to push in to B from SAP PI..Please let me know if I am wrong.

Also I want to know does SOAP supports only asyncronous call as I dont want any response back from Applicaiton B once Cusotmer is passed and created in Applicaiton B....

Applicaiton A has a web client through which Users will create customers.. so I want to know is it possible to get data from the web once they hit the submit button to SAP PI? If so how can I do it?

THanks

Rajeev

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>> I found out that Applicaiton B can provide WSDL file, so I can use the WSDL and push the data to Applicaiton B. So I can use SOAP adaptor to push in to B from SAP PI..Please let me know if I am wrong.

Yes. You are right. Use SOAP adapter receiver to consume web service.

>>Also I want to know does SOAP supports only asyncronous call as I dont want any response back from Applicaiton B once Cusotmer is passed and created in Applicaiton B....

Yes. Soap supports both synchronous and asynchronous. To do asynchronous, Quality of service in comm channel should be exactly once or EOIO not Best Effort.

Best Effort for synchronous mode only

>>Applicaiton A has a web client through which Users will create customers.. so I want to know is it possible to get data from the web once they hit the submit button to SAP PI? If so how can I do it?

Yes, that is possible. When the user hit submit button in web client they can push the data via HTTP protocol. you can configure HTTP sender in PI to pull the data from web client. Basically you have to guide them to use HTTP POST method referencing your PI server URL. That's it.

HTTP Post is prettty common from web client side...

Hope I answered all your questions.

Former Member
0 Kudos

HI Baskar,

Thanks for your valuale inputs:

From Applicaiton A to send data to SAP PI :

I will create the DT,MT,SI and perform all the configuration objects of entire scenario from Applicaiton A to Applicaiton B then I have to create the URL from tools option right? I have to give this URL to the APplicaiton A right?

I wonder : Applicaiton A already has the web client to create Customers... Does Applicaiton A has to code some where in their applicaiton to map the strucutre and forwad to SAP PI using URL i forward?? How it works can any one please through some light? The structure I create in SAP PI is of few feilds where as web client interface has more inforamtion of customer...

THanks

Rajeev

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>>How it works can any one please through some light? The structure I create in SAP PI is of few feilds where as web client interface has more inforamtion of customer

Create HTTP sender data type, message type and everything as usual in PI. YOu have to do two things

HTTP adapter is available in abap stack i.e Integration engine.

Go to RWB -->Component Monitoring -->Integration Engine --> Test Message You will find send message to field URL

That is the URL you client has to use for posting the data.

1) Basically the above url plus add sender system, sender interface , sender namespace , qos

Example:

http://hostname:8105/sap/xi/engine?type=entry?namespace=<namespace>&interface=<interface>&service=<s...;

Asynchronous use EO

2) Payload is XML: YOu provide your sender side message structure.

Give the URL (1) and 2) Payload structure to the client.

The web client create data as you given in payload structure and use URL for the http post.

Check this link

http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/content.htm

aashish_sinha
Active Contributor
0 Kudos

Hi,

Lets say you are using some pages from where you have to do HTTP post to PI server and PI will take data and POst it to some other application using SOAP Adapter(as you described that you have a WSDL with you.)

To post data to PI Http adapter use

< hostname: port > : < path > : /sap/xi/adapter_plain <query-string > : Namespace ,Interface ,Service

Have a look here

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/66dadc6e-0a01-0010-9ea9-bb6d8ca4...

Regards

Aashish Sinha

Former Member
0 Kudos

HI,

Thanks for the link but my concern is about the client appliaitons A and B:

From SAP PI perspective : I will create the DT,MT,SI,MM,IM and all ID configuration .. I will get the WSDL from Applicaiton B and I will give the URL to Applicaiton A...

Now my question is to get understnad how Applicaiton A will send the data : Do they have to code at their end? As at Applicaiton A the IT experts are not aware how to send the data to SAP PI... Can any one clear me how Applicaiton A will send the data...

Similarly at Applicaiton B also there will be coding needed right? Want to understnad how the flow will work at other applications..

Thanks

Rajeev

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>> As at Applicaiton A the IT experts are not aware how to send the data to SAP PI... Can any one clear me how Applicaiton A will send the data...

Already answered in my previous reply. Yes they have to create input as your payload and post the data in the given URL.

>>Similarly at Applicaiton B also there will be coding needed right? Want to understnad how the flow will work at other applications..

You are consuming webservice so you will use soap receiver adapter. They will create webservice and provide you wsdl to use.

That means B will code to create webservice.

Former Member
0 Kudos

Thanks Baskar,

I undertood that Applicaiton A team has to create input as SAP PI Payload and post the data in the SAP PI URL

>>Yes they have to create input as your payload and post the data in the given URL.

but my questtion is what needs to be done at Applicaiton A side to create Input and post the data in the SAP PI URL... As they are using the web client provided by the Application provider..Do they have to write code at the submit button of the web page? If so they have to customnise the code delivered by the provider? How it works.. Its been first time going through this...

Do they pass all the values in the URL or to the URL?

Is it possible to use SOAP adaptor instead of HTTP adaptor? so that I can use AAE in the entire scenario. Applicaiton A is a web client interface through which Customers are created.If I need to use HTTP Adaptor, do I need to create HTTP Sender Adaptor and sender Aggrement ?

Thanks

Rajeev.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>>> but my questtion is what needs to be done at Applicaiton A side to create Input and post the data in the SAP PI URL... As they are using the web client provided by the Application provider..Do they have to write code at the submit button of the web page? If so they have to customnise the code delivered by the provider? How it works.. Its been first time going through this...

Yes, if you create webservice by creating soap sender and give WSDL, then they will have to write webservice client program in java or any language to access your webservice. This program will be called in their side at the time of hitting submit button of the web page.

For this you have to go through soap sender sdn documents.

or As I already mentioned, create HTTP sender and provide your payload structure and url as we discussed in the above replies. A has to create coding to post HTTP using the url during submit hit button on their web page.

>>Do they pass all the values in the URL or to the URL?

This is client A's problem. Why do you worry? There are plenty of documents to do http post.. The below coding is simple snippet..

Search google for plenty of documents...

try {
    // Construct data
    String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
    data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");

    // Send data
    URL url = new URL("http://hostname:80/cgi");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        // Process line...
    }
    wr.close();
    rd.close();
} catch (Exception e) {
}

>>Is it possible to use SOAP adaptor instead of HTTP adaptor? so that I can use AAE in the entire scenario. Applicaiton A is a web client interface through which Customers are created.If I need to use HTTP Adaptor, do I need to create HTTP Sender Adaptor and sender Aggrement ?

Yes, if you host webservice using soap sender adaptor. Already answered above ...

>> If I need to use HTTP Adaptor, do I need to create HTTP Sender Adaptor and sender Aggrement ?

no. Http adaptor is in abap stack. so you dont need sender agreement.

Former Member
0 Kudos

Hi,

Thanks Baskar alot for your reply.

If I go with HTTP Adaptor then SAP PI will fowrad the URL and the Payload strcuture to Applicaiton A team.. Using these details Applicaiton A team has to write code at there end (in Application A) and push the data in the or to the URL..

If this is case then there is no need to create HTTP sender Communicaiton Channel and Sender Aggrement.. Right?

If I go with SOAP Adapter then SAP PI will forward the WSDL from Sender Aggrement->Tools>WSDL.... to Applicaiton Team A... Using WSDL they will write a code to push data to the SAP PI.. In which case SAP PI has to create all the Objects as usually...Is it right?

In both the case Applicaiton A has to write the code to push the data to the SAP PI..

May I know which is the best apporach to use? HTTP or SOAP?

Thanks

Rajeev.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>> If this is case then there is no need to create HTTP sender Communicaiton Channel and Sender Aggrement.. Right?

Yes. you are right.

>>... Using WSDL they will write a code to push data to the SAP PI.. In which case SAP PI has to create all the Objects as usually...Is it right?

Yes. that is right.

May I know which is the best apporach to use? HTTP or SOAP?

Talk to A to decide whether they are ready to do HTTP or SOAP. They have to tell whether they are ready to do HTTP post or writing webservice client.

Former Member
0 Kudos

Thank You Baskar.

Former Member
0 Kudos

Hi Rajeev,

The post is getting quite long. I think i did not see one thing mentioned:

You say B-side has the WSDL, and they are the provider of the webservice (i.e. they are the receiver of the PI message)

You can ask B-side for the WSDL, open it in browser, save as file, and then import that as External Definition in the Enterprise Service Builder.

(go to Create Object >> Interface Object >> External Definition; (this is the path on 7.1 EHP1))

Then you dont need to bother with DT and MT for the receiver side.

Kr

Robert

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi.

Go for SAOP adapter..Check whther your 3rd party application supports webservices or not.

Regards,

Praveen Kalwa

rajasekhar_reddy14
Active Contributor
0 Kudos

Check A and B Supports web service clas, if Yes go with SOAP adapter..

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Suggestions:

To Integrate Application A and B

a) If you want to go web based and having standard requirement , Use HTTP adapter itself.

b) If one of your application does not support or not running java or .net or so then go for webservice.(SOAP adapter)

c) Another way of integration is using database. You can integrate say FIle to JDBC.

Application A can drop the data in the file format to PI. PI pick the file and use jdbc adapter to write the data in application B.

See your requirements and go for the above ways.

Search SDN and you will see plenty of documents for HTTP sender, soap sender or file based interfaces to JDBC and so

Also you can try Java proxy too.