RFC calls & Synchronous Client Proxy
If I want to execute a Synchronous Client Proxy, sending request to XI and waiting for response from XI, do I HAVE TO define and import a RFC structure ?
My doubt is whether implementing RFC is a must in this case, or we can just define a equivalent structure (to the RFC structure: request & response), define all the mapping and create the proxy accordingly and it will work?
Your help is appreciated.
Hi!
No, you don't need to do that. Simply define your interface and generate proxies.
Peter
Similar Messages
-
Synchronous Client Proxy to JDBC !!
Hi,
My scenario is like this:
I am working on a synchronous scneario where SAP is sending
using synchronous client proxy to a database and after uploading
of data on JDBC side, the response(Success/Failure) flag has to be
sent back to SAP.
Please let me know how this scneario can be designed and if BPM is required here.
Thanks...Hi,
Go thru this
http://help.sap.com/saphelp_nw70/helpdata/en/45/20d251c20a0732e10000000a155369/content.htm
https://forums.sdn.sap.com/click.jspa?searchID=8242639&messageID=4482651
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
JDBC Synchronous call using BPM
Regards
Agasthuri Doss -
SOAP --XI ---RFC or Java Client Proxy
Hello Gurus,
Need your adivce for a scenario in XI
Scenario --- To implement XI with SAP SCEM(Supply Chain Event Management).
Client is sending data from Web Portal (JSP Page) and wants to integrate with R/3.
(Request from client and Response from R/3 shown again at browser )
Web Portal (JSP Page) is on server A and XI on server B
Queries ---
1. Can I use Java Client Proxy Approach --- proxy --- xi -- rfc approach
If Web Portal (JSP page) is working in server A and XI in server B then can I call xi server from jsp page by passing xi server credential (username,password,bus service) and using sync Interface I can show result back to browser.
2. For SOAP Approach -- SOAP -- XI --- RFC approach
Suppose I need to send two parameters from my Web Portal (JSP page) to xi to R/3 and it will return some result.
Concept of Webservice --- any application (like BAPI ) exposed.
a. Pls tell me all the steps required for IR and ID
b.How can I invoke that generated webservice from my jsp page --- so that my request parameters values go to xi from my jsp page and to R/3 and then result from R/3 to xi and to my jsp page.
RegardsI think second approach is more appropriate ie. SOAP>XI>RFC
Some of the blogs you can refer:
/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
Sender SOAP adapter config: http://help.sap.com/saphelp_nw04s/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm
Hope this helps,
Rgds,
Moorthy -
Error in Synchronous client proxy
Hi Gurus,
I have created a scenario in which I am using client proxy at source side (ECC ) and soap at target side.
Its a synchronous scenario for which I have written an abap report.This interface sends a company name and uses a webservice to fetch the stock value of that company.
I am a beginner in abap, so I am unable to to know the reason why is it showing the following error when I am executing the code.
Method "EXECUTE_SYNCHRONOUS" is unknown or PROTECTED or PRIVATE.
This error is coming at line :
CALL METHOD Proxy->execute_synchronous
Following is the code :
REPORT ZSYNC_PROXY_STOCKQUOTE NO STANDARD PAGE HEADING.
DATA Proxy TYPE REF TO ZCO_SI_SOURCE.
CREATE OBJECT Proxy.
DATA: t_company_name TYPE zsource_request_mt,
t_stock_value TYPE zsource_response_mt.
SELECTION-SCREEN: BEGIN OF BLOCK B1.
PARAMETER: p_id TYPE String.
SELECTION-SCREEN: END OF BLOCK B1.
START-of-selection.
TRY.
t_company_name-Source_Request_MT-Company_name = p_id.
CALL METHOD Proxy->execute_synchronous
Exporting
output = t_company_name
IMPORTING
input = t_stock_value.
WRITE: t_stock_value-Source_Response_MT-stock_value.
CATCH cx_ai_system_fault.
DATA fault TYPE REF TO cx_ai_system_fault.
CREATE OBJECT FAULT.
WRITE:/ fault->errortext.
ENDTRY.
END-OF-SELECTION.Hi,
You have wrongly assigned the method. It should not be pointing to Execute method.
it should be something like below
TRY.
CREATE OBJECT proxy.
CATCH cx_ai_system_fault.
ENDTRY.
TRY.
CALL METHOD Proxy-> " GIVE THE OUTBOUND SERVICE INTERFACE NAME HERE"
Exporting
output = t_company_name
IMPORTING
input = t_stock_value. -
Exception handling in synchronous client proxy
Hi, I have a synchronous outbound proxy-web service scenario. If our Post request (unknown data in the receiver) fails, the receiver system returns a 404 error that results in application error in PI. Now, I want know how to handle CX_AI_APPLICATION_FAULT using the standard fault message type (ExchangeFaultData). I couldn't find any reference for synchronous client proxies using this. I hope you can help me out. Thank you.
Hi Mark,
You have a link here How to handle CX_AI_SYSTEM_FAULT in RFC - Code Gallery - SCN Wiki or here https://help.sap.com/saphelp_nw04/helpdata/en/75/a55c3cff8ca92be10000000a114084/content.htm
I dont know what is your exact problem, you can retrieve certain information in the ABAP code but i usually set a generic message like "Connection unsuccessful" because if you debbug the object the information is so technical to be showed to a client.
Hope this helps.
Regards. -
How to call ABAP client proxy?
Hello,
I am getting confused with ABAP client proxy now.
I've defined a outbound service interface (Message Interface) in PI, based on the service interface I generated the ABAP client proxy in the abap backend system. There are two possible ways to configuration the integration scenario for this interface:
1) use the proxy as web service consumer for scenario like: ws consumer --> PI
2) No web service, just proxy like: Proxy --> PI
Now I've configured a logical port (as default logical port) for scenario 1.
I wrote a ABAP program to call the proxy to send out message to PI. To call the proxy we instantiate the proxy like:
CREATE OBJECT proxy EXPORTING logical_port_name = p_port.
proxy->myOperation( ... ).
Now if I specify the logical_port_name, I think the local IE in the abap system knows to send out the message using web service (scenario 1). However if I do NOT specify logical_port_name, how the local IE knows which way to send out the message? Using web service with the default logica port, or directly post the message to the centrl IE pipeline using the second scenario ?
Anybody can clarify my doubts?
Thanks
EricEric
The answer to your question lies in the method CREATE_FRAMEWORK of class CL_PROXY_FRAMEWORK_OUTBOUND. In this method, you will see method GET_SOAP_APPLICATION of class CL_SRT_LP_MAINTANENCE is checked to see which adapter to use (i.e WS runtime or XI runtime).
Anyway, to give a straight answer to your question, if you maintained an endpoint for your interface in tcode SOAManager, the WS runtime/adapter is used to send the message to Integration server. If there is no endpoint maintained, then it uses the XI runtime (or the traditional proxy adapter).
Now, as far as logical port goes, if you didn't give a value when calling the proxy client class and you didn't maintain an endpoint in SOAManager, then XI runtime is used.
If you didn't pass a value to logical port but you maintained an endpoint which the default logical port, then the same is used and communication happens through WS adapter.
If you didn't pass a value to logical port but you maintained an endpoint and didn't mark the port as default, then a WS runtime exception is raised.
Hope this answers your question. For more information, try to take a look in the classes mentioned above.
KK -
Problem Calling a Client Proxy from ABAP which is based on an extension
I'm trying to create an Asset in Salesforce from SAP using ABAP.
I have exported the enterprise WSDL from Salesforce, generated a client proxy and have coded the login call and passed the session id to the create call.
The problem I am having is the create method references sobject however asset is an extension of this.
<complexType name="Asset">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="Account" nillable="true" minOccurs="0" type="ens:Account"/>
<element name="AccountId" nillable="true" minOccurs="0" type="tns:ID"/>
<-- many more fields here -->
</sequence>
</extension>
</complexContent>
</complexType>
I need to pass something like this (tested and working using SOAPUI)
<urn:sObjects xsi:type="urn:Asset"
xmlns:ns3="urn:sobject.enterprise.soap.sforce.com">
<urn:AccountId>001A000000HoyKZ</urn:AccountId>
<urn:Name>JWSOAPTEST Asset3</urn:Name>
<-- many more fields here -->
</urn:sObjects>
I tried modifying the WSDL so sobject referrs to Asset
<!-- Create Message Types -->
<element name="create">
<complexType>
<sequence>
<!-- element name="sObjects" type="ens:sObject" minOccurs="0" maxOccurs="unbounded" -->
<element name="sObjects" type="ens:Asset" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="createResponse">
<complexType>
<sequence>
<element name="result" type="tns:SaveResult" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
However other types it referred to weren't populated.
The other approache may be to manually populate the xml similar to what I had to do in the header (this link gives a good overview on this Consume web service in ABAP proxy with SOAP header )
Any recommendations or advice would be appreciated.
Ideally some sample code if someone has done this or a recommendation on how to modify the WSDL.
Regards,
JohnHi John,
Calling SFDC.com from PI, is detailed out here. probably will give some tips:
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/50a76cfa-4966-2d10-aba7-da496d9b5bcf
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/802f8d03-9282-2d10-52b4-f9446e077099
Regards, Moorthy -
Hi Masters,
I am trying to create the Cleint PROXY in BW system, I am facing the 2 issues..
1. I assigned the ZPack , and prefix: Z, and create the proxy, getting the error message: DDIC object TABL XXXXXX has package check errors., I think this issue was Package issue.
2. I assign the $TMP package, Prefix: Z and create the proxy, successfully created and actived. But I am not able to see the method: execute_asynchronous in my class ZCO_XXX.
Can any one guide me, how can i fix the issues??
Thanks,
SR
Edited by: Test12345678 on Jun 28, 2010 5:56 PMIn PI7.0 you dont have Method execute Asyn but you have the method name created something similar to your interface name.Execute Asyn was only there in XI 3.0.
You can call your client proxy in abap code as follows:
TRY.
CREATE OBJECT w_obj "'"' of class name type .
**Handle exception
CATCH cx_ai_system_fault INTO w_sys_exception.
ENDTRY.
TRY.
CALL METHOD w_obj ->Method name "Interface name
EXPORTING
output = it_req. " data to be send to pi
COMMIT WORK.
**Handle exception
CATCH cx_ai_system_fault INTO w_sys_exception.
CATCH cx_ai_application_fault INTO w_app_exception.
ENDTRY.
Thanks
Sikha -
Troubleshooting SOAP Call with ABAP Client Proxy
Hello,
we want to make a synchronous call to a web service from ABAP via HTTP / SOAP. The third party system provides a WSDL which we have used to create a client proxy in ABAP.
The request call works fine, but we do not get any SOAP response.
The question now is which monitoring / debugging capabilties are recommended on the SAP system to track down the problem? Which transactions and monitoring functionalities should I use?
Thank you very much for your advise!
Edited by: Florian G. on Jun 6, 2010 2:47 PMHi Prasad,
Here is an example of each one... notice the difference between the Username elements in each of the requests:
qualified -
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://somenamespace">
<soapenv:Header/>
<soapenv:Body>
<ver:GetUserRequest>
<ver:IdmRequestContext>
<ver:UserName></ver:UserName>
</ver:IdmRequestContext>
</ver:GetUserRequest>
</soapenv:Body>
</soapenv:Envelope>
unqualified -
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://somenamespace">
<soapenv:Header/>
<soapenv:Body>
<ver:GetUserRequest>
<ver:IdmRequestContext>
<UserName></UserName>
</ver:IdmRequestContext>
</ver:GetUserRequest>
</soapenv:Body>
</soapenv:Envelope>
If you have the option of the WSDL definition changing that attribute to unqualified then it should start working immediately. If that is not an option then your ABAP mapping needs to handle the namespace insertion into the XML. I achieved this in my requirement by using a graphical mapping instead because I imported the WSDL as an external definition and mapped my proxy 1:1 to each element in the external definition.
Regards,
Ryan Crosby -
Calling Synchronous RFC Function Module in Background
Hi all,
Currently we are working on some requirement where in we have to retrieve data from one system(CRM) and update the same into another system(ECC). We have developed a RFC Function in CRM system and it is being called from ECC system as in synchronous mode via a batch program.
Now since all sychronous call to a RFC function will be dialog there is a constraint on the runtime which is being set by maximum run time for each dialog work process. So my question is there an option to call an RFC function synchronously in background (background task) so there is no runtime performance.
The standard TRFC, QRFC calls in background runs asynchronously and so I am trying to check with the SDN world as whether has anyone tried SRFC(Synchronous) call in background?
Thanks in advance,
JagathSo my question is there an option to call an RFC function synchronously in background (background task) so there is no runtime performance.
One solution would be to increase the value of the "time out" parameter defined the CRM system. This i feel is not a fool-proof solution as the run-times cannot be predicted. Check this thread: Re: RFC timeout profile parameter
For me a better solution would be to implement tRFC call instead of a synchronous call. Any reasons why you don't want to implement a tRFC ?
BR,
Suhas
Edited by: Suhas Saha on Jun 26, 2010 8:52 AM -
ERROR During call of SOAP with a SOAP- RFC- SOAP Synchronous scenario
Hello Experts,
I've recently created a SOAP->RFC->SOAP synchronous scenario but every time I'm invoking the SOAP via XMLSpy then i will hang and send a timeout error. Also a log in XI was generated as shown below.
I hope you could help me on this one.
Runtime Errors DBIF_RSQL_SQL_ERROR
Exception CX_SY_OPEN_SQL_DB
Date and Time 28.09.2010 09:31:23
Short text
SQL error in the database when accessing a table.
What happened?
The database system detected a deadlock and avoided it by rolling back
your transaction.
What can you do?
If possible (and necessary), repeat the last database transaction in the
hope that locking the object will not result in another deadlock.
Note which actions and input led to the error.
For further help in handling the problem, contact your SAP administrator
You can use the ABAP dump analysis transaction ST22 to view and manage
termination messages, in particular for long term reference.
Note which actions and input led to the error.
For further help in handling the problem, contact your SAP administrator
You can use the ABAP dump analysis transaction ST22 to view and manage
termination messages, in particular for long term reference.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
in
procedure "DELETE_LUW_PACKET" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The database system recognized that your last operation on the database
would have led to a deadlock.
Therefore, your transaction was rolled back
to avoid this.
ORACLE always terminates any transaction that would result in deadlock.
The other transactions involved in this potential deadlock
are not affected by the termination.
Regards,
AlfredNormally such an error comes when the DB of SAP PI is full.
Contact your BASIS or ADMIN team and ask them to free the DB space.
Regards,
Abhishek. -
How to Use synchronous RFC calls during test run for remote accesses
there is a Setting for the usage of RFC accesses from a tested system
using eCATT.
'X' - Use asynchronous RFC calls during test run for remote accesses
' ' - Use synchronous RFC calls during test run for remote accesses
I developed an eCATT as following :
SAPGUI ( SAPGUI_1 , Target_system_1 ).
SAPGUI ( SAPGUI_2 , Target_system_2 ).
My question is how to run the eCATT in a synchronous RFC calls
PS: I do not want to change the Target_system to the same one in the
above script of ecatt.Because I need to run it in 2 different Target
systems sometime.
for example, I give a Target_system_3 when run this eCATT
I want the SAPGUI_1 and SAPGUI_2 run the Target_system_3 but not the
Target_system_1 or Target_system_2 .
Could you please tell me how to make it without the changes in script?
Edited by: Weitong Liu on Mar 24, 2011 9:44 AMHi Liu,
Weitong Liu wrote:
> ' ' - Use synchronous RFC calls during test run for remote accesses
This is the standard option value. Asynchronous are not the standard way and used only for very special purposes.
Weitong Liu wrote:
> I developed an eCATT as following :
> SAPGUI ( SAPGUI_1 , Target_system_1 ).
> SAPGUI ( SAPGUI_2 , Target_system_2 ).
> My question is how to run the eCATT in a synchronous RFC calls
The commands will be executed in sequence. So each call will be synchronously replayed against TS1 and TS2.
What is you issue with this standard procedure?
Kind regards,
Christoph -
SAP Client Proxy to Webservice Synchronous Scenario
Hi Experts,
I have an outbound Synchronous Scenario.In which i have to trigger a Client Proxy from SAP side and Connect to a WebService using PI.
I have with me the WSDl and URL for Webservice.Can anyone guide me with the necessary steps.
Regards
GauravHi gaurav,
From client proxy u have to send request and get the response back...
So, for this create 2 corresponding data types and message types. and mapping will be between request message type which u created and request wsdl message and another mapping for response wsdl message and response message type which u created.
create service interface outbound synchronous(give the message types which u created) and inbound synchronous(give the wsdl request and response messages).
Regards,
Sunitha -
Client Proxy : How to Call Outbound Generated Proxy in ABAP report ?
Dear SDNrs.
I have already created a Scenario for Client/ Outbound Proxy in XI .
I have already Generated Client/ Outbound Proxy in ECC .
Now Question is How to call this generated Proxy in report ?
Please Guide ..... I dont have any idea ...
1. before calling any proxy in report what information needs to collect from generated Proxy ?
2. How to call this generated Proxy in report ?
Regards
Prabhat Sharma.Hi Prabhat
You have to use your knowledge about ABAP OO for this.
It's simple. You created your Proxy Object throught SPROXY transaction, right? Now, you have to instance your class (information avaliable in SPROXY-> Proxy Objetc -> Class Name) and to use the method displayed there.
Follow an example:
DATA: wa_backfeed TYPE zibrsapglbackfeed_sapgl,
wa_output TYPE zibrsapglrequest,
lo_clientproxy TYPE REF TO zibrco_sapgl_out,
lo_sys_exception TYPE REF TO cx_ai_system_fault.
TRY.
CREATE OBJECT lo_clientproxy.
CALL METHOD lo_clientproxy->sapgl_out
EXPORTING
output = wa_output.
CATCH cx_ai_system_fault INTO lo_sys_exception.
lo_sys_exception->if_message~get_text( ).
ENDTRY. -
System exception after a succesful synchronous ABAP Proxy call
Guys,
I have the following scenario:
1) From an R/3 box I initiate a synchronous ABAP proxy call
2) On XI everything works fine, the http request is sent out (using the http adapter), the response comes back succesfully and it is transfered back to the R/3 box - no error whatsoever
3) On the R/3 box however the EXECUTE_SYNCHRONOUS method throws a system exception BUT the returning (input) parameter holds the response message!
So in the end if I catch this exception (CX_AI_SYSTEM_FAULT) then I could be happy and just ignore the exception, but I don't feel comfortable leaving it this way. Why is the exception and how can I eliminate it?
Any help would be greatly appreciated.
Thanks a lot,
ViktorJoel/Jörg,
Thank you for your response, indeed I ended up debugging it and found my error deep down:
Error code: ABAP_PROXY.PARSE_APPLICATION_DATA
Error text: Error handling Response Message; XSLT error: CX_XSLT_DESERIALIZATION_ERROR: XSLT program and source line: /1SAI/XS00000000000000000088: 0000000122; Tree Position: abap.values.1.1.1.6.1.5 ABAP Classname: CX_SY_CONVERSION_DATA_LOSS Data String: WINDSOR CT 06095-1712
The data field defined in SAP was too short for the field.
Thanks a lot,
Viktor
Maybe you are looking for
-
my document is in cmyk but when i want to select a colour it only allows me to select rgb colours, how can i change my colour remetrix space in cmyk thank you
-
How is the follow-on doc triggered from shopping cart in SRM 7.0?
Hi! We are on SRM 7.0 and want to make a solution where we create a PM order (Work order) as a follow-on document in backend instead of a Requisition or PO. There are desciptions on how to change document type and function using BADI's for the older
-
I am running a 1998 iMac with a PowerPC Processor. It has MacOS 8.5.1. I have a PNY 2 GB USB Flash Drive. How do I mount this.
-
I'm running the latest version of QT Pro and using QT Player Scripts (downloaded from Apple's site). Since my upgrade to Tiger (i think that's the difference, anyway) I am getting a scripting error when trying to "add a chapter at current time" to th
-
Thumbnail for Album Cover in E-mail?
When sending an e-mail regarding an album the recepient receives the e-mail ("Check out John's album on Photoshop.com") and can view the album ok but the e-mail does not contain an image - I'm guessing that the album cover photo should be displayed b