cancel
Showing results for 
Search instead for 
Did you mean: 

Calling Multiple Headers and Line Items.

Former Member
0 Kudos

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..!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Nanda,

I tested using some dummy data..but header data not able calling 2nd time ..line items as it is calling multiple times.!

Probably I need to use some nodefunctions here?

Do you have any idea?

Regards

Sankar

former_member206604
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Yeah Prakash,

It seems to be my BPM had wrong..

I need to put Block step with ForEach to BAPI call?..!!

tell me is this way to design BPM

Receive(fileinputmsg)->Trans>Block(SyncSend BAPI Call)---->Send(Mail)

Tell me here:

InBlock step what is the Multiline Element and CurrentLine?

Regards

Sankar

former_member206604
Active Contributor
0 Kudos

Hi,

In your case it is CurrentLine. You can also check out some samples like BPMCollectPatterns, BpmPatternMulticastParallel etc.. in SAP Basis software components.

Thanks,

Prakash

Former Member
0 Kudos

Hi Sankar ,

Can you please provide me with your source structure with 2 test data values ?

When you are reading data from file the data is getting read as per your source structure ?

Please chcek the SXMB_MONI XI payload and confirm that the data read in correct format from file ..

Nanda

Former Member
0 Kudos

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

Former Member
0 Kudos

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..

Former Member
0 Kudos

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

Answers (0)