Parallel processing of webservice calls in ABAP Proxy
Within an ABAP Proxy I want to call multiple services in parallel. My thougth was to encapsulate the webservice calls in RFC function modules and then to use "CALL FUNCTION STARTING NEW TASK ..." but anyhow I am wondering if it is possible to use a form within ABAP proxy to collect the RECEIVE data from the modules.
The Problem was caused by the response of the external AXIS WebService which contains a multiRef element in the SOAP
body which is not supported by SAP simple transformation.
The multiRef was switched off on AXIS.
Similar Messages
-
How can I call a ABAP proxy class from BADI? PLease help
hi Experts,
I have a scenario where I have to call a ABAP proxy class from a BADI. How can I do this? Does anybody has sample code for the same?
Please help.
Thanks
GopalHi,
You can call a method of a class from BADI. Here are the steps.
1) In the BADI implementation create a object for the proxy class.
2) Call the Execute_Synchronous method.
You can define a BADI by using SE18 and you can implement it by using SE19.
Sample code...
================================================
METHOD ZIF_EX_VBADI~CONVERTUPPER.
DATA: OBJ TYPE REF TO ZTESTCLASS.
DATA: IT_DATA TYPE ZIN_MT,
IT_RES TYPE ZOUT_MT,
SEXCEPTION TYPE REF TO CX_AI_SYSTEM_FAULT.
TRY.
CREATE OBJECT OBJ
EXPORTING
LOGICAL_PORT_NAME = 'TESTPORT'.
CATCH CX_AI_SYSTEM_FAULT INTO SEXCEPTION.
ENDTRY.
ENDMETHOD.
================================================
Thanks,
Vivek LR -
How to call a ABAP proxy class from a BADI? Please help!
hi Experts,
I have a scenario where I have to call a ABAP proxy class from a BADI. How can I do this? Does anybody has sample code for the same?
Please help.
Thanks
GopalHi Gopal,
Check this out
DATA: ref_obj TYPE REF TO zmfg_production_ord.----> BADI
* Instantiate the proxy class
CREATE OBJECT ref_obj.
TRY.
CALL METHOD ref_obj->execute_asynchronous
EXPORTING
output = it_output. "Output Structure
COMMIT WORK.
CATCH cx_ai_system_fault INTO ref_sysexception.
ENDTRY.
IF ref_sysexception IS INITIAL.
WRITE : / 'Error Message'.
ENDIF.
Edited by: Raj on May 28, 2008 4:52 PM -
Bapi call in abap proxy reaching dialog timeout in async scenario
Hi all,
We have an XI interface to create sales orders. Legacy app sends a soap message async to XI with a group of orders. XI sends this group of orders to an Abap proxy async on ECC side. Into this Abap proxy we have a loop to process each order received in the group with BAPI_SALESORDER_CREATEFROMDAT2. Ending the loop, abap proxy start another async process to send the response to XI with an outbound abap proxy, and the response is redirected by XI to Legacy app.
The problem is, this group of orders can have two or two thousand orders... so, the async process guarantee that no timeout limit will be reached. This is working for the whole process. But when this BAPI is creating an order, the time out of BAPIs execution seems to be the same as the timeout of dialog processes (now set to 10 minutes). This is our problem. Some orders spend more than 10 minutes to process (orders with five hundreds items, for example)... when this occurs, BAPI throws a time out reached error and the async process stops on the inbound queue with status sysfail.
We are now trying to understand why this timeout is been triggered by the BAPI. As it is running into an Async process, it should execute without any kind of timeout limits...
If anybody has any idea, please, help us.
Thank you.
regards.
robertiMay be I was not so clear... the total spent time in the process can be many many hours, days, etc... no timeout is reached. I can post 10.000 orders, no timeout is reached. The problem is that if the processing of only one order with BAPI_SALESORDER_CREATEFROMDAT2 takes longer than 10 minutes, then the timeout is reached. This is the strange part. The processing of the bapi seems to get the same timeout of dialog processes, we already tested increasing the dialog process timeout and the timeout of bapi execution was the same...
We already monitor on SE66 to see if it opens a dialog process to execute the bapi call function, but it does not.
If anyone has any tip, please, provide us.
Thanks!
roberti -
Double call of abap proxy client
Hi expert,
I have a scenario which an abap program will send a data to third party web service via sender abap proxy. I notice some of the message was double in sxmb_moni which should be called 1 time. Any idea why this happen? Abaper said that the abap program only call my proxy client 1 time. Thanks.Hi,
Any possible the abap proxy send double message?
There is no way for this to happen.
Either your report for proxy ran twice consecutively or the proxy call method is in loop in report.
Sice u said that only 1 time it happened, i think th proxy call method is not in loop , and may be report ran twice.
Please check the ABAP code if any loop is there or proxy called twice in the report..
Babu -
Hi
<u>ABAP:</u>
I wish to know ,Do we need to configure SNC for calling an Abap side webservice using X509 certificate ?I m calling webservice from Abap.I created a certificate through VisualAdministrator and asign it to R/3 in STRUST transaction.Now can I pass it to my Webservice so that it should not ask for user/password.Any other way ,if u can suggest for the same,is welcome.
<u>JAVA:</u>
If i need to do the same with J2EE WAS webservice-then will the steps vary,as i feel no SNC can be configured in J2EE WAS.
Regards
DhanyaHi,
Besides that i think you can do it by configuring the ITS and calling the webservice by means of using BSP applications in ABAP .
Regards
Abhishek
Message was edited by: Abhishek Raj -
Calling an abap proxy on PI itself
We have a situation where we maintain tables in PI for logging etc... and we want to be able to update these from an inbound message. My plan was to create a proxy on PI itself map to it and call it via the XI adapter, but I get
Loop in message flow found: system is.00.sappi-dev-d1, pipeline CENTRAL with inbound adapter XI already processed
because of course it is trying to put the same message id back in the pipeline for processing
So, is this not possible? Should I just use the RFC adapter and create a function in abap?
thanks for ideas.
regards,
chrisHi,
>>>So, is this not possible? Should I just use the RFC adapter and create a function in abap?
no it's not possible unless you create a seperate client on PI which can be used for proxies then
Regards,
Michal Krawczyk -
Webservice calling through abap
Hi!
I need to know how to triger or call a webservice with abap?
Imagine there is a webservice existing I need a way to call it via abap
Thanks
Ilhan ertasHi
look at this pdf for the same
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a4433436-0301-0010-f2a9-9281ad574054
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/244e7923-0a01-0010-5887-fe0b0c6dbb8d
Regards
Abhishek -
SAP PI 7.4 SOAP - ABAP Proxy Synchronous Webservice
Hi Everyone,
I am developing the following scenario:
3rd party makes a SOAP call to SAP (via PI) to determine whether a vendor exists or not in the SAP system. The link for the call is provided by us from the Integrated Configuration.
The request comes in, calls an ABAP Proxy to check if a vendor exists and sends a response back to the SOAP call with a 'Y' or an 'N'.
I've read a lot about various scenarios but I'm having trouble connecting the dots as I'm fairly new to PI. I'd appreciate any help.
I've made the following set-up based on assuming I need separate Service Interfaces for the SOAP Request & Proxy Response
ESR
1. Message Types
SOAP (MT_SOAP_REQ & MT_SOAP_RESP) - PROXY (MT_PRXY_REQ & MT_PRXY_REQ)
2. Message Mappings
MM_REQUEST which maps MT_SOAP_REQ to MT_PRXY_REQ)
MM_RESPONSE which maps MT_PRXY_RESP to MT_SOAP_RESP)
3. Service Interfaces (Synchronous)
(SOAP Request)
SI_IN (Inbound Interface) with Request = MT_SOAP_REQ and Response = MT_SOAP_RESP
(Proxy Response)
SI_OUT (Outbound Interface) with Request = MT_PRXY_REQ and Response = MT_PRXY_RESP
4. Operation Mapping
OM_LOOKUP which maps SI_IN to SI_OUT with Request (MT_SOAP_REQ to MT_PRXY_REQ)
and Response (MT_SOAP_RESP to MT_PRXY_RESP)
I create the ABAP Proxies for each Service Interface. SI_IN contains the required coded method to check if there is a vendor.
I create the webservice and binding for SI_IN in SOAMANAGER
At this point I'm somewhat unsure - what do I need to do for SI_OUT ? Do I need to create a logical port ? how is SI_OUT associated to SI_IN (apart from the Operation) to get the response.
ID
In the Integration Directory I've created a SOAP_SENDER communication channel for System A and SOAP_RECEIVER channel for SAP. For the SOAP Receiver I need to specify a URL - what should this be ? Is it meant to point to the web service for SI_IN in SICF or just to the generic http://host:8000/sap/xi/engine?type=entry
Do I need to use the HTTP_AAE adapter for the receiver instead of SOAP ?
I created an Integrated Configuration for the SI_IN Service Interface with comm channel SOAP_SENDER from System A and SOAP_RECEIVER for SAP backend. I then got the WSDL for this to provide to the 3rd Party to test (via SOAP UI) . Again my concern is how is the SI_IN linked to the SI_OUT to achieve the response ?
I appreciate you taking the time to go through this . Any help is greatly appreciated.
Thanks very much
GaryI create the webservice and binding for SI_IN in SOAMANAGER
At this point I'm somewhat unsure - what do I need to do for SI_OUT ? Do I need to create a logical port ? how is SI_OUT associated to SI_IN (apart from the Operation) to get the response.
>>>>No need to do anything in SOAMANAGER
Do I need to use the HTTP_AAE adapter for the receiver instead of SOAP ?
>>> No. Soap adapter is fine. Configure your receiver channel as explianed in the below blog (section 4.3)
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70066f78-7794-2c10-2e8c-cb967cef407b?overridelayout=t…
Again my concern is how is the SI_IN linked to the SI_OUT to achieve the response ?
>>>>Your receiver determination and interface determination takes care of this.(receiver interface & outbound processing tabs in ICo) -
ABAP Proxy: Error calling Proxy
Hi guys,
Here I am with another amazing mistake.....
After searching the forum, reading some suggestions, notes, I'm a little bit lost on how to figure out what is wrong...
I've created a receiver ABAP Proxy. XI should call this proxy and receive the consequent response.....
I've tested the ABAP Proxy, everything is working fine...I've encountered some errors but was able to bypass them... But this one is getting hard...I've found one or two similar threads, or with the same error description but I had no luck in overcoming the error....
So, what is the problem....:
When XI is calling the ABAP Proxy I get:
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">EXCHANGE_PROFILE_ACCESS</SAP:Code>
<SAP:Stack>Error while reading exchange profile for system DEV and client 100</SAP:Stack>
I've searched the exchange profile but everything seems ok...
The user has all (and more) the authorizations needed....
Can you guys give me some hints? Or suggest any attempt....?Kumar,
as I said before, in SPROXY i can test the interface with no errors....
In the Application System the sldcheck returns no errors and the RFC Destinations return no errors on the connection tests...
I really can't understand what this problem might be...
Problem solved
What was it? Well, I'm really not sure...Like most of the threads related to this topic it's quite an awkward problem....I've tested some RFC connections which were created, changed some parameters, restarted the system and voila....
Thanks
Message was edited by:
Gonçalo Mouro Vaz -
Call ABAP-Proxy with SOAP adapter?
Hi all,
for a PI7.1-scenario I would like to use the Lookup-API in mapping. As I know I can use either RFC or SOAP channels, however I would rather call an ABAP-Proxy in my backend system instead.
So my question is: Is it technically possible to use the SOAP-adapter to call an ABAP-Proxy?
Your help would be appreciated, best regards
DavidHi Stefan,
Interesting answer here and one that has got me curious. Hope you can help.
1. When you say it is going to be possible to call a ABAP proxy using a UDF in the mapping of XI ( Lookup ), would it be using the WS Adapter of PI 7.1?
2. If 1 is yes, is there a new API code to do this, or is it the same lookup code as used previously in XI 3.0 and PI 7.0 Days?
3. If 1 is no, can you explain maybe a little more on how this would be possible using the standard SOAP adapter of XI?
Thanks a bunch.
Regards
Bhavesh -
Java Proxy Generation not working - Support for Parallel Processing
Hi Everyone,
As per SAP Note 1230721 - Java Proxy Generation - Support for Parallel Processing, when we generate a java proxy from an interface we are supposed to get 2 archives (one for serial processing and another suffixed with "PARALLEL" for parallel processing of jaav proxies in JPR).
https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1230721
We are on the correct patch level as per the Note, however when we generate java proxy from the IR for an outbound interface, it genrates only 1 zip archive (whose name we ourselves provide in the craete new archive section). This does not enable the parallel processsing of the messages in JPR.
Could you please help me in this issue, and guide as to how archives can be generated for parallel processing.
Thanks & Regards,
Rosie Sasidharan.Hi,
Thanks a lot for your reply, Prateek.
I have already checked SAP Note 1142580 - "Java Proxy is not processing messages in parallel" where they ask to modify the ejb-jar.xml. However, on performing the change in ejb-jar.xml and while building the EAR, I get the following error:
Error! The state of the source cache is INCONSISTENT for at least one of the request DCs. The build might produce incorrect results.
Then, on going through the SAP Note 1142580 again, I realised that the SAP Note 1230721 also should be looked onto which will be needed for generating the Java proxy from Message Interfaces in IR for parallel processing.
Kindly help me if any of you have worked on such a scenario.
Thanks in advance,
Regards,
Rosie Sasidharan. -
Question on Parallel Processing in ABAP
Hi Experts,
I am trying to process my records using Parallel Processing concept making calls to Remote Function Module.
So, in simple terms it would look as shown below
loop.
call function <rfc_module> creating new task with <taskname>
endloop.
1. In the above scenario say it created 5 tasks.
2. If one of the tasks have been failed because of timeout error then what happens to that task.
In the below link it says that the dialog work proces can run only for 300 seconds.
http://help.sap.com/saphelp_nw70/helpdata/en/fa/096e92543b11d1898e0000e8322d00/content.htm
3. How do we track the task that has not been finished successfully?
4. Does that throw an error?
Thanks,
Babu KilariHere is an exmple from HELP
TYPES: BEGIN OF task_type,
name TYPE string,
dest TYPE string,
END OF task_type.
DATA: snd_jobs TYPE i,
rcv_jobs TYPE i,
exc_flag TYPE i,
info TYPE rfcsi,
mess TYPE c LENGTH 80,
indx TYPE c LENGTH 4,
name TYPE c LENGTH 8,
task_list TYPE STANDARD TABLE OF task_type,
task_wa TYPE task_type.
DO 10 TIMES.
indx = sy-index.
CONCATENATE 'Task' indx INTO name.
CALL FUNCTION 'RFC_SYSTEM_INFO'
STARTING NEW TASK name
DESTINATION IN GROUP DEFAULT
PERFORMING rfc_info ON END OF TASK
EXCEPTIONS
system_failure = 1 MESSAGE mess
communication_failure = 2 MESSAGE mess
resource_failure = 3.
CASE sy-subrc.
WHEN 0.
snd_jobs = snd_jobs + 1.
WHEN 1 OR 2.
MESSAGE mess TYPE 'I'.
WHEN 3.
IF snd_jobs >= 1 AND
exc_flag = 0.
exc_flag = 1.
WAIT UNTIL rcv_jobs >= snd_jobs
UP TO 5 SECONDS.
ENDIF.
IF sy-subrc = 0.
exc_flag = 0.
ELSE.
MESSAGE 'Resource failure' TYPE 'I'.
ENDIF.
WHEN OTHERS.
MESSAGE 'Other error' TYPE 'I'.
ENDCASE.
ENDDO.
WAIT UNTIL rcv_jobs >= snd_jobs.
LOOP AT task_list INTO task_wa.
WRITE: / task_wa-name, task_wa-dest.
ENDLOOP.
FORM rfc_info USING name.
task_wa-name = name.
rcv_jobs = rcv_jobs + 1.
RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
IMPORTING
rfcsi_export = info
EXCEPTIONS
system_failure = 1 MESSAGE mess
communication_failure = 2 MESSAGE mess.
IF sy-subrc = 0.
task_wa-dest = info-rfcdest.
ELSE.
task_wa-dest = mess.
ENDIF.
APPEND task_wa TO task_list.
ENDFORM. -
Hi,
We have a scenario where we:
1. Modell an interface in SAP PI
This interface contains a complex type from a different namespace
2. Use it to create an ABAP proxy in backend system
3. Configure it with SOAManager
4. Call the ABAP proxy ws directly from a third-party system (biztalk)
We're currently testing calling the ABAP proxy from soapUI, but get a strange exception thrown by the SOAP framework in ABAP backend.
The test in soapUI is setup by importing the WSDL acquired from SOAMANAGER.
The error message we in the SOAP response is:
CX_SY_REF_IS_INITIAL:Exception CX_SOAP_ROOT occurred
(program: CL_SOAP_RUNTIME_ROOT==========CP, include: CL_SOAP_RUNTIME_ROOT==========CM004, line: 130)..
An exception with the type CX_SY_REF_IS_INITIAL occurred, but was neither handled locally,
nor declared in a RAISING clause.Dereferencing of the NULL reference
It is a very low level error from the CL_SOAP_RUNTIME_ROOT program and not a descriptive error message at all.
We've checked the user and the authorizations it has, we've redone the SOAManager config but the problem persists.
We find no dumps in the ABAP proxy since the request never reaches it.
For a limited time I'll make WSDL and SOAP response available
WSDL (some values anonymized) available at http://dl.dropbox.com/u/4379928/SOAP/project.wsdl
Complete SOAP response is available at http://dl.dropbox.com/u/4379928/SOAP/soap_data.xml
Any ideas on where to look?Hi,
We've now managed to implement a workaround.
The workaround was to create the endpoint in PI as well.
So that the traffic goes from third-party solution->PI-> WS-enabled ABAP Proxy
When we did this initially, we got some errors related to the asynch method of this call, but this was resolved by changing the channel from "best effort" to "Guaranteed delivery".
Still we don't know what the root cause of the initial problem was, but we assume it is related to the asynch nature of the service (though we have other asynch proxies that work without problems).
Regards
Dagfinn -
Get error "SoapFaultCode:1"Consume web service in ABAP proxy
Hi All,
I created a proxy and logical port to consume a BOBJ Data Service' webservice, when I tested the proxy I get exception:
SoapFaultCode:1 without further more information.
the wsdl is @ http://nspad372.dmzpal.sap.corp:8080/DataServices/servlet/webservices?ver=2.1&wsdlxml
and the endpoint of that webservice is@ http://cnst50052835:8080/DataServices/servlet/webservices?ver=2.1
By using SOAPUI I can successful call that webservice, but with ABAP proxy not. Can someone give me a help?
thanks& bst regards,
BinHi
1.- check adding the host of the Service to your etc\hosts file unix case, or your DNS in case you have one.
2.- Add the SOAP Action in the Logical Port Config (Obtain it from the WSDL info).
Hope this help,
Greetings.
Maybe you are looking for
-
Want jtable to be refreshed...on change of the textfield change..
The code is below and question follows the code : import java.sql.*; import javax.swing.border.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.table.*; import java.io.*; import java.util.*; import javax.swing.e
-
Troubles with Japanese/Korean Language Support
First, I'm using Oracle Portal 3.0.9 - iAS 1.0.2.2. on Windows 2000 I have successfully loaded all the languages. The language portlet displays all available languages. Languages such as spanish, german or french render properly. When I try to render
-
I need to get the number of words of pdf files. I usually convert them into word files to get the word count. Some pdf files are protected and can't be converted into word files. Is there another way to get the number of words of these protected pdf
-
Failed: quicktime error -50
I tried to share sending to apple tv and also used compressor for H.264 for apple tv and i keep getting a failed: quicktime error -50 ... i also tried to use compressor and make it a fast encode dvd and im getting errors also cannot figure out what i
-
Hello, I had the Adobe Creative Cloud Suite and I wanted to renew my service but its not allowing me to pull up my account. Can you please help