cancel
Showing results for 
Search instead for 
Did you mean: 

Problem in ABAP proxy........

Former Member
0 Kudos

Dear Friends,

I am new to PI. I have WSDL file and its URL. Now i want to transport the data in ECC. I searched and find that ABAP proxy can be used for this purpose. I made proxy and in SOA manager when i make logical port and apply settings, it gives  this error

"SRT Framework exception: Error in WSDL access: Exception occurred in communication framework:Error in HTTP Framework:500Empty HTTP request receivedhttp://devpi:8000/sap/xi/engine?type=entry&version=3.0&Sender.Service="

It does not allow me to create logical port. Can somebody tell me what is this error and what is the reason of this error? How it can be resolved?When i use my WSDL filel using XML spy, it is working perfectly fine. Kindly help....

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Check your WSDL url...it is not correct...

it should start with http://host:port/XI/SOAPAdapter/MessageServlet...

Regenerate the WSDL Url in PI ...and redeploy the same..

Search SDN if need more info on how to generate WSDL and url of the same..

HTH

Rajesh

Former Member
0 Kudos

Dear Rahesh,

I also have tried your said URL, but its the same problem.

Regards

Former Member
0 Kudos

Hi Imran,

You may not need webservice for communication, you can use XI receiver channel.

Please check this link:

http://wiki.sdn.sap.com/wiki/display/XI/Step-by-step+FTP+to+ABAP+Proxy

What is your version of PI? As the steps are little different in different versions.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Thanks very much for sending me a useful link. My PI version is 7.0. Beena, can you tell me step-by-step. I have WSDl file. First tell me, what i need to do with this WSDL file. Shall i first import this WSDL file in ESR by using option of Import external definition in integration browser? And than after importing it, what channel i need to configure. I have to use this WSDl file in ECC via PI. Kindly explain in some steps. I shall be very thankful to you. I am new to Pi and have many confusions, that is why requesting you to explain step by step. I will much appreciate that. The WSDL file that i have is from our company's partner which reside in another country.

Thanks and waiting for your reply

Former Member
0 Kudos

Hi Imran,

Can you please elaborate your scenario? I am confused now.

You have some third party WSDL and you need to post data in ECC.

Is that correct?

Is the URL of WSDL is of third party? But you mentioned earlier that you have WSDL in PI?

So is scenario like this?

1. get the data from third party WSDL

2. Post fetched data in ECC

Is the web service synchronous?

In that case you can achieve this using Proxy --> SOAP scenario:

1. Develop outbound proxy in ECC

2. trigger proxy from ECC to PI send request

3. configure SOAP receiver adapter in PI to fetch data from web service provided by third party

4. update soap response in sender proxy in ECC

You can check these link:

http://scn.sap.com/thread/1303663

Regards,

Beena.

Former Member
0 Kudos

Dear Beena,

Ok let me clear it again. Our one of the company's subsidiary is in another country. They have developed their web service in their PI system. All i have is a WSDL file. Yes, you are right. We need to get the data from WSDL and than need to bring this data in ECC. At the end, i think ECC will be calling this web service through PI.

I read that we first need to import this WSDL file in our PI system . After importing what steps i will be required to execute the above mentioned scenario? I will prefer to use proxy in ECC.

Thanks very much for your help

Former Member
0 Kudos

Hi Imran,

Ok, then proxy to soapn will work for you in this case.

1. import wsdl in IR in external definition

2. create inbound and outbound interfaces using wsdl request and response message types

3. create ID objects, receiver determination with ECC as sender and their PI system as receiver

4. create interface determination with inbound interface defined in IR

5. create SOAP / XI communication channel : As you are communicating with another PI box, you may configure the XI channel and provide URL in channel (I think they have provided some URL with /sap/xi/engine?type=entry so it should work with XI channel ) But if url contains messageservlet then you will have to use SOAP channel

6 create receiver agreement

7 create outbound proxy in ECC system using SPROXY transaction

8 trigger outbound proxy from ECC in report/ function module where you need data from WSDL

Former Member
0 Kudos

Dear Beena,

