<?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 Re: Batch splitting logic in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149317#M1368232</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kumar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should format your code before posting... I have done it and put it just below :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
PERFORM get_invoice_data.
PERFORM filter_invoice_data. 

FORM get_invoice_data.
 
SELECT k~vkorg k~vbeln k~fkart k~vtweg k~fkdat "CHOYT CHG#1589121 
     k~waerk k~bzirk k~regio k~BSTNK_VF "Mod-010++ 
     p~posnr p~vkgrp p~vkbur p~mvgr5 p~matnr 
     p~arktx p~fkimg p~vrkme p~netwr p~mwsbp 
     p~aubel p~vgbel p~vgtyp p~charg p~werks k~fkart k~xblnr 
  INTO CORRESPONDING FIELDS OF TABLE t_vbrp 
  FROM vbrk AS k
  INNER JOIN vbrp AS p 
   ON k~vbeln = p~vbeln
    WHERE k~vkorg IN s_vkorg "&amp;lt;&amp;lt; MOD CHOYT CHG#1589121 
      AND k~fkdat IN s_fkdat AND k~vtweg IN s_vtweg 
      AND k~rfbsk = 'C' " Accounting document has been created 
      AND vkgrp IN s_vkgrp AND vkbur IN s_vkbur. 

ENDFORM. " get_invoice_data


FORM filter_invoice_data. 

DATA lt_vbpa LIKE t_vbpa OCCURS 0 WITH HEADER LINE.

IF NOT t_vbrp[] IS INITIAL. "Mod-004++ 
  REFRESH lt_vbpa. 

  SELECT vbeln parvw kunnr FROM vbpa
    INTO CORRESPONDING FIELDS OF TABLE lt_vbpa 
    FOR ALL ENTRIES IN t_vbrp
      WHERE vbeln = t_vbrp-vbeln 
       AND posnr = '000000'. " Header partner 

  SELECT vbeln parvw kunnr FROM vbpa 
    APPENDING CORRESPONDING FIELDS OF TABLE lt_vbpa 
    FOR ALL ENTRIES IN t_vbrp
     WHERE vbeln = t_vbrp-vbeln AND parvw = 'WE'. " Header partner 
ENDIF. "Mod-004++ 

SORT lt_vbpa BY vbeln.
t_vbpa[] = lt_vbpa[]. 

" I believe that you have forget the following line, isn't it?
LOOP AT t_vbrp.
" ^^^^^^^^^^^^^^
  LOOP AT lt_vbpa WHERE vbeln = t_vbrp-vbeln 
         AND parvw IN s_parvw 
         AND kunnr IN s_kunnr. 
    EXIT. 
  ENDLOOP.

  IF sy-subrc 0. 
    DELETE t_vbrp. 
  ENDIF. 
ENDLOOP. 

IF c_prf = 'X'. "KA01 
" Are you sure you want to sort your internal table twice ???
  SORT t_vbrp DESCENDING BY posnr vbeln fkart. "KA01 
  SORT t_vbrp DESCENDING BY vgbel fkart. 
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

" I don't understand why you delete some lines in T_VBRP
" that you after insert again in T_VBRP
" (a sort change nothing to the content)???
  LOOP AT t_vbrp WHERE rfbsk NE 'C'.
...  " here I have skipped some lines
  ENDLOOP. 
" ^^^^^^^^^^^^^^^^^^^

  SORT t_vbrp. 
ENDIF. "KA01 

ENDFORM. " filter_invoice_data
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have insert some remarks about your code : some lines seems strange! But for your question, what do you mean by batch splitting logic? Could you explicit? Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Samuel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Sep 2009 07:45:45 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-09-18T07:45:45Z</dc:date>
    <item>
      <title>Batch splitting logic</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149315#M1368230</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;I am required to add batch splitting logic in below code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any one tell me how to do this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PERFORM get_invoice_data.
  PERFORM filter_invoice_data.
  
FORM get_invoice_data.

    SELECT k~vkorg k~vbeln k~fkart k~vtweg k~fkdat  "CHOYT CHG#1589121
           k~waerk k~bzirk k~regio
           k~BSTNK_VF                                       "Mod-010++
           p~posnr p~vkgrp p~vkbur p~mvgr5 p~matnr
           p~arktx p~fkimg p~vrkme p~netwr p~mwsbp
           p~aubel p~vgbel p~vgtyp
           p~charg p~werks k~fkart
           k~xblnr
      INTO CORRESPONDING FIELDS OF TABLE t_vbrp
      FROM vbrk AS k INNER JOIN vbrp AS p
        ON k~vbeln = p~vbeln
     WHERE k~vkorg IN s_vkorg "&amp;lt;&amp;lt; MOD CHOYT CHG#1589121
       AND k~fkdat IN s_fkdat
       AND k~vtweg IN s_vtweg
       AND k~rfbsk = 'C'      " Accounting document has been created
       AND vkgrp IN s_vkgrp
       AND vkbur IN s_vkbur.
ENDFORM.                    " get_invoice_data
FORM filter_invoice_data.

  DATA lt_vbpa LIKE t_vbpa OCCURS 0 WITH HEADER LINE.

If not t_vbrp[] is initial. "Mod-004++
  REFRESH lt_vbpa.

  SELECT vbeln parvw kunnr
    FROM vbpa
    INTO CORRESPONDING FIELDS OF TABLE lt_vbpa
    FOR ALL ENTRIES IN t_vbrp
   WHERE vbeln = t_vbrp-vbeln
     AND posnr = '000000'.    " Header partner
     
  SELECT vbeln parvw kunnr
    FROM vbpa
    APPENDING CORRESPONDING FIELDS OF TABLE lt_vbpa
    FOR ALL ENTRIES IN t_vbrp
   WHERE vbeln = t_vbrp-vbeln
     AND parvw = 'WE'.    " Header partner

Endif. "Mod-004++
  SORT lt_vbpa BY vbeln.
  t_vbpa[] = lt_vbpa[].
    LOOP AT lt_vbpa WHERE vbeln = t_vbrp-vbeln
                      AND parvw IN s_parvw
                      AND kunnr IN s_kunnr.
      EXIT.
    ENDLOOP.
    IF sy-subrc &amp;lt;&amp;gt; 0.
      DELETE t_vbrp.
    ENDIF.

  ENDLOOP.
  IF c_prf = 'X'.                                           "KA01
    SORT t_vbrp DESCENDING BY posnr vbeln fkart.            "KA01
    SORT t_vbrp DESCENDING BY vgbel fkart.
 
   LOOP AT t_vbrp WHERE rfbsk NE 'C'.
      t_vbrp_c = t_vbrp.
      APPEND t_vbrp_c.
      DELETE t_vbrp.
    ENDLOOP.
    SORT t_vbrp_c DESCENDING BY vgbel vgpos vbeln.
    DELETE ADJACENT DUPLICATES FROM t_vbrp_c
           COMPARING vgbel vgpos fkart.
    LOOP AT t_vbrp_c.
      t_vbrp = t_vbrp_c.
      APPEND t_vbrp.
    ENDLOOP.
    SORT t_vbrp.
  ENDIF.                                                    "KA01
 ENDFORM.                    " filter_invoice_data&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Sep 2009 23:52:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149315#M1368230</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-09-17T23:52:57Z</dc:date>
    </item>
    <item>
      <title>Re: Batch splitting logic</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149316#M1368231</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;please put your requirement in text.&lt;/P&gt;&lt;P&gt;in code it is not understandable,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;shankar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Sep 2009 05:59:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149316#M1368231</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-09-18T05:59:29Z</dc:date>
    </item>
    <item>
      <title>Re: Batch splitting logic</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149317#M1368232</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kumar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should format your code before posting... I have done it and put it just below :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
PERFORM get_invoice_data.
PERFORM filter_invoice_data. 

FORM get_invoice_data.
 
SELECT k~vkorg k~vbeln k~fkart k~vtweg k~fkdat "CHOYT CHG#1589121 
     k~waerk k~bzirk k~regio k~BSTNK_VF "Mod-010++ 
     p~posnr p~vkgrp p~vkbur p~mvgr5 p~matnr 
     p~arktx p~fkimg p~vrkme p~netwr p~mwsbp 
     p~aubel p~vgbel p~vgtyp p~charg p~werks k~fkart k~xblnr 
  INTO CORRESPONDING FIELDS OF TABLE t_vbrp 
  FROM vbrk AS k
  INNER JOIN vbrp AS p 
   ON k~vbeln = p~vbeln
    WHERE k~vkorg IN s_vkorg "&amp;lt;&amp;lt; MOD CHOYT CHG#1589121 
      AND k~fkdat IN s_fkdat AND k~vtweg IN s_vtweg 
      AND k~rfbsk = 'C' " Accounting document has been created 
      AND vkgrp IN s_vkgrp AND vkbur IN s_vkbur. 

ENDFORM. " get_invoice_data


FORM filter_invoice_data. 

DATA lt_vbpa LIKE t_vbpa OCCURS 0 WITH HEADER LINE.

IF NOT t_vbrp[] IS INITIAL. "Mod-004++ 
  REFRESH lt_vbpa. 

  SELECT vbeln parvw kunnr FROM vbpa
    INTO CORRESPONDING FIELDS OF TABLE lt_vbpa 
    FOR ALL ENTRIES IN t_vbrp
      WHERE vbeln = t_vbrp-vbeln 
       AND posnr = '000000'. " Header partner 

  SELECT vbeln parvw kunnr FROM vbpa 
    APPENDING CORRESPONDING FIELDS OF TABLE lt_vbpa 
    FOR ALL ENTRIES IN t_vbrp
     WHERE vbeln = t_vbrp-vbeln AND parvw = 'WE'. " Header partner 
ENDIF. "Mod-004++ 

SORT lt_vbpa BY vbeln.
t_vbpa[] = lt_vbpa[]. 

" I believe that you have forget the following line, isn't it?
LOOP AT t_vbrp.
" ^^^^^^^^^^^^^^
  LOOP AT lt_vbpa WHERE vbeln = t_vbrp-vbeln 
         AND parvw IN s_parvw 
         AND kunnr IN s_kunnr. 
    EXIT. 
  ENDLOOP.

  IF sy-subrc 0. 
    DELETE t_vbrp. 
  ENDIF. 
ENDLOOP. 

IF c_prf = 'X'. "KA01 
" Are you sure you want to sort your internal table twice ???
  SORT t_vbrp DESCENDING BY posnr vbeln fkart. "KA01 
  SORT t_vbrp DESCENDING BY vgbel fkart. 
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

" I don't understand why you delete some lines in T_VBRP
" that you after insert again in T_VBRP
" (a sort change nothing to the content)???
  LOOP AT t_vbrp WHERE rfbsk NE 'C'.
...  " here I have skipped some lines
  ENDLOOP. 
" ^^^^^^^^^^^^^^^^^^^

  SORT t_vbrp. 
ENDIF. "KA01 

ENDFORM. " filter_invoice_data
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have insert some remarks about your code : some lines seems strange! But for your question, what do you mean by batch splitting logic? Could you explicit? Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Samuel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Sep 2009 07:45:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149317#M1368232</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-09-18T07:45:45Z</dc:date>
    </item>
    <item>
      <title>Re: Batch splitting logic</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149318#M1368233</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kumar,,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think batch splitting means.. issuing a material having different batches... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To use batch spiltting logic, use 'At new' command or  'On change of' command to display the differnt batches of the same material...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards...&lt;/P&gt;&lt;P&gt;Navaneeth.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Sep 2009 07:55:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/batch-splitting-logic/m-p/6149318#M1368233</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-09-18T07:55:43Z</dc:date>
    </item>
  </channel>
</rss>

