on 09-07-2006 3:52 PM
Hi,
I want create various headers and Line items.
(this is my input file)
001150,AAA,,123<--Header
,1234,08122006,<---LineItem
XXX,124,,AAAAA<----LineItem
001150,BBBB,,123<--Header
,1236,08132006,<---LineItem
XXX,124,,BBBBB<----LineItem
001150,CCCC,,123<--Header
,1235,08132006,<---LineItem
XXX,124,,CCCC<----LineItem
My Datatype
-
SourceList
headerDetails(0..unbound )
GLDetails_structure(0..unbound)
field1
field2
.
.
field32(each row input file coming 32 fields, so that i took one structure for 32 fields)
Target(BAPI) Datatype:
-
BAPIINCOMINGINVOICECREATE
header (1..1)
field1
field2
GLDATA (0..1)
item (0..unbounded)
field1
field2
field3
Mapping:
-
SourceList <None>
headerDetails -> GLDATA
field1 -> field1-(Header or GLDATA field)
field2 -> heade2
.. -> header/GLData field
Field32 -> header/GLDATA Field
But right now my XML getting only one header and various line items with proper data. It is calling Top row header and remaining all line items one by one. It is not able to call remaining headers.
<?xml version="1.0" encoding="UTF-8" ?>
- <ns1:BAPI_INCOMINGINVOICE_CREATE
xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
- <HEADERDATA>
<INVOICE_IND>X</INVOICE_IND>
<DOC_TYPE>KR</DOC_TYPE>
<DOC_DATE>20060825</DOC_DATE>
<PSTNG_DATE>20060826</PSTNG_DATE>
</HEADERDATA>
- <GLACCOUNTDATA>
- <item>
<INVOICE_DOC_ITEM>002</INVOICE_DOC_ITEM>
<GL_ACCOUNT>0000738100</GL_ACCOUNT>
<ITEM_AMOUNT>600.55</ITEM_AMOUNT>
<ORDERID />
<PROFIT_CTR>0000007320</PROFIT_CTR>
<ALLOC_NMBR />
</item>
- <item>
<INVOICE_DOC_ITEM>003</INVOICE_DOC_ITEM>
<GL_ACCOUNT>0000738100</GL_ACCOUNT>
<ITEM_AMOUNT>400.43</ITEM_AMOUNT>
<ORDERID />
<PROFIT_CTR>0000006010</PROFIT_CTR>
<ALLOC_NMBR />
</item>
- <item>
<INVOICE_DOC_ITEM>002</INVOICE_DOC_ITEM>
<GL_ACCOUNT>0000738100</GL_ACCOUNT>
<ITEM_AMOUNT>800.55</ITEM_AMOUNT>
<ORDERID />
<PROFIT_CTR>0000007320</PROFIT_CTR>
<ALLOC_NMBR />
</item>
- <item>
<INVOICE_DOC_ITEM>003</INVOICE_DOC_ITEM>
<GL_ACCOUNT>0000738100</GL_ACCOUNT>
<ITEM_AMOUNT>500.43</ITEM_AMOUNT>
<DB_CR_IND>S</DB_CR_IND>
<COMP_CODE>1151</COMP_CODE>
<ITEM_TEXT>*999-8030-861</ITEM_TEXT>
<COSTCENTER>0000006010</COSTCENTER>
<ORDERID />
<PROFIT_CTR>0000006010</PROFIT_CTR>
<ALLOC_NMBR />
</item>
<ITEMDATA />
<RETURN />
</ns1:BAPI_INCOMINGINVOICE_CREATE>
My Scenario is File ->RFC->Mail, its about each header would able to call RFC i.e 1:N and Mail would able catch return response. BPM taking the request messages and calling the BAPI at this time.
But i'm struck in calling each headers . Can you give me steps for mapping !
Thanks,
Regards
Sankar..!
Hi Sankar ,
In your case for each BAPI data created there will be only one header and one GLdata with so many line items as items in it.
Target(BAPI) Datatype:
-
BAPIINCOMINGINVOICECREATE
header (1..1)
field1
field2
GLDATA (0..1)
item (0..unbounded)
field1
field2
field3
While reading your source data type need to read Header, all line item below that as a set of data and then fire the mapping .
You can test your mapping in Mapping screen test tab . You try to put some dummy data as source with multiple Headers and line items defined and test it . Check wether you are getting correct number of BAPI's created .
Please let me know if you need any further assistance.
Nanda
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Try using Multimapping and header of the source structure to BAPI message type. Then in BPM you can have a Block and a Send step inside it to call the BAPI. In the Block set it to ForEach. Hope this will help you.
Check out this
http://help.sap.com/saphelp_nw04/helpdata/en/21/6faf35c2d74295a3cb97f6f3ccf43c/content.htm
Thanks,
Prakash
My source file:
-
001150,,KR,08252006,08262006,,*INV4444,USD,001,001150,,K,H,1000.98,INV1234,
*777-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,600.55,,*777-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,400.43,,*777-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
001150,,KR,08252006,08262006,,INV4444,USD,001,001150,,K,H,1300.98,INV1234,
777-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,800.55,,*888-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,500.43,,*999-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
001150,,KR,08252006,08262006,,INV4444,USD,001,001150,,K,H,700.98,INV1234,7
77-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,200.55,,*333-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,500.43,,*222-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
My source structure picking right values from file:
-
<?xml version="1.0" encoding="utf-8"?>
<ns:MT_PESFILE xmlns:ns="urn:com.pesinvoice:xi:1.0">
<HEADERDetails_RecordSet>
<GLDetails_Structure>
<L_BUKRS>001150</L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART>KR</L_BLART>
<L_BLDAT>08252006</L_BLDAT>
<L_BUDAT>08262006</L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR>*INV4444</L_XBLNR>
<L_WAERS>USD</L_WAERS>
<L_BUZEI>001</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL></L_BSCHL>
<L_KOART>K</L_KOART>
<L_SHKGZ>H</L_SHKGZ>
<L_SRBTR>1000.98</L_SRBTR>
<L_ZUONR>INV1234</L_ZUONR>
<L_SGTXT>*777-8030-861</L_SGTXT>
<L_ACCNT>0000035345</L_ACCNT>
<L_KOSTL></L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT>08272006</L_ZFBDT>
<L_ZLSCH>C</L_ZLSCH>
<L_EMPFB>0009800331</L_EMPFB>
<L_ZTERM>015N</L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>002</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>600.55</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*777-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000007320</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>003</L_BUZEI>
<L_BUKRS1>001151</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>400.43</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*777-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000006010</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS>001150</L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART>KR</L_BLART>
<L_BLDAT>08252006</L_BLDAT>
<L_BUDAT>08262006</L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR>*INV4444</L_XBLNR>
<L_WAERS>USD</L_WAERS>
<L_BUZEI>001</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL></L_BSCHL>
<L_KOART>K</L_KOART>
<L_SHKGZ>H</L_SHKGZ>
<L_SRBTR>1300.98</L_SRBTR>
<L_ZUONR>INV1234</L_ZUONR>
<L_SGTXT>*777-8030-861</L_SGTXT>
<L_ACCNT>0000035345</L_ACCNT>
<L_KOSTL></L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT>08272006</L_ZFBDT>
<L_ZLSCH>C</L_ZLSCH>
<L_EMPFB>0009800331</L_EMPFB>
<L_ZTERM>015N</L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>002</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>800.55</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*888-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000007320</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>003</L_BUZEI>
<L_BUKRS1>001151</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>500.43</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*999-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000006010</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS>001150</L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART>KR</L_BLART>
<L_BLDAT>08252006</L_BLDAT>
<L_BUDAT>08262006</L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR>*INV4444</L_XBLNR>
<L_WAERS>USD</L_WAERS>
<L_BUZEI>001</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL></L_BSCHL>
<L_KOART>K</L_KOART>
<L_SHKGZ>H</L_SHKGZ>
<L_SRBTR>700.98</L_SRBTR>
<L_ZUONR>INV1234</L_ZUONR>
<L_SGTXT>*777-8030-861</L_SGTXT>
<L_ACCNT>0000035345</L_ACCNT>
<L_KOSTL></L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT>08272006</L_ZFBDT>
<L_ZLSCH>C</L_ZLSCH>
<L_EMPFB>0009800331</L_EMPFB>
<L_ZTERM>015N</L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>002</L_BUZEI>
<L_BUKRS1>001150</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>200.55</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*333-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000007320</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
<GLDetails_Structure>
<L_BUKRS></L_BUKRS>
<L_GJAHR></L_GJAHR>
<L_BLART></L_BLART>
<L_BLDAT></L_BLDAT>
<L_BUDAT></L_BUDAT>
<L_MONAT></L_MONAT>
<L_XBLNR></L_XBLNR>
<L_WAERS></L_WAERS>
<L_BUZEI>003</L_BUZEI>
<L_BUKRS1>001151</L_BUKRS1>
<L_BSCHL>40</L_BSCHL>
<L_KOART>S</L_KOART>
<L_SHKGZ>S</L_SHKGZ>
<L_SRBTR>500.43</L_SRBTR>
<L_ZUONR></L_ZUONR>
<L_SGTXT>*222-8030-861</L_SGTXT>
<L_ACCNT>0000738100</L_ACCNT>
<L_KOSTL>0000006010</L_KOSTL>
<L_AUFNR></L_AUFNR>
<L_ZFBDT></L_ZFBDT>
<L_ZLSCH></L_ZLSCH>
<L_EMPFB></L_EMPFB>
<L_ZTERM></L_ZTERM>
<L_NAME1></L_NAME1>
<L_NAME2></L_NAME2>
<L_PSTLZ></L_PSTLZ>
<L_ORT01></L_ORT01>
<L_LAND1></L_LAND1>
<L_STRAS></L_STRAS>
<L_PFACH></L_PFACH>
<L_REGIO></L_REGIO>
<L_EMPFG></L_EMPFG>
</GLDetails_Structure>
</HEADERDetails_RecordSet>
</ns:MT_PESFILE>
Regards
Sankar
Hi ,
As per the file data you have provided the Source structure getting filled is not correct i feel.
My source file:
-
001150,,KR,08252006,08262006,,*INV4444,USD,001,001150,,K,H,1000.98,INV1234,
*777-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,600.55,,*777-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,400.43,,*777-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
001150,,KR,08252006,08262006,,INV4444,USD,001,001150,,K,H,1300.98,INV1234,
777-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,800.55,,*888-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,500.43,,*999-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
001150,,KR,08252006,08262006,,INV4444,USD,001,001150,,K,H,700.98,INV1234,7
77-8030-861,0000035345,,,08272006,C,0009800331,015N,,,,,,,,,
,,,,,,,,002,001150,40,S,S,200.55,,*333-8030-861,0000738100,0000007320,,,,,,,
,,,,,,,,
,,,,,,,,003,001151,40,S,S,500.43,,*222-8030-861,0000738100,0000006010,,,,,,,
,,,,,,,,
For this type of file to read it is better to have a message type like this -
MT_DATA
DT_RECORD 0 ... Unbounded
DT_HEADER 1..1
DT_LINEITEM 0.. Unbounded
What i understood from this is for each set of data you will be getting one Header and 0 or multiple line items.
while configuring sender file adapter you need to mention key indicator like 001 - header , 002 - line item ..
based on this setting the file adapter processes the file...
Please let me know if i understood wrongly ...
let me know if you need any further information..
Hi Nanda,
yes ur right....and Already changed my datatype as you suggested ...!but problem is , it is not calling BAPI for each header and with associated line items..so I need to change my BPM with parFOREACH calls...!!
Do you have idea about when we took block step ..we need to assign multiline and current line items..!i gave both as Inbound interfaces...but i am getting error when am activating objects :Expression must not return a multiline value
Thanks,
Regards
Sankar
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.