Mass interfaces: BPM or RFC wrapper
Hello
My scenario is HTTP->XI->RFC. Sender interface has collection of objects. SAP side has BAPI that works with one object. For example BAPI like CHANGE, CREATE doesn't take collection.
What is the best design - to emulate mass interfaces in BPM(forEach block) or to create a RFC wrapper that takes collection and executes BAPI for each object?
Hi,
you can also try creating an IDOC
(which will invoke your bapi inside)
and post then all in a bundle
(even from BPM)
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
it many not be very easy to design a BAPI
for many messages and with IDOC approach
you just need one - so more or less standard
and you can post then as in my weblog
BTW
your scenario has to be async of course for this
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>
Similar Messages
-
Need help with scenario BPM Http-RFC Sync/async bridge
hi all!
i've got the following scenario: HTTP-BPM(XI)-RFC synchronous both of them. for that, i'm using S/A bridge in the BPM, but i'm getting the error 'Timeout condition of pipeline reached'. i think the problem is that the process gets lost in the sync/async communication, because in the trace level shows CL_XMS_PLSRV_CALL_BPE-ENTER_PLSRV" and after that every message are 'wait time starting'.
don't know the reason of the error. Maybe I missed something to configure?
the BPM is like this:
Receiver(Open Sync/Async bridge) -> Transformation (mapping from http request to RFC request) -> SyncSend (RFC request and response) -> Transformation (mapping from rfc response to http response) -> Send (Close S/A Bridge)
the IR is configured like this:
Message Types u2013 External Definitions u2013 Imported Objects
mt_cxml_request -> contains xsd of xcml request template.
mt_cxml_response -> contains xsd of xcml response template.
zintegracion_pedidos -> imported RFC from R/3
zintegracion_pedidos.response -> imported RFC from R/3
Message Interfaces
mi_cxml_request_async_abs
mi_cxml_request_sync_abs
mi_cxml_request_sync_out
mi_xcml_response_async
mi_rfc_request_asyn_abs
mi_rfc_request_sync_abs
mi_rfc_request_sync_in
mi_rfc_response_async_abs
Message Mappings
mm_cxml_request_to_rfc_request -> mapping from http request (cxml) to rfc request.
mm_rfc_response_to_cxml_response -> mapping from rfc response to http response (cxml).
Interface Mappings
im_cxml_request_async_abs_to_rfc_request_async_abs
im_rfc_response_async_abs_to_cxml_response_async_abs
and the ID is configured like this:
Business system DES -> created business system for RFC adapter with interface mi_rfc_request_sync_in as receiver. Comunication channel u2018RFC Receiveru2019
Businnes service VW -> created businnes service for HTTP adapter with interface mi_cxml_request_sync_out as sender. Comunication channel u2018HTTP Senderu2019
Receiver Determination
two receiver determinations. One for BPM and the other one for RFC(R/3):
|VW| mi_cxml_request_sync_out:
|BPM_PO| mi_rfc_request_sync_abs:
Interface Determination
two interface determinations:
|VW| mi_cxml_request_sync_out | | BPM_PO:
|BPM_PO| mi_rfc_request_sync_abs | * | * :
Sender Agreement
VW
mi_cxml_request_sync_out
Receiver Agreement
|BPM_PO| |DES| mi_rfc_request_sync_inhi all,
i've removed the transformations from the BPM, and i've created:
in IR:
- interface mapping: im_xcml_request_to_rfc_request_sync_abs
source interface: mi_cxml_request-sync_abs
target interface: mi_rfc_request_sync_abs
in ID:
- receiver determination: |VW| mi_cxml_request_sync_abs
sender service: VW
interface: mi_cxml_request_sync_abs
receiver: DES
interface mapping:im_xcml_request_to_rfc_request_sync_abs
- interface determination: |VW| mi_cxml_erquest_sync_abs ||
sender service: VW
interface: mi_cxml_request_sync_abs
inbound interface: mi_rfc_request_sync_abs
interface mapping: im_xcml_request_to_rfc_request_sync_abs
- receiver agreement: |VW| |DES| mi_rfc_request_sync_abs
sender service: VW
receiver service: DES
receiver interface: mi_rfc_request_sync_abs
not sure these are the steps i had to do for mapping xml to rfc. but the result is the same error as before, the timeout.
i couldn't test with RTW because i'm getting an error 401 unauthorized.
i'd do it without BPM but the issue is that i wanted to add another step that would be to send the response from rfc to mail too once i got this BPM running. i mean, the response from RFC would be sent to http response and mail both.
the only way i can imagine to do it is with BPM but i'm really fed up with it.
thank u very much folks -
"No Receiver Determined" in BPM Sync RFC Call
My scenario is xml file -> XI BPM -> RFC1 -> RFC2 (will call RFC2 if RFC1 is successful).
I am still just trying to get the RFC1 call working properly. I have been using blogs 1822, 1403 and 1926. I have also used some related BPM threads. It seems to be making the RFC call properly, but failing on the response.
<SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_BE
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>No receiver could be determined</SAP:Stack>
These docs show my IB Repository and Directory setups. Can anyone look at them and tell me what is missing? Thanks in advance!
http://webpages.charter.net/kpwendel2/bsmDir.jpg
http://webpages.charter.net/kpwendel2/bsmRep.jpgKeith,
the problem is quite clear.
In your BPM, you have a synchronous interface in your sync send step.
However, in configuration, you have configured two asynchronous interfaces.
To be able to use sync send step in BPM, your RFC needs to be able to send a response back. Then you need to have two message mappings (one for bpm->rfc messages, and other for rfc_response -> bpm_response messages) and a interface mapping between the 2 sync interfaces (bpm_sync_int -> rfc_sync_int) using these 2 message mappings.
Also, some hints:
1. Don't do these mappings in BPM transformation step. You can execute them outside of BPM. Doing this, you will get better performance and also won't need to create abstract interfaces for RFC messages.
2. Use configuration wizard in Integration Directory (first, remove and reimport your BPM in Integration Directory). This way, you avoid different interfaces errors.
Regards,
Henrique. -
Without BPM:Call RFC using JCO in interface mapping using java mapping
Hi all
I have a very small scenario where REQUEST from the customer comes via Web Service all i have to do is to read the request using SOAP adapter and call an interface mapping(lets say the name is IM_TEST) inside which there is a JAVA MAPPING program written which will call an RFC in CRM using JCO.
Now this was really simple and i cud test the Interface mapping successfully, but the problem is when loading the scenario in integration directory i have certain things to do
1. to set the SENDER AGREEMENT which i did correctly
2. set the RECEIVER DETERMINATION, INTERFACE DETERMINATION AND RECEIVER AGREEMENT now here i am stuck because there is no receiver in my case as the RFC is called inside the mapping only.
can i call one more message mapping in IM_TEST which will write file onto the XI directory and then in RECEIVER DETERMINATION, INTERFACE DETERMINATION AND RECEIVER AGREEMENT i can mention the reciever as FTP.
I tried it but i gives the following error
Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_MM_TEST_WRITE_FILE: com.sap.aii.utilxi.misc.api.BaseRuntimeException; Parsing an empty source. Root element expected!
Please help me how to complete the scenario so that customer can run it end to end.
<REMOVED BY MODERATOR>
Edited by: Prateek Raj Srivastava on May 12, 2010 1:44 PMStefen
What do i do then...actually this is the project requirement. They want a very fast response from PI and thats why they wnt us to omit BPM and the Graphical mapping from the scenario.
I am able to test the interface mapping which calls the the Java mapping inside which there is an RFC call, but i cannot implement it end - to - end as there is no receiver business system in this case. The only business system i have is the SOAP sender.
I am really troubled now, please help me with a solution.
Is there any other possible way through which the process can become very fast whic hcan meet their requirement.
Regards
Naina -
Choosing Receiver Interface (IDoc or RFC) without using BPM
Hi,
We have a scenario wherein the receiver interface (either IDoc or RFC) must be dynamically determined at runtime based on the source message. I've tried using Multi-Mapping but this did not work since IDoc and RFC interfaces are not on the same Adapter Engine.
How do I configure this scenario without using BPM?
Thanks,
FrancisHi,
>That was my first solution but it did not work since it seems that conditions only work for determining the Operation Mapping to use for the same Receiver interfaces.
not true - not only Operation Mapping but also receiver agreement
so the receiver's channel
>I was misled into thinking that we could use it to dynamically determine the receiver interface.
but you can do it over there
intrface determination can be used for pseudo receiver determination too
so you can have one interface that either goes to one
channel or the other (within the same receiver)
Regards,
Michal Krawczyk -
** How to deliver multiple files using BPM (From RFC output)
Hi Friends,
I am doing File-RFC-File scenario using BPM. I am using BAPI_SFLIGHT_GETLIST as my RFC (Standard RFC). If we execute this RFC, it will return the results in tables form. Assume that, the inputs to RFC is like below.
FromCountryKey : US
FromCity: NEW YORK
ToCountryKey: DE
ToCity: FRANKFURT.
The outputs from the RFC is like below.
26 Entries
CAR
CONN
FLDATE
AIR
AIR
DEPTIME
SEATSMAX
SEATSOCC
|
DL
0106
19.05.2008
JFK
FRA
19:35:00
280
266
UA
3516
20.05.2008
JFK
FRA
16:20:00
380
364
LH
0401
23.05.2008
JFK
FRA
18:30:00
220
209
LH
0401
28.05.2008
JFK
FRA
18:30:00
220
208
UA
3516
28.05.2008
JFK
FRA
16:20:00
380
367
DL
0106
16.06.2008
JFK
FRA
19:35:00
280
261
UA
3516
17.06.2008
JFK
FRA
16:20:00
380
357
LH
0401
20.06.2008
JFK
FRA
18:30:00
220
213
DL
0106
14.07.2008
JFK
FRA
19:35:00
280
1
UA
3516
15.07.2008
JFK
FRA
16:20:00
380
86
LH
0401
18.07.2008
JFK
FRA
18:30:00
220
123
DL
0106
11.08.2008
JFK
FRA
19:35:00
280
56
UA
3516
12.08.2008
JFK
FRA
16:20:00
380
67
LH
0401
15.08.2008
JFK
FRA
18:30:00
220
114
DL
0106
08.09.2008
JFK
FRA
19:35:00
280
0
UA
3516
09.09.2008
JFK
FRA
16:20:00
380
164
LH
0401
12.09.2008
JFK
FRA
18:30:00
220
64
DL
0106
06.10.2008
JFK
FRA
19:35:00
280
80
UA
3516
07.10.2008
JFK
FRA
16:20:00
380
8
LH
0401
10.10.2008
JFK
FRA
18:30:00
220
16
DL
0106
03.11.2008
JFK
FRA
19:35:00
280
11
UA
3516
04.11.2008
JFK
FRA
16:20:00
380
33
LH
0401
07.11.2008
JFK
FRA
18:30:00
220
53
DL
0106
01.12.2008
JFK
FRA
19:35:00
280
0
UA
3516
02.12.2008
JFK
FRA
16:20:00
380
45
LH
0401
05.12.2008
JFK
FRA
18:30:00
220
25
|
We need to create output file for each record. In this case, the system should generate 26 output files.
I imported the RFC and created the required interfaces and designed BPM also.
Start --> Receive step --> Synchronous Send --> Asynchronous Send
But, I stuck in how to deliver each record to the output file from BPM.
Any idea, friends. (like using BPM Multi-line option. or 'Receiver From' property in the Send Step)
Kindly help me friends to solve this issue.
Thanking you.
Kind Regards,
Jeg P.Hi
You can do it by creating one another message interface having structure same as your table.
What you have to do is create a mapping in such a way that for each record in table one message(newly created) must be created.
Use that mapping in an interface mapping, remember occurence of target message should be 0..Unbounded both in message mapping and interface mapping.
Now create one single line message and one multiline message in BPM for newly created message.Use transformation step with new interface mapping, mention source(RFC response) and target message(use multiline element of new message) for the transformation step.
Use send step inside a block,set block mode to "forEach", and attach new message to that send step.
Use multiline and single element of new message in the property window of block.
Now your BPM will look like
Start ---> Receiver ---> Synchronous send ---> Transformation ---> Block ---> Async Send(within block)
I think in this way you can implement what you want.
Regards
Sami
Reward points if helpful. -
Hi,
Can you send me any RFC to Jdbc sync BPM links?. Also, Can you please tell me how is the design when we use RFC and Message Interfaces involved.
Thanks,
Raj.hi Raj,
<b>Defining Sync/Async Communication</b>
http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm
<b>Example: Sync/Async Communication</b>
http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm
<b>RFC</b> Scenario using <b>BPM</b> --Starter Kit
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
Walkthrough with <b>BPM</b>
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
FILE to <b>JDBC</b> Adapter using SAP XI 3.0
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Regards,
michal -
Sych BPM scenario (RFC to SOAP)
Hello
I am using the RFC2SOAP scenario using the process shown below to get alerts.
Receive - Open S/A bridge ( Sync receive)
Transform - Request_Asyn ( Mapping from RFC request to SOAP request)
Sync Send - Call SOAP
Transform - Response Asyn ( Mapping from SOAP response to RFC response)
Send - Close S/A bridge
Switch - Success / Failure
Control - Alert
My question is: How many Receiver detrminations need to be provided. Also, system is not proposing the Abs mapping between RFC and SOAP Sync Messages automatically.
Did any one has implemented this scenario, will this process work ?
Appreciate any help.
Regards
PrasadHi Prasad,
Sync BPM works fine, but i doubt if the below scenario works.
1) I dont think in your Transform the Request/Response be Async. cos all are sync calls. secondly if you open S/A bridge, you are supposed to give Abstract Sync Interface.
2) I doubt the swtich and control step as well, I dont know what msg you would get at that stage, because the 'S/A close' would end the call by sending back the response to Interface (AbsSync as per #1).
Hope this helps,
keep us posted of the outcome of your trials.
Regards
Vishnu -
How to clear JCA interface parameters in RFC call?
hi all,
this is my trouble:
I have to call an RFC Function with JCA connector in an EP6 SP2. The connection it's ok and works well. But if i modify the interface parameters of the RFC function i must to reboot the portal for read the new interface.
It's possible to read the new interface without restart the system.
Thanks for all your helps!
Gennarohi all,
this is my trouble:
I have to call an RFC Function with JCA connector in an EP6 SP2. The connection it's ok and works well. But if i modify the interface parameters of the RFC function i must to reboot the portal for read the new interface.
It's possible to read the new interface without restart the system.
Thanks for all your helps!
Gennaro -
Call adapter error --- BPM to RFC
Hi,
I'm calling a simple RFC from a bpm, and the rfc in turn calls a proxy.At the step where i pass the data from bpm to the RFC i get the following error at the call adapter step:
<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: Problem inserting a7f68d50-f88a-11db-ad02-001560a7b7a4(INBOUND) into the database: java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column</SAP:AdditionalText>
this seems to be some database error, but i'm not insertinga ny data into any table.
Can anyone tell me about this.Hi-
Check the Data types you have mentioned for attributes. -
BPM- scenario RFC - XI - receive file - - SOAP - return answer to RFC
Hello everybody,
I have the scenario
RFC call a BPM
In the BPM, I have to receive information from a file ( generated by another system 4 times in a day)
Mix the data of the file with the data of RFC
Send them a SOAP
send the reply to the RFC
My problem is : how to receive the file on demand because in file adapter ( sender ), the definition is only by interval of time?
Is there anybody who can help me?
Thanks in advance and best regards.
Eric.Hi Eric,
in sender file adapter, we just have polling interval - so in your receive step in BPM you have to wait for the source file.....
i do not think any other workaround will be feasible for your this case
Regards,
Rajeev Gupta -
How to reprocess an interface with a RFC problem
Hi.
I have a simple scenario File->RFC->FILE
In the BPM that i use, i send some data vía RFC to a R3 Backend and retrieve it. FInally, i create a file with the result.
The send step that sends the data to R3 backend has been defined with a transport confirmation.
My problem is that the BPM has send the info to R3, has received the ACK and at this time, the R3 has crashed.
Now R3 is back again and the Receive Step of the BPM is waiting for the answer. I've checked Sm58 in R3 Backend but no entries in it.
How can i send once more the RFC now that R3 is ready?
Thanks.
Inigo.If so it is like of 2 scenarios. You need to have 2 receiver determinations
1) Sender File to RFC in R/3
2) R/3 to File
But if you want to execute these 2 separate scenarios in sequence then the current design should have these BPM steps
1) Receive File data
2) Transofrmation step ( InputFile to RFC1)
3) Send the RFC data
4) Receive the RFC2 data
5) Transformation Step (RFC2 to OutputFile)
6) Send this to file
You can avoid transformation steps inside the BPM. for this you need to do mapping outside the BPM
Regards,
Moorthy -
BPM error (Rfc to file scenario)
Dear Experts,
I'm doing a RFC-FILE scenario with BPM. I have followed the blog RFC Scenario using BPM --Starter Kit by Arpit Seth.
The file is getting picked up. But in SXMB_MONI i get the following error:
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="BPE_ADAPTER">SYSTEM_FAILURE_INTERNAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>An internal error has occurred</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
In SXMB_MONI_BPE, there are no workflows for the integration process.
What could be wrong?
Please help.
Thanks,
MerrillyHi,
Thsi is the error i'm getting now in the synchronous send step:
<!-- Request Message Mapping
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
<SAP:P1>com/sap/xi/tf/_MM_FileRequest_to_RFCRequest_</SAP:P1>
<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
<SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_MM_FileRequest_to_RFCRequest_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
<SAP:Retry>N</SAP:Retry>
</SAP:Error>
Is it because that the BAPI is not processing anything?
Thanks,
Merrilly -
I have a BAPI in CRM that I call from XI via RFC. In CRM, I want to be able to see what happens with the function; whether it fails, abends, etc. I have some strange things happen and am trying to trouble shoot the cause. From the XI side, all looks like it went well.
Hi,
What version of CRM are you using ?
Try running transaction SPROXY in CRM and see if anything happens.
If so, check under your namespace and see if you can see your interface defined. If you can then just right click on your interface to generate the required ABAP proxy.
I have just finished a CRM/XI project and the majority of integration was done using ABAP proxies. Any functions that were called were inside the ABAP proxy instead of using the RFC adapter. It was far easier and quicker doing it this method instead.
Only use IDOCs if the standard IDOC fits your requirement - otherwise do not bother.
Cheers
Colin. -
hi
i wanna use bapi_po_create in http to bapi scenario.
i need steps to create custom wrapper from bapi with some fields not to be used
The custom BAPI has only a minimal number of import parameters, representing the
mandatory fields. This will simplify the mapping definition process.
thanks and regards
vijender<i>> This will simplify the mapping definition process.</i>
Normally a Wrapper RFC is written as your current RFC does not meet the required functionality. If you want to write a Z RFC because you just want to simplify maping in XI, it makes no sense. You can always disable the fields you dont want.
Regards
Bhavesh
Maybe you are looking for
-
SQL Query failure in application involving GP
Hi, In one of the WDJ applications I am using, there is creation of GP instance involved and within the callable object of GP, back end connectivity is obtained through RFC. This application is not working properly and when I took traces of the same,
-
Pro Applications Update didn't update
I had a problem with an error message saying the "file is too new for this version of the software. I have FCP 6 (part of Final Cut Studio 2) I read here that the fix to the problem is an update which I just downloaded and installed, but my FCP 6 was
-
REQUEST within f?p =
Hi, I've got a report which prints out a list of links on a page. Each link is a f?p url with values from the query and a request to branch it to a page which runs pl/sql processing when the requests are equal. Basically, the link looks like this: f?
-
Hi, I download oracle 11g from oracle download , but if i setup my password give error
-
Increase width for Excel and CSV reports
HI , I am having problem with data in Excel and CSV reports , since the data is large and the width of the column is fixed its is displaying ###### , can u suggest me how to make the wodth of the columns variable depending upon the data passed. I wan