Thanks for your reply. Ok i will follow these steps. So, in PI , SOAP will be receiver channel, in which i will put URL of the WSDL file and sender will be proxy channel. Beena, which adapter i have to use in configuring proxy channel? Also, in 8th step u mentioned of FM to trigger proxy. Can you tell me the name of any FM?

Regards

Thanks

Former Member
0 Kudos

Hi Imran,

You need not configure adapter for sender proxy.

Please follow the steps as per below link:

http://scn.sap.com/people/vijaya.kumari2/blog/2006/01/26/how-do-you-activate-abap-proxies

You need to do below steps in ECC system if it they are not done already:

1. create HTTP destination of Type H pointing to PI 7.0 system

2. configure the same in sxmb_adm transaction

3. Create RFC destinations LCRSAPRFC and SAPSLDAPI of type T

4. configure SLD in SLDAPICUST transaction

5. check if SLDCHECK runs without any errors

Create Business system of ECC in SLD

Please see below links for proxy configuration in PI:

http://scn.sap.com/people/ravikumar.allampallam/blog/2005/03/14/abap-proxies-in-xiclient-proxy

http://scn.sap.com/people/sandeep.kaushik/blog/2010/07/15/abap-proxy-complete-developments-on-sap-pi...

Please see below link to call the proxy from abap program:

http://help.sap.com/saphelp_erp60_sp/helpdata/en/3e/a35c3cff8ca92be10000000a114084/content.htm

You may also test your sender proxy from SPROXY transaction also. From Menu,  Proxy --> Test Interface.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Hope you are fine. I need some help from you. In my scenario, in which i will trigger proxy and data will come from other side through PI in my ECC system. I am actually confused that which proxy i will require for this? inbound proxy or outbound proxy?

Ok i have imported external file in PI and have made inbound and outbound message interface using request and response message. Message interface also has been build. Now, i need to develop one Soap receiver channel. Right? In this channel, i will put URL of WSDL file.

Now, here i am confused. What i have to do for sender channel? Pi will receive data through SOAP channel and send it to ECC through proxy to ECC. Right? how can i configure sender proxy? Also plz clarify me that which proxy has to be defined?inbound or outbound?

Beena, when i run the proxy from ECC, whole scenario will be triggered and data will come from other side. How can i test it that the scenario has been successfully tested? Could it be possible to display this data in a report or FM? where i have to write this code? with in proxy class?

Kindly explain these things. i will be much appreciative.

Regards

Imran

Former Member
0 Kudos

Hi Imran,

When you send data from ABAP Proxy its called sender/outbound proxy and when you receive data in ABAP proxy its called receiver/inbound proxy.

Outbound proxy - ECC system will send data/request for data in sync scenario to PI

Inbound proxy - ECC system will receive data

In your case it is synchronous scenario where ECC system will request the data and get a response.So generate outbound proxy with request and response messages. When you test this , you will send request data to web service in output structure and receive the response from web service in input structure:

* do synchronous client proxy call

    CALL METHOD lo_clientProxy->execute_synchronous

             EXPORTING output  = ls_request
             IMPORTING input   = ls_response.

    CATCH cx_ai_system_fault INTO lo_sys_exception.

You may write this code in report or function module to trigger the proxy.

It is similar to calling function module to send data in exporting parameters and receive data in importing parameters.

So create outbound interface for proxy and create inbound interface from wsdl imported in PI. Both will be synchronous.

You need not configure sender channel for sender proxy as it directly sends data to integration engine of PI so no sender agreement required like HTTP/Idoc adapters.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

I configured all as per your instructions. When i test this outbound proxy in SPROXY it gives this error

"NTERNAL.SYSTEM_NOT_CONFIGURED_AS_XMB System not configured as XI Integration Engine"

what do u think this error is? probably i need to do these 5 steps as you mentioned earlier.

1. create HTTP destination of Type H pointing to PI 7.0 system

2. configure the same in sxmb_adm transaction

3. Create RFC destinations LCRSAPRFC and SAPSLDAPI of type T

4. configure SLD in SLDAPICUST transaction

5. check if SLDCHECK runs without any errors

is this error because of some problem in these 5 points or of any other reason? Can you also little tell how to do these 5 steps in ECC?

Thanks

Regards

Imran

Former Member
0 Kudos

Hi Imran,

Were you able to see all interfaces of integration repository in SPROXY and create outbound proxy? If yes, then most of above steps are already configured.

Please check transaction sxmb_adm --> integration engine configuration .

Then check what is the value of corresponding integration server - it should point to PI system RFC  destination.( Type H with URL /sap/xi/engine?type=entry)

dest://<name of RFC destination>

Also go to transaction SICF and check if the service sap/xi/engine is active or not. If its inactive then check with your basis person to activate it.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Yes dear, i can run SPROXY from ECC and have created proxy as well. I think the rest configuration is ok too. When i test outbound proxy in sproxy, a small window opens which ask for logical port. But i dont enter any logical port. XML page iwht input string opens and when i execute it, i get this error.

"NTERNAL.SYSTEM_NOT_CONFIGURED_AS_XMB System not configured as XI Integration Engine"

OK let me explain you what i have done so far. May be i am doing something wrong some where. I imported external file. Than i made inbound and outbound interfaces with both request and response message. Message mapping and interface mapping is fine too.

IN integration builder configuration, i made 2 business services. One is with receiver soap channel and other is just sender service with no channel. Than i made receiver agreement, receiver determination and  interface determination. There is no sender agreement and i have not made and sender communication channel as you said that we dont need communication channel in case of sender proxy. I hope i have done the right steps. Please let me know why i am facing that error when i test outbound proxy.

thanks

Regadrs

Imran

Former Member
0 Kudos

Dear Beena,

Ok that problem has been solver. It was configuration problem in ECC. I set them up in Tcode  SXMB_ADM. Now, when i run the proxy from ECC, it does ask for PI user name and password. Now it is giving this error.

"RCVR_DETERMINATION.NO_RECEIVER_CASE_BE No receiver could be determined"

is there any problem in receiver determination?

Thanks

Former Member
0 Kudos

Hi Imran,

You need to create receiver determination in ID with business system and not business service.

There will be a business system in SLD for ECC system. You need to configure your scenario with business system to create receiver determination and other objects.

Actually business system , interface and namespace creates unique key to identify receiver.

You have message in PI in error, please check the header of message for these values and create receiver determination using those values. The receiver will  be business service created for web service.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Thanks for reply. So i need to define business system not business service. right? In my case, receiver channel is soap and sender is proxy. So , which i need to define in Business system and in business service. ECC is sender system with the outbound proxy. DO i need to define this in Business system?

Regards

Ch,Imran

Former Member
0 Kudos

Yes , Define ECC system as business system from SLD and web service system as business service.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

thanks for ur reply. Now i have defined sender in business system and receiver as business service. When i execute the scenario in sproxy in ecc , it is giving this message.

"Message general"

when i check it status in SXMB_Moni, the response message is

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!--

 Inbound Message 

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="MESSAGE">GENERAL</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />
kindly help what could be the problem.
Thanks
Regards

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Former Member
0 Kudos

Hi Imran,

Are you getting any message in PI system? If not,please check  RFC destination from ECC to PI (Type H and defined in sxmb_adm ) system is working or not. I think the username password in the destination are not correct.

if you are getting this error in sxmb_moni of PI system while calling receiver system, then please check if username, password is correctly maintained in soap receiver channel.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

When i run outbound proxy in ECC using Sproxy, it ask for user name and password. I give username and password of PI system. In soap receiver channel, in user authentication, i also put PI user name and password. But same error is coming. I chkd in SXMB_MONI, bot sent and received message is in RED color.

I have checked in ECC, "connection to ABAP system" is defined as H.

The WSDL file, that i am using now has made in my PI system. I mean i have first developed RFC to SOAP scenario for exposing the data. When i check this WSDL file in XML spy, it working fine.

Now, for consuming, Proxy to soap, i am using this WSDL file. I mean i am consuming WSDL file which i exposed in my PI system. I am all doing this for testing scenario. By the way, i can use this WSDL file for consuming in ECC ?

Regards

Imran

Former Member
0 Kudos

Hi Imran,

If you are getting message in PI that means your proxy side Proxy --> PI is working fine.

Now the issue is with soap call. Please check if you have specified username and password in soap receiver channel to call the web service. Please provide same username password that you are using while testing the WSDL from xmlspy.

So you are not testing with your partner WSDL? In that case use same credentials that you are using in xmlspy to test the webservice.

Yes, you can consume the WSDL in ECC also.

Import wsdl in se80 --> Enterprise services and create client proxy for it.

Regards,

Beena

Former Member
0 Kudos

Good Morning Beena,

How r u ? yes dear,currently, i am not testing WSDL file from my partner as they said they want to make some changes. But for my future comfort i am now consuming my exposing PI scenarios for practice.

In my current scenario, exposing has been done by Soap to RFC

and consuming will be proxy to soap. i have double checked the passwords but still getting same error. yes, in SXMB_MONI, i can see my messages but with red color dot. But messages are coming.

Former Member
0 Kudos

Hi Imran,

Are you able to test the same soap to rfc scenario from xmlspy?

are you using same url and userid - password?

Regards,

Beena

Former Member
0 Kudos

yes dear, Soap to Rfc working fine and i have test it on XML SPY number of times. it is perfectly working. The only problem is in consuming side Proxy to Soap. I m also using same user name and password. I will go through user name and password once again.

Regards

Imran

Former Member
0 Kudos

Dear Beena,

tell me one thing. In soap receiver communication channel, there is option of "Configure proxy". DO we need to do any thing in that??

2nd when i test outbound proxy from Sproxy, it ask for logical port. I do not put any thing in this field. Do u think mentioned error might be the problem of any of these points??

Former Member
0 Kudos

Hi Imran,

The proxy configuration in channel is used to configure proxy server. It will not be required in your case as you are calling a link in your own network. There are 2 options when you test proxy - using web service runtime and integration server runtime, select integration server runtime , it will not ask for logical port in that case.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Hope you are fine. Tell me one thing. When i test my WSDL file (Exposing) in XML spy, it works fine and give the required response. But when i paste the URL of this file in Internet explorer, it ask for PI username and password and than give this message

Message Servlet is in Status OK

Status information:

Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/xi/NW04S_14_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#1 $) bound to /MessageServlet

Classname ModuleProcessor: null

Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean

Lookupname for remoteModuleProcessorLookupName: null

ModuleProcessorClass not instantiated

ModuleProcessorLocal is Instance of com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0

ModuleProcessorRemote not instantiated

Have a look on my URL. It is  http://---.--/XISOAPAdapter/MessageServlet?channel=:Soap_Sender_Cus:Soap_Cust&amp;version=3.0&amp;Se...

What do you think, the problem i am facing could be because of above mentioned problem??But my WSDL file is prefectly working when i test it in XML spy.

Thanks

Regards

Imran

Former Member
0 Kudos

Hi Imran,

There is no issue when you are checking the url from browser : status ok means everything is fine.

Regards,

Beena

Former Member
0 Kudos

Actually, i was reading on SCN that if you try URL in IE, XML code should display. But when i was putting my URL in IE, it was showing "Message Servlet is in Status OK". SO i was wondering that, may be my URL is not correct or not working.

I am still getting same error in my proxy to soap. when i check in SXMB_MONI, response message put this error

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!--

 Inbound Message 

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

 

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="MESSAGE">GENERAL</SAP:Code>

 

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Beena, what do you think? what could be the reason of this error? ia m still unable to get the cause.

Regards

Imran

"

Former Member
0 Kudos

hi

can you please provide screenshot of soap receiver channel?

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

I am attaching 3 screen shots. First is, when i execute the proxy from sproxy in ECC, 2nd is Request message in SXMB_MONI and 3rd is Response message in SXMB_Moni.

Regards

Imran

Former Member
0 Kudos

Hi Imran,

As you are getting message in PI, there should not be any issue on that front. Also as you are getting 401 unauthorized , it is related to authorization. It may be because userid-password is wrong or the user does not have appropriate authorization. But as you are saying the same is working from xmlspy, I am not sure why is it not working from PI.

Regards,

Beena

Former Member
0 Kudos

HI Beena,

Hope you are fine. Dear, the screen shots that i sent you are of my Proxy to Soap Scenario. I think you are still not cleared about my scenario. Let me explain you again.

I made one Bapi which return customer details on the input of customer number. So my exposing scenario was  RFC-to-Soap, in which if we send customer number, it gives customer data. My this scenario is working fine. I have test it on XML spy. If we put customer number in XMLSPY input parameter, it brings back the customer data.

Now, the first one was exposing scenario. Now, the same scenario, i want to use for consuming purpose, which is Proxy-to-Soap. So i imported WSDL file of my exposing scenario in integration builder. So, in this scenario, i will call a proxy which will bring customer data in ECC. In inbound soap channel, i have given URL of my exposing scenario.

My exposing scenario is working fine. However, problem is in consuming scenario. The screenshots that i sent you are of my consuming scenario (proxy-to-Soap). I hope you have fully understand my scenarios.

Thanks

Regards

Imran

Former Member
0 Kudos

Dear Beena,

I want to ask one thing. I am making one test scenario which RFC to SOAP. RFC is sender channel. In ECC, i need to make RFC destination of type H, in which  "Registered server program" needs to be  checked and we need to put values on "Gateway host" and "Gateway service". Kindly tell me in field of Gateway host which host needs to be entered ECC or PI. In this case, RFC is sender channel. Kindly let me know.

Thanks

Regards

Imran

Former Member
0 Kudos

Dear Beena,

Hope you are fine. Beena, you helped me many times before. Kindly help me out on this issue. I am consuming other party WSDL using Proxy to Soap Scenario. It is asynchronous. I generate proxy on outbound interface. But when i test this proxy, it gives message "Call successful-empty result". But i can't see any message in sxmb_moni in PI. What do you think what could be the problem.

For my practice, i make one small scenario which is also proxy to soap but it is synchronous. I am consuming my own made WSDL here. This scenario works fine and proxy working fine.

I am not getting why my proxy to soap asynchronous scenario is not working? The other party WSDL contain only request message. kindly help me in this regards. i will be much appreciative.

Thanks

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Imran,

You have created proxy in ECC system and this proxy will be called from PI. Is this correct?

You may test the proxy from SPROXY transaction also. Is the WSDL file generated from PI? can you please clarify the scenario.

Regards,

Beena.

Former Member
0 Kudos

Hi Beena,

Thanks for your reply. Yes, i have created WSDL file from PI. My URL is correct and WSDL file works correctly when i test it with XML spy. I also have double checked my URL.It is correct too.

Now, i am making proxy through SPROXY transaction. i open this transaction in ECC where i try to create proxy. But when i try to assign logical port to this proxy using SOA MANAGER, it gives error of "Empty HTTP request received".

Tell me am i doing the things right? or what could be the reason of this error?

Former Member
0 Kudos

Hi Imran,

If you are connecting ECC system to PI and using proxy for communication, then there is no need to do any configuration in soamanager. For PI to proxy communication where ECC is receiver, create communication channel of type XI and provide URL of integration engine of ECC system and PI will send data to ECC system. Create proxy in SPROXY transaction and implement the logic in generated class to process the data.

Regards,

Beena

Former Member
0 Kudos

Dear Beena,

Thanks for your reply. Actually i am following this link.

http://sapignite.com/consuming-a-web-service-in-abap/

i hope you have understood my scenario. I have WSDL file from other party. All i want is to consume this web service in ECC. Yes, in this case ECC is receiver. Please have a look on mentioned link, the one i am following. In this link, the person is creating proxy, than configuring it in SOA manager and than using those information in a FM.

Can you kindly tell me step by step how to connect ECC to PI using proxy and consuming web service. Or you can send me any link. I will be much appreciative.

Thanks