<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic looping in Internal table in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443253#M1248178</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am trying to create a document using BAPI.It works for single header and single item.&lt;/P&gt;&lt;P&gt;I want to enhance this for multiple jobs.&lt;/P&gt;&lt;P&gt;My internal table has following records ..mentioned in code. I am confused on how to pass these in loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT x.

DATA: doc_header TYPE STANDARD TABLE OF bapidochdrp .
DATA: doc_items TYPE STANDARD TABLE OF bapiskfitm  .
DATA: return TYPE STANDARD TABLE OF bapiret2 .

DATA: wa_header TYPE  bapidochdrp .
DATA: wa_return TYPE bapiret2 .


TYPES: BEGIN OF t_doc ,
job(10) TYPE c,
phase(10) TYPE c,
hour(6) TYPE c,
amount(10) TYPE c,

END OF t_doc.

DATA: it_doc TYPE STANDARD TABLE OF t_doc.
DATA: wa_doc TYPE t_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '30.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '40.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9500' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9600' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '70.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9800' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '80.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9900' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '50.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


WRITE:/10 'Job' , 20 'Phase', 30 'Hour', 50 'Amount'.
ULINE.
LOOP AT it_doc INTO wa_doc.

  WRITE:/10 wa_doc-job, 20 wa_doc-phase, 30 wa_doc-hour, 50 wa_doc-amount.



ENDLOOP.


*Header file will be always

   wa_header-co_area = 1000.
    wa_header-docdate = sy-datum.
    wa_header-username = sy-uname.

*    ** doc_items should be like this below.(Other words it will be JOb/Phase/Hours  , &amp;amp; Job/Phase/Amounts everytime)
*    first doc_items  - 100, 9700,sum of hours(60)
*     second doc_items -100, 9700, sum of amounts(90)
*     third doc_items -200, 9500, sum of hours(10)
*     fourth doc_items -200, 9500, sum of amounts(20)
*     fifth doc_items -200, 9600, sum of hours(10)
*     sixth doc_items -200, 9600, sum of amounts(70)

*** My BAPI should create only one document per  job. i mean 1 for 100 , 2nd one for 200 and so on..


CALL FUNCTION 'BAPI_ACC_STAT_KEY_FIG_POST'
  EXPORTING
    doc_header      = wa_header
    ignore_warnings = 'X'
  TABLES
    doc_items       = doc_items
    return          = return.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:15 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:28 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:29 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 27 Mar 2009 15:13:59 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-03-27T15:13:59Z</dc:date>
    <item>
      <title>looping in Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443253#M1248178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am trying to create a document using BAPI.It works for single header and single item.&lt;/P&gt;&lt;P&gt;I want to enhance this for multiple jobs.&lt;/P&gt;&lt;P&gt;My internal table has following records ..mentioned in code. I am confused on how to pass these in loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT x.

DATA: doc_header TYPE STANDARD TABLE OF bapidochdrp .
DATA: doc_items TYPE STANDARD TABLE OF bapiskfitm  .
DATA: return TYPE STANDARD TABLE OF bapiret2 .

DATA: wa_header TYPE  bapidochdrp .
DATA: wa_return TYPE bapiret2 .


TYPES: BEGIN OF t_doc ,
job(10) TYPE c,
phase(10) TYPE c,
hour(6) TYPE c,
amount(10) TYPE c,

END OF t_doc.

DATA: it_doc TYPE STANDARD TABLE OF t_doc.
DATA: wa_doc TYPE t_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '30.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '40.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9500' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9600' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '70.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9800' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '80.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9900' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '50.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


WRITE:/10 'Job' , 20 'Phase', 30 'Hour', 50 'Amount'.
ULINE.
LOOP AT it_doc INTO wa_doc.

  WRITE:/10 wa_doc-job, 20 wa_doc-phase, 30 wa_doc-hour, 50 wa_doc-amount.



ENDLOOP.


*Header file will be always

   wa_header-co_area = 1000.
    wa_header-docdate = sy-datum.
    wa_header-username = sy-uname.

*    ** doc_items should be like this below.(Other words it will be JOb/Phase/Hours  , &amp;amp; Job/Phase/Amounts everytime)
*    first doc_items  - 100, 9700,sum of hours(60)
*     second doc_items -100, 9700, sum of amounts(90)
*     third doc_items -200, 9500, sum of hours(10)
*     fourth doc_items -200, 9500, sum of amounts(20)
*     fifth doc_items -200, 9600, sum of hours(10)
*     sixth doc_items -200, 9600, sum of amounts(70)

*** My BAPI should create only one document per  job. i mean 1 for 100 , 2nd one for 200 and so on..


CALL FUNCTION 'BAPI_ACC_STAT_KEY_FIG_POST'
  EXPORTING
    doc_header      = wa_header
    ignore_warnings = 'X'
  TABLES
    doc_items       = doc_items
    return          = return.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:15 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:28 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: PRAVEEN s on Mar 27, 2009 4:29 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2009 15:13:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443253#M1248178</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-27T15:13:59Z</dc:date>
    </item>
    <item>
      <title>Re: looping in Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443254#M1248179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;LOOP AT i_header INTO g_HEADER.

 
wa_header-co_area = g_header-co_area
wa_header-docdate = sy-datum.
wa_header-username = sy-uname.

Loop at i_item WHERE co_area =  g_header-co_area'

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '30.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.
Clear it_doc. 

AT END OF CO_AREA.

WRITE:/10 'Job' , 20 'Phase', 30 'Hour', 50 'Amount'.
ULINE.
LOOP AT it_doc INTO wa_doc.
 
  WRITE:/10 wa_doc-job, 20 wa_doc-phase, 30 wa_doc-hour, 50 wa_doc-amount.
  
ENDLOOP.

CALL FUNCTION 'BAPI_ACC_STAT_KEY_FIG_POST'
  EXPORTING
    doc_header      = wa_header
    ignore_warnings = 'X'
  TABLES
    doc_items       = doc_items
    return          = return.
  
Clear wa_header.
Refresh doc_item.

ENDDAT.

ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2009 15:31:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443254#M1248179</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-27T15:31:59Z</dc:date>
    </item>
    <item>
      <title>Re: looping in Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443255#M1248180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt; 
loop at itab. 
     perform populate_bapi.
     .....call bapi. 
     .....bapi_transaction_commit / rollback. 
     .....clear bapi structures/ fields/tables. 
endloop. 
&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2009 15:34:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443255#M1248180</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-27T15:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: looping in Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443256#M1248181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Looks like I should have to breaken down the problem first.&lt;/P&gt;&lt;P&gt;I just want to process my internal table and bring it into required format.where it sums up by job/phase/Hours  &amp;amp; job/phase/Amount by creating duplicate rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT x.


TYPES: BEGIN OF t_doc ,
job(10) TYPE c,
phase(10) TYPE c,
hour(6) TYPE c,
amount(10) TYPE c,

END OF t_doc.

DATA: it_doc TYPE STANDARD TABLE OF t_doc.
DATA: wa_doc TYPE t_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '30.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.

MOVE '100' TO wa_doc-job.
MOVE '9700' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '40.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9500' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '20.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '200' TO wa_doc-job.
MOVE '9600' TO wa_doc-phase.
MOVE '10' TO wa_doc-hour.
MOVE '70.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9800' TO wa_doc-phase.
MOVE '30' TO wa_doc-hour.
MOVE '80.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


MOVE '300' TO wa_doc-job.
MOVE '9900' TO wa_doc-phase.
MOVE '20' TO wa_doc-hour.
MOVE '50.00' TO wa_doc-amount.
APPEND wa_doc TO it_doc.


WRITE:/10 'Job' , 20 'Phase', 30 'Hour', 50 'Amount'.
ULINE.
LOOP AT it_doc INTO wa_doc.

  WRITE:/10 wa_doc-job, 20 wa_doc-phase, 30 wa_doc-hour, 50 wa_doc-amount.


ENDLOOP.


*    ** doc_items should be 2 times for every job.
*    first doc_items  - 100, 9700,sum of hours(60)
*     second doc_items -100, 9700, sum of amounts(90)
*     third doc_items -200, 9500, sum of hours(10)
*     fourth doc_items -200, 9500, sum of amounts(20)
*     fifth doc_items -200, 9600, sum of hours(10)
*     sixth doc_items -200, 9600, sum of amounts(70)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2009 16:05:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443256#M1248181</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-27T16:05:12Z</dc:date>
    </item>
    <item>
      <title>Re: looping in Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443257#M1248182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;opened another ticket by break down issue&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Mar 2009 16:25:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looping-in-internal-table/m-p/5443257#M1248182</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-27T16:25:46Z</dc:date>
    </item>
  </channel>
</rss>

