on 08-01-2007 4:00 PM
Hi, Dear Friends!
I have (asynchronous) scenario File to RFC(BAPI).
File contains raws. For each raw I need to execute BAPI.
With the help of each raw I need to construct one document in R/3 database with the help of BAPI.
But now my scenario provide only one document (only one BAPI is executed).
I read file to xml structure. This structure contains elements. The elements represent raws of file. But BAPI is executed only for the first element.
How to explain to XI that I want it impement BAPI <b>N times </b>- as number of raws in file (or elements in xml structure).
I tried to use multi-mapping (I follow to Message bulking
http://help.sap.com/saphelp_nw70/helpdata/en/43/ce79623ef30cd5e10000000a1553f7/frameset.htm and blog by Jin Shin Multi-Mapping without BPM - Yes, its possible!
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible) but results are the same.
So how to implement multiple BAPI calls. Have you any idea? May be another approach?
Thank you in advance.
Natalia Maslova.
Hey Natalia,
you have several possibilities:
1. you could make a wrapper bapi in ABAP side which acceps multiple entries of the same input fields of your current BAPI, and loops on the multiple entries, calling your BAPI in each loop. This way, you avoid having several calls to RFC (this is the best practice);
2. you can have 1:n split (from 1 source message, you generate several target messages) without BPM, which is better for performance. For more information in 1:n split without BPM, check this link: http://help.sap.com/saphelp_nw70/helpdata/en/43/ce79623ef30cd5e10000000a1553f7/frameset.htm
3. you can have the 1:n split inside BPM, with a block step in foreach mode, to send all the target messages to RFC adapter. This is the least performatic solution, but probably the quicker to develop (if you have BPM skills). Check this example on 1:n split in BPM: http://help.sap.com/saphelp_nw70/helpdata/en/41/e3d13f7fb44c21e10000000a1550b0/frameset.htm
Regards,
Henrique.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, Henrique!
Thank you for response!
I implemented the <b>second approach 1:n split</b>. I followed the recommendations (from your link Message bulking http://help.sap.com/saphelp_nw70/helpdata/en/43/ce79623ef30cd5e10000000a1553f7/frameset.htm
and blog by Jin Shin Multi-Mapping without BPM - Yes, its possible!
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible)
But my scenario does not work right.
Database of target system receives <b>only first element of xml source message</b> (only one BAPI is executed)
I don't know why.
And in Test Configuration in (Integration Builder: Configuration) I have an <b>error at Interface Determination & Mapping stage</b>. At the same time Log doesn't have any explanation.
I suppose, my split is not good. But I don't see any split in sxmb_moni. Where can I control splitting?
With the best regards,
Natalia.
Hi Natalia !
Please check your mappings to see if you are generating new messages for each source line. For each row or field in the source message, you also need to map to the upper most tag that is unbounded in the target side..this should create one target message for each incoming row. See your reference blog, the design screen capture, the map between "row" and "USER_1" or "row" and "employee".
Regards,
Matias.
Hi, Dear Friends!
Now my Message Mapping MM_File_to_BAPI_second in Design:
--------------------------------------------------
Source Message Type: mt_sender
Tree Occurrences
Messages 1..1
Message1 1..1
mt_sender 1..1
LINES 0..unbounded
DETAILS 1..1
DATE 1..1
COST_CENTER 0..1
DEBET 1..1
CREDIT 1..1
SUMMA 1..1
TAX_CODE 0..1
DESCRIPTION 1..1
---------------------------------------------------
Target RFC Message: BAPI_ACC_DOCUMENT_POST
Tree Occurrences
Messages 1..1
Message1 1..1
BAPI_ACC_DOCUMENT_POST 0..unbounded
DOCUMENTHEADER 1..1
BUS_ACT 0..1
USERNAME 0..1
HEADER_TXT 0..1
COMP_CODE 0..1
DOC_DATE 0..1
PSTNG_DATE 0..1
DOC_TYPE 0..1
ACCOUNTGL 0..1
item 0..unbounded
ITEMNO_ACC 0..1
GL_ACCOUNT 0..1
TAX_CODE 0..1
COSTCENTER 0..1
DE_CRE_IND 0..1
item 0..unbounded
ITEMNO_ACC 0..1
GL_ACCOUNT 0..1
DE_CRE_IND 0..1
cURRENCYAMOUNT 1..1
item 0..unbounded
ITEMNO_ACC 0..1
CURRENCY 0..1
AMT_DOCCUR 0..1
item 0..unbounded
ITEMNO_ACC 0..1
CURRENCY 0..1
AMT_DOCCUR 0..1
---------------------------------------------------
I defined required links and transformations between fields.
And at top level I define link LINES---BAPI_ACC_DOCUMENT_POST.
At Messages tab I define:
-
Source Message(s)
Object Type Name Namespace Occurence
Message Type mt_sender urn:file:to:bapi 1
-
Target Message(s)
Object Type Name Namespace Occurence
RFC Message BAPI_ACC_DOCUMENT_POST urn:sap-com:document:sap:rfc:function 0..unbounded
-
In my Interface Mapping im_mapping_second I define:
-
Source Interface
Name ... Occurrence
mi_sender ... 1
-
Target Interface ... Occurrence
BAPI_ACC_DOCUMENT_POST ... 0..unbounded
-
Source Message Mapping Program Target Message
mt_sender MM_File_to_BAPI_second BAPI_ACC_DOCUMENT_POST
Excuse me for such long description.
But I don't see my error!
In <b>RWB Audit Log</b> I see full Success:
Time Stamp Status Description
2007-08-02 11:20:37 Success Message successfully received by messaging system. Profile: XI URL: http://srv24:50100/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
2007-08-02 11:20:37 Success Using connection RFC_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.
........
2007-08-02 11:20:37 Success Delivering to channel: cc_bapi_r
........
2007-08-02 11:20:37 Success MP: processing local module localejbs/RfcAFBean
2007-08-02 11:20:37 Success RFC adapter received a synchronous message. Attempting to send sRFC for BAPI_ACC_DOCUMENT_POST
2007-08-02 11:20:38 Success BAPI response was a table of type BAPIRET2 with 1 rows
2007-08-02 11:20:38 Success TYPE='S', Message (ID:RW, NUMBER:605): "Документ проведен: BKPFF 010000089210002007 DE1CLNT200.", LOG_NO:, LOG_MSG_NO:000000 (PARAMETER:, ROW:0, FIELD:, SYSTEM:DE1CLNT200)
2007-08-02 11:20:38 Success BAPI executed successfully
2007-08-02 11:20:38 Success Commit transaction with BAPI_TRANSACTION_COMMIT
2007-08-02 11:20:38 Success MP: leaving
2007-08-02 11:20:38 Success The message was successfully delivered to the application using connection RFC_http://sap.com/xi/XI/System.
2007-08-02 11:20:38 Success The message status set to DLVD.
And <b>only one </b>(first) document is written as a result of scenario (<b>BAPI executed only once!</b>)
And in <b>Test Configuration</b> in Integration Directory I have error in <b>Interface Determination & Mapping stage</b> without any explanations.
My settings of <b>Interface Determination</b> in Integration Directory:
Sender
Service: bs_file_s
Interface: mi_sender
Namespace: urn:file:to:bapi
Receiver
Service: DE2_200
Type of Interface Determination:
x Enhanced
Quality of Service:
x Maintain Order At Runtime
Interface Mapping: im_mapping_second
Inbounds Interfaces:
Name Occurrence
BAPI_ACC_DOCUMENT_POST ... 0..unbounded
And as for <b>Communication Channel cc_bapi_r</b> in Integration Directory I specify the settings:
x Advanced Mode
x Commit Handling for Single BAPI Calls
And in <b>RWB Communication Channels for cc_bapi_r</b> I see:
Receiver channel 'cc_bapi_r' for party '', service 'DE2_200' (internal name
'RfcClient[cc_bapi_r]')
Client data: {jco.client.lang=UK, jco.client.snc_mode=0, jco.client.client=200,
jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=n_maslova,
jco.client.sysnr=13, jco.client.ashost=10.20.30.24}
Repository data: {jco.client.lang=UK, jco.client.snc_mode=0, jco.client.client=200,
jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=n_maslova,
jco.client.sysnr=13, jco.client.ashost=10.20.30.24}
Current pool size: 1, maximum pool size : 1
Channel History
- OK: 2007-08-02 11:20:38 EEST: Message processed for interface BAPI_ACC_DOCUMENT_POST
Such my settings.
And I see as result only one processed element of source file (source xml message) in R/3 database. But I want to see all elements of xml message in database. So RFC must be executed N times - as number of elements of source xml message!
Help me, please!
With the best regards,
Natalia.
Hi Natalia !
Check this image:
http://img227.imageshack.us/img227/8806/mappingsxn6.jpg
Could you please press that icon in the mapping screen and copy and paste here the data that appears with the definition of your mappings? I'd like to see if there is any problem there.
Regards,
Matias.
Hi, Matias!
Data with the definition of my mappings:
/ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST=/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES= /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/BUS_ACT=const([value=RFBU]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/USERNAME=const([value=n_maslova]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/HEADER_TXT=/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/DESCRIPTION= /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/COMP_CODE=const([value=1000]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/DOC_DATE=TransformDate([iform=ddMMyyyy, oform=yyyyMMdd, calend=CalendarProperties{firstWeekDay=2, minDaysInFirstWeek=1, lenient=true}]/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/DATE=) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/PSTNG_DATE=TransformDate([iform=ddMMyyyy, oform=yyyyMMdd, calend=CalendarProperties{firstWeekDay=2, minDaysInFirstWeek=1, lenient=true}]/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/DATE=) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/DOCUMENTHEADER/DOC_TYPE=const([value=SA]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL=const([value=5]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item=const([value=1]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item/ITEMNO_ACC=const([value=0000000001]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item/GL_ACCOUNT=concat([delimeter=]const([value=00]), /ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/DEBET=) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item/TAX_CODE=/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/TAX_CODE= /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item/COSTCENTER=concat([delimeter=]const([value=00]), /ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/COST_CENTER=) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item/DE_CRE_IND=const([value=S]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item[1]=const([value=2]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item[1]/ITEMNO_ACC=const([value=0000000002]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item[1]/GL_ACCOUNT=concat([delimeter=]const([value=00]), /ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/CREDIT=) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/ACCOUNTGL/item[1]/DE_CRE_IND=const([value=H]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item=const([value=1]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item/ITEMNO_ACC=const([value=0000000001]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item/CURRENCY=const([value=UAH]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item/AMT_DOCCUR=/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/SUMMA= /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item[1]=const([value=2]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item[1]/ITEMNO_ACC=const([value=0000000002]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item[1]/CURRENCY=const([value=UAH]) /ns0:Messages/ns0:Message1/ns2:BAPI_ACC_DOCUMENT_POST/CURRENCYAMOUNT/item[1]/AMT_DOCCUR=mul(/ns0:Messages/ns0:Message1/ns1:mt_sender/LINES/DETAILS/SUMMA=, const([value=-1]))
In test in Message Mapping is executet successfully.
And my example data (with two elements in source message):
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns1:mt_sender xmlns:ns1="urn:file:to:bapi">
<LINES>
<DETAILS>
<DATE>31012007</DATE>
<COST_CENTER>10231062</COST_CENTER>
<DEBET>81100000</DEBET>
<CREDIT>66100000</CREDIT>
<SUMMA>5.02</SUMMA>
<TAX_CODE>H0</TAX_CODE>
<DESCRIPTION>Hi,XI!</DESCRIPTION>
</DETAILS>
</LINES>
<LINES>
<DETAILS>
<DATE>31012007</DATE>
<COST_CENTER>10231062</COST_CENTER>
<DEBET>81100000</DEBET>
<CREDIT>66100000</CREDIT>
<SUMMA>8.08</SUMMA>
<TAX_CODE>H0</TAX_CODE>
<DESCRIPTION>Hi,XI!</DESCRIPTION>
</DETAILS>
</LINES>
</ns1:mt_sender>
</ns0:Message1>
</ns0:Messages>
I will be very glad for your participation!
Natalia.
Hi Natalia !
After trying the scenario, does the result in SXMB_MONI looks the same as the one in this blog:
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
check under the title "Monitor"..does your output message has many payloads?
By the way, I also found this: "Only the payload of a received message is evaluated. Additional attachments are ignored and not forwarded" as current RFC adapter contraints in http://help.sap.com/saphelp_nw04s/helpdata/en/c8/e80440a832e369e10000000a155106/frameset.htm and in the TBIT documents of SAP RFC Adapter it says that current limitations include just one payload/attachment per message..if you see the multiple payloads in the sxmb_moni, but only 1 output, maybe the RFC adapter is executing only the first one...then you will need to use it along with BPM. Use a transform step with that mapping you already made (use abstract interfaces instead), and use a block to loop inside the multiline container you have as a result of using the multimapping and call a send step for each element in the container..
Regards,
Matias.
Hi, Matias!
The result of the test mapping for that source message:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns2:BAPI_ACC_DOCUMENT_POST xmlns:ns2="urn:sap-com:document:sap:rfc:functions">
<DOCUMENTHEADER>
<BUS_ACT>RFBU</BUS_ACT>
<USERNAME>n_maslova</USERNAME>
<HEADER_TXT>Hi,XI!</HEADER_TXT>
<COMP_CODE>1000</COMP_CODE>
<DOC_DATE>20070131</DOC_DATE>
<PSTNG_DATE>20070131</PSTNG_DATE>
<DOC_TYPE>SA</DOC_TYPE>
</DOCUMENTHEADER>
<ACCOUNTGL>
<item>
<ITEMNO_ACC>0000000001</ITEMNO_ACC>
<GL_ACCOUNT>0081100000</GL_ACCOUNT>
<TAX_CODE>H0</TAX_CODE>
<COSTCENTER>0010231062</COSTCENTER>
<DE_CRE_IND>S</DE_CRE_IND>
</item>
<item>
<ITEMNO_ACC>0000000002</ITEMNO_ACC>
<GL_ACCOUNT>0066100000</GL_ACCOUNT>
<DE_CRE_IND>H</DE_CRE_IND>
</item>
</ACCOUNTGL>
<CURRENCYAMOUNT>
<item>
<ITEMNO_ACC>0000000001</ITEMNO_ACC>
<CURRENCY>UAH</CURRENCY>
<AMT_DOCCUR>5.02</AMT_DOCCUR>
</item>
<item>
<ITEMNO_ACC>0000000002</ITEMNO_ACC>
<CURRENCY>UAH</CURRENCY>
<AMT_DOCCUR>-5.02</AMT_DOCCUR>
</item>
</CURRENCYAMOUNT>
<RETURN/>
</ns2:BAPI_ACC_DOCUMENT_POST>
<ns2:BAPI_ACC_DOCUMENT_POST xmlns:ns2="urn:sap-com:document:sap:rfc:functions">
<DOCUMENTHEADER>
<BUS_ACT>RFBU</BUS_ACT>
<USERNAME>n_maslova</USERNAME>
<HEADER_TXT>Hi,XI!</HEADER_TXT>
<COMP_CODE>1000</COMP_CODE>
<DOC_DATE>20070131</DOC_DATE>
<PSTNG_DATE>20070131</PSTNG_DATE>
<DOC_TYPE>SA</DOC_TYPE>
</DOCUMENTHEADER>
<ACCOUNTGL>
<item>
<ITEMNO_ACC>0000000001</ITEMNO_ACC>
<GL_ACCOUNT>0081100000</GL_ACCOUNT>
<TAX_CODE>H0</TAX_CODE>
<COSTCENTER>0010231062</COSTCENTER>
<DE_CRE_IND>S</DE_CRE_IND>
</item>
<item>
<ITEMNO_ACC>0000000002</ITEMNO_ACC>
<GL_ACCOUNT>0066100000</GL_ACCOUNT>
<DE_CRE_IND>H</DE_CRE_IND>
</item>
</ACCOUNTGL>
<CURRENCYAMOUNT>
<item>
<ITEMNO_ACC>0000000001</ITEMNO_ACC>
<CURRENCY>UAH</CURRENCY>
<AMT_DOCCUR>8.08</AMT_DOCCUR>
</item>
<item>
<ITEMNO_ACC>0000000002</ITEMNO_ACC>
<CURRENCY>UAH</CURRENCY>
<AMT_DOCCUR>-8.08</AMT_DOCCUR>
</item>
</CURRENCYAMOUNT>
<RETURN/>
</ns2:BAPI_ACC_DOCUMENT_POST>
</ns0:Message1>
</ns0:Messages>
Thanks for your response!
With the best regards,
Natalia.
Hi, Matis!
Unfortunately, after trying my scenario, the result in SXMB_MONI doesn't look the same as the one in that blog.
My sxmb_moni:
http://keep4u.ru/full/070802/ee1993789eb1f0c5b6/jpg
With the best regards,
Natalia
Natalia,
step by step of what you need to do message bulking:
- create repository objects (interfaces and mappings); message and interface mappings need to have target message with occurrence 0...unbounded;
- in ID, do configuration wizard as you would for a common file -> rfc scenario. The multimmaping won't be found in interface determination wizard step, but don't worry. When the objects are generated, go into the interface determination, edit mode, set it to "enhanced", select the multimapping there. The receiver interface occurrence will be automatically set to 0...unbounded.
- That's it. Activate and test your scenario.
You should be able to see the several payloads in SXMB_MONI pipeline, under "Request Message Mapping" entry. To log the complete pipeline, set RUNTIME parameter LOGGING with value 1 in SXMB_ADM -> Configure Integration Engine (Menu Edit -> Change Specific Configuration Data).
Also, each message should be logged as a separate entry in Message Monitoring for the Adapter Engine. In the audit log of bulked messages, the 2nd entry should be something like "Processing child message of multi-message with message ID xxxxx".
Regards,
Henrique.
Hi, Henrique!
My version of XI is PI 7.0 SP10.
I do all actions as you say in IR and ID (today I represented them in detail in Forum, please, look throgh them).
But the Test Configuration is stopped at Interface Detarmination & Mapping without any explanation in Log. And it work, but only one BAPI is executed!!!
Wait for your response very much!
I want to implement this multimapping scenario very much!
With th ebest regards,
Natalia.
Natalia,
I've tried the exact same scenario with file -> rfc and it worked ok.
I don't know what is wrong.
Maybe in your case the commiting work for BAPI is causing this issue.
Anyway, can you see the multiple payloads in technical routing entry of sxmb_moni pipeline? And what about message monitoring?
Regards,
Henrique.
Natalia,
I just checked your log messages.
> 2007-08-02 11:20:37 Success MP: processing local
> module localejbs/RfcAFBean
> 2007-08-02 11:20:37 Success RFC adapter received a
> <b>synchronous message</b>. Attempting to send sRFC for
> BAPI_ACC_DOCUMENT_POST
> 2007-08-02 11:20:38 <b>Success BAPI response</b> was a table
> of type BAPIRET2 with 1 rows
> 2007-08-02 11:20:38 Success TYPE='S', Message (ID:RW,
> NUMBER:605):
> "Докумен
You can't have 1:n split for synchronous messages!
They have to be asynchronous (even if your scenario is asynchronous, by having return set in the BAPI, they are automatically executed as synchronous).
Regards,
Henrique.
Henrique,
I set RUNTIME parameter LOGGING with value 1,
Oh, Wonderful!
in my sxmb_moni has a view:
http://keep4u.ru/full/070803/d27723e6a7bc5967cb/jpg
But I see only first element! So I don't see splitting! Why?
It seems to me, we are on right way!
Thanks.
Little more your help, please
Natalia
Natalia,
it is really strange, because if the error was really in the BAPI return (as I suspected), even though the multi mapping should be correctly executed.
But now giving it a second thought, the scenario is asynchronous through all XI, but is executed as synchronous at adapter level, but at this point, all messages should be already separated... 😛
Sorry to be repetitive, but are you sure your interface determination is of type enhanced and that it have occurrence of target interface as 0...unbounded?
Regards,
Henrique.
Henrique,
I can unset setting 'Commit Handling for Single BAPI Calls' - in this case RFC Adapter will call tRFC (I experimented before).
But really my messages are not separeted - I see only the first.
Of course, my interface determination is of type enhanced and that it have occurrence of target interface as 0...unbounded.
But as for Audit Log in RWB - I can't see in such form as you say.
With the best regards,
Natalia.
Henrique,
now I control all key moments - but everything is right (in IR: message mapping, interface mapping, in ID: interface determination).
What do you mean - OSS message?
Tomorrow (now it is night in Ukraine) I will verify my scenario again.
Thank you very much.
Your support is very-very useful for me!
Natalia.
Hi, Dear Friends!
Thank you very much for your support!
I implemented my scenario and it works as I want!
I use <b>multi-mapping without BPM for data transmitting from file to R/3 database</b>! - Yes, it's possible!
Really my problem was in error of upper level mapping between source and target structures. I need to map DETAILS into BAPI_ACC_DOCUMENT_POST (as you can see from my previous message I try to map LINES into BAPI_ACC_DOCUMENT_POST). As a result I have problem with splitting in sxmb_moni I don't have a lot of elements in Request Message Mapping.
Especially I want to express my gratitude to <b>Henrique Pinto, Matias Denker and Michael Koshkin!</b> I studied a lot of new material for me! Thank you for your persistence in my success!
And I will try to implement my task (the same task) by approach with BPM. <b>I beleive in help of Chandra Shekar :)</b>, because I'm a beginner in BPM.
With the best regards,
Natalia Maslova.
Finally natalia Can relax, problem being solved.
the best part of it was getting different views on one issue with the active participation of Active Bloggers.
regards
chandra
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Natalia,
I am pretty late in putting my suggetions. Well, after reading your query and all the replies, I thought of putting my views n approach on the same.
Note: You want to make RFC for every record in your source file. Never Suggested.
Infact you should avoid RFCs if you can do the same using Proxy.
RFCs should be the best option if your SAP system doesnt support proxy or you want to avoid writing small piece of Server Proxy Code in your target SAP System.
My approach in your scenario:
Import the RFC definition in XI. Export the Request part of RFC as an XSD.
Use XML or some other editor to edit this XSD.
Add another root node above the RFC name referring to the RFC strucutre.
Change the occurence of old RFC node to unbounded.
Import this in XI as external defintion and use it in Mapping and in your inbound interface.
Generate proxy on R/3 side, and call the function module in loop in side the execute asynch method of your server proxy class.
Cheers. !!
Pushkar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear pushkar,
Changing the XSD is done for IDOC only as you cannot change the IDOC occurences.
It can be done for RFC, there is no need to take schema and change the coccurences.
Even if you do in according to what you suggest.
you have a catch in interface determination.
You wont get the IM in ID, when you try to Pick IM for corresponding Source MI & target IM it will say <u><i><b>no objects exists,</b></i></u>since you have changed the Occurences of RFC/XSD.
Thats the reason i suggested BMP(one of the solution).
Regards
chandra
Dear Chandra,
I guess you did not read my solution properly or you did not get it properly.
I am not sending like we Ido in case of Idocs. I dont want to create multiple instances of the target message as it happens in case we change the IDoc occurrence.
If you change the occurrence of IDoc, it creates n no of Idocs and this is called IDoc bundelling.
Well , I want to send all the records in the BAPI or RFC format in one target message.
I am not making multiple calls.
Regards
Pushkar
Hi Pushkar!
Thank you for support.
I understand: my approach is not good from performance point of view.
But I want to solve my task only with the help of XI, without ABAP.
Let's it will be model task.
Is it possible? (Henrique proposed me 3 approaches and Mikhail Koshkin proposed as you - Proxy on target side)
With the best regards,
Natalia.
Hey Natalia,
what XI version are you in?
Message bulking is available from PI 7.0 SP5 (equivalent to XI 3.0 SP14).
http://help.sap.com/saphelp_nw70/helpdata/en/43/2a3a6081453fe1e10000000a11466f/frameset.htm
Regards,
Henrique.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Natalia!
One more way is to create proxy wich will read your xml and will call bapi in loop for each raw
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For got to mention
finally in this block (par for each) use send step with the message type as (the one definedlocally)single line of multiline elment
Regards
chandra
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear Natalia,
You need to use BPM.
Create ASN/ASB for the file interface
Create ASNY/ABS for the BAPi(Create MI with BAPI as MT)
Then In IM
FIle_ABS (Source) target MI(BAPI AS MT)
change the occurence to unbounded.
Then IN BPM you will have 3 steps
Step 1 : Incomming file_MI(ABS)
Step2 : Transfor source(file_abs) target will be MI(BAPI) with 0--unbounded occ
Step3: Use Block with(Par for each)
define multi line element & local block element
That completes the BPM.
We have done one such scenario.
If you want the screen shots , mail ur email id
Regards
chandra dasari
yash Tech
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
then multimapping with BPM will be the solution. using BLOCK loop into the container and send per message calling the BAPI.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.