<?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 sample programs in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-programs/m-p/2333249#M513581</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi experts, &lt;/P&gt;&lt;P&gt;can anybody pls tell me the all sample program codes (MODULE , BDC, REPORTS, SCRIPTS, SMARTFORMS, AND CROSS APPS) programs&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 03 Jun 2007 15:35:36 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-03T15:35:36Z</dc:date>
    <item>
      <title>sample programs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-programs/m-p/2333249#M513581</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi experts, &lt;/P&gt;&lt;P&gt;can anybody pls tell me the all sample program codes (MODULE , BDC, REPORTS, SCRIPTS, SMARTFORMS, AND CROSS APPS) programs&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jun 2007 15:35:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-programs/m-p/2333249#M513581</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-03T15:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: sample programs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sample-programs/m-p/2333250#M513582</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Report Sample program:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZMM_KITCHEN_COST no standard page heading&lt;/P&gt;&lt;P&gt;                        line-size 255&lt;/P&gt;&lt;P&gt;                        message-id zwave  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type-pools&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;type-pools : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;tables : mara,&lt;/P&gt;&lt;P&gt;         makt,&lt;/P&gt;&lt;P&gt;         mbew,&lt;/P&gt;&lt;P&gt;         konp,&lt;/P&gt;&lt;P&gt;         pgmi,&lt;/P&gt;&lt;P&gt;         marc,&lt;/P&gt;&lt;P&gt;         RMCP3,&lt;/P&gt;&lt;P&gt;         sscrfields,&lt;/P&gt;&lt;P&gt;         mvke.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for MARC and MARA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of i_join occurs 0,&lt;/P&gt;&lt;P&gt;       matnr like mara-matnr, " Material #&lt;/P&gt;&lt;P&gt;       meins like mara-meins, " Unit of Measure&lt;/P&gt;&lt;P&gt;       werks like marc-werks, " Plant&lt;/P&gt;&lt;P&gt;       zzdept like marc-zzdept," Department&lt;/P&gt;&lt;P&gt;       end of i_join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for PGMI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of i_pgmi occurs 0,&lt;/P&gt;&lt;P&gt;       werks like pgmi-werks, " Plant,&lt;/P&gt;&lt;P&gt;       nrmit like pgmi-nrmit, " Material #&lt;/P&gt;&lt;P&gt;       wemit like pgmi-wemit, " Plant&lt;/P&gt;&lt;P&gt;       end of i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for MBEW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data i_mbew like mbew occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of i_output occurs 0 ,&lt;/P&gt;&lt;P&gt;       matnr like mara-matnr, " Material #&lt;/P&gt;&lt;P&gt;       maktx like makt-maktx, " Material Desc&lt;/P&gt;&lt;P&gt;       VPRSV like mbew-VPRSV, " Price Control Indicator&lt;/P&gt;&lt;P&gt;       VERPR like mbew-VERPR, " Moving Avg Price&lt;/P&gt;&lt;P&gt;       meins like mara-meins, " Base Unit of Measure&lt;/P&gt;&lt;P&gt;       STPRS like mbew-STPRS, " Standard Price&lt;/P&gt;&lt;P&gt;       LPLPR like mbew-LPLPR, " Current Planned Price&lt;/P&gt;&lt;P&gt;       ZPLPR like mbew-ZPLPR, " Future Planned Price&lt;/P&gt;&lt;P&gt;       VPLPR like mbew-VPLPR, " Previous Planned Price&lt;/P&gt;&lt;P&gt;       kbetr like konp-kbetr, " Sales Price&lt;/P&gt;&lt;P&gt;       KMEIN like konp-KMEIN, " Sales Unit&lt;/P&gt;&lt;P&gt;       margin(5) type p decimals 2,&lt;/P&gt;&lt;P&gt;       vmsta like mvke-vmsta, " Material Status.&lt;/P&gt;&lt;P&gt;       end of i_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for A004&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : i_a004 like a004 occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : wa_lines type i,&lt;/P&gt;&lt;P&gt;       wa_maktx type makt-maktx,&lt;/P&gt;&lt;P&gt;       v_flag type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ALV Function Module Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: g_repid like sy-repid,&lt;/P&gt;&lt;P&gt;      gs_layout type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      g_exit_caused_by_caller,&lt;/P&gt;&lt;P&gt;      gs_exit_caused_by_user type slis_exit_by_user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_fieldcat    type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      gs_print       type slis_print_alv,&lt;/P&gt;&lt;P&gt;      gt_events      type slis_t_event,&lt;/P&gt;&lt;P&gt;      gt_list_top_of_page type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      g_status_set   type slis_formname value 'PF_STATUS_SET',&lt;/P&gt;&lt;P&gt;      g_user_command type slis_formname value 'USER_COMMAND',&lt;/P&gt;&lt;P&gt;      g_top_of_page  type slis_formname value 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;      g_top_of_list  type slis_formname value 'TOP_OF_LIST',&lt;/P&gt;&lt;P&gt;      g_end_of_list  type slis_formname value 'END_OF_LIST',&lt;/P&gt;&lt;P&gt;      g_variant LIKE disvariant,&lt;/P&gt;&lt;P&gt;      g_save(1) TYPE c,&lt;/P&gt;&lt;P&gt;      g_tabname_header TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;      g_tabname_item   TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;      g_exit(1) TYPE c,&lt;/P&gt;&lt;P&gt;      gx_variant LIKE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : gr_layout_bck type slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selection-screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;selection-screen : begin of block blk with frame title text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters : p_werks like marc-werks default '1000' obligatory.&lt;/P&gt;&lt;P&gt;select-options : s_dept for marc-zzdept obligatory,&lt;/P&gt;&lt;P&gt;                 s_matnr for mara-matnr,&lt;/P&gt;&lt;P&gt;                 s_mtart for mara-mtart,&lt;/P&gt;&lt;P&gt;                 s_vprsv for mbew-VPRSV,&lt;/P&gt;&lt;P&gt;                 s_PRGRP for RMCP3-PRGRP MATCHCODE OBJECT MAT2 ,&lt;/P&gt;&lt;P&gt;                 s_vmsta for mvke-vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block blk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;*PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;*SELECTION-SCREEN END OF BLOCK b3.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;At slection screen events                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Process on value request&lt;/P&gt;&lt;P&gt;*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM f4_for_variant.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Initialization.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sscrfields-functxt_01 = 'Clear Selection'.&lt;/P&gt;&lt;P&gt;selection-screen function key 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case sscrfields-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'Clear Selection' or 'FC01'.&lt;/P&gt;&lt;P&gt;clear: s_matnr,&lt;/P&gt;&lt;P&gt;       p_werks.&lt;/P&gt;&lt;P&gt;refresh: s_matnr,&lt;/P&gt;&lt;P&gt;         s_dept,&lt;/P&gt;&lt;P&gt;         s_mtart,&lt;/P&gt;&lt;P&gt;         s_vprsv,&lt;/P&gt;&lt;P&gt;         s_PRGRP,&lt;/P&gt;&lt;P&gt;         s_vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start-of-selection.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Clear the all data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform clear_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from PGMI Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MARC and MARA Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_mara_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MBEW Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move the data into OUTPUT Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform move_output_internal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end-of-selection.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not i_output[] is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Function Module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform print_alv.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_pgmi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Select the data from PGMI Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear v_flag.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If Product group has a value at Selection-screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not s_prgrp is initial.&lt;/P&gt;&lt;P&gt;    select werks nrmit wemit from pgmi into table i_pgmi&lt;/P&gt;&lt;P&gt;                             where prgrp in s_prgrp&lt;/P&gt;&lt;P&gt;                             and   werks = p_werks&lt;/P&gt;&lt;P&gt;                             and   wemit = p_werks.&lt;/P&gt;&lt;P&gt;    v_flag = 'X'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_pgmi&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_mara_marc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Select the data from MARA and MARC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_mara_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if v_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select a&lt;SUB&gt;matnr a&lt;/SUB&gt;meins b&lt;SUB&gt;werks b&lt;/SUB&gt;zzdept into table i_join&lt;/P&gt;&lt;P&gt;           from mara as a inner join marc as b on a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;           for all entries in i_pgmi&lt;/P&gt;&lt;P&gt;                                     where a~matnr in s_matnr&lt;/P&gt;&lt;P&gt;                                     and   b~werks = p_werks&lt;/P&gt;&lt;P&gt;                                     and   b~zzdept in s_dept&lt;/P&gt;&lt;P&gt;                                     and   a~mtart in s_mtart&lt;/P&gt;&lt;P&gt;                                     and   a~matnr = i_pgmi-nrmit&lt;/P&gt;&lt;P&gt;                                     and   b~werks = i_pgmi-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MARA and MARC Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select a&lt;SUB&gt;matnr a&lt;/SUB&gt;meins b&lt;SUB&gt;werks b&lt;/SUB&gt;zzdept into table i_join&lt;/P&gt;&lt;P&gt;           from mara as a inner join marc as b on a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                                     where a~matnr in s_matnr&lt;/P&gt;&lt;P&gt;                                     and   b~werks = p_werks&lt;/P&gt;&lt;P&gt;                                     and   b~zzdept in s_dept&lt;/P&gt;&lt;P&gt;                                     and   a~mtart in s_mtart.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear wa_lines.&lt;/P&gt;&lt;P&gt;  describe  table i_join lines wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if wa_lines is initial.&lt;/P&gt;&lt;P&gt;    message i000(zwave) with 'List contains no data'.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort i_join by matnr werks zzdept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_mara_marc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_mbew&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Select the data from MBEW Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MBEW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select * from mbew into table i_mbew&lt;/P&gt;&lt;P&gt;           for all entries in i_join&lt;/P&gt;&lt;P&gt;           where matnr = i_join-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe  table i_mbew lines wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if wa_lines is initial.&lt;/P&gt;&lt;P&gt;    message i000(zwave) with 'List contains no data'.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort i_mbew by matnr bwkey.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_mbew&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_output_internal&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Final Results&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM move_output_internal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear wa_maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Compare the data with MVKE Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single vmsta from mvke into mvke-vmsta&lt;/P&gt;&lt;P&gt;                             where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                             and   vkorg = '0001'&lt;/P&gt;&lt;P&gt;                             and   vtweg = '01'&lt;/P&gt;&lt;P&gt;                             and   vmsta in s_vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      i_output-vmsta = mvke-vmsta.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table i_mbew with key matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                               bwkey = i_join-werks&lt;/P&gt;&lt;P&gt;                               binary search.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Price Control Indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VPRSV = i_mbew-VPRSV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving Average Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VERPR = i_mbew-VERPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-STPRS = i_mbew-STPRS / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Current Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-LPLPR = i_mbew-LPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Future Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-ZPLPR = i_mbew-ZPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Previous Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VPLPR = i_mbew-VPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Base Unit of Measure - Added by Seshu 01/09/2007&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-meins = i_join-meins.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the sales Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform get_sales_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if i_mbew-VPRSV = 'V'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Percentage of Margin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if i_output-kbetr ne '0.00'.&lt;/P&gt;&lt;P&gt;        i_output-margin = ( ( i_output-kbetr - i_mbew-VERPR )&lt;/P&gt;&lt;P&gt;                           / i_output-kbetr ) * 100 .&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Percentage of Margin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if i_output-kbetr ne '0.00'.&lt;/P&gt;&lt;P&gt;        i_output-margin = ( ( i_output-kbetr - i_output-stprs )&lt;/P&gt;&lt;P&gt;                           / i_output-kbetr ) * 100 .&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the material Description from MAKT Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single maktx from makt into wa_maktx&lt;/P&gt;&lt;P&gt;                             where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                             and   spras = 'E'.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_output-matnr = i_join-matnr.&lt;/P&gt;&lt;P&gt;      i_output-maktx = wa_maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append i_output.&lt;/P&gt;&lt;P&gt;    clear : i_output,&lt;/P&gt;&lt;P&gt;            i_join,&lt;/P&gt;&lt;P&gt;            i_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " move_output_internal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_sales_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get the Sales Price for each material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_sales_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from A004 table to get KNUMH&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Added new field Sales Unit - Seshu 01/09/2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  refresh : i_a004.&lt;/P&gt;&lt;P&gt;  clear :   i_a004.&lt;/P&gt;&lt;P&gt;  data : lv_kbetr like konp-kbetr," Condition value&lt;/P&gt;&lt;P&gt;         lv_KPEIN like konp-kpein , "per&lt;/P&gt;&lt;P&gt;         lv_KMEIN like konp-KMEIN. " Sales Unit&lt;/P&gt;&lt;P&gt;  select * from a004 into table i_a004&lt;/P&gt;&lt;P&gt;                          where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                          and   vkorg = '0001'&lt;/P&gt;&lt;P&gt;                          and   vtweg = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    sort i_a004 by DATAB descending.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Latetest Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table i_a004 with key matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                               vkorg = '0001'&lt;/P&gt;&lt;P&gt;                               vtweg = '01'&lt;/P&gt;&lt;P&gt;                               binary search.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Sales Value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single kbetr KPEIN KMEIN from konp&lt;/P&gt;&lt;P&gt;             into (lv_kbetr,lv_KPEIN, lv_KMEIN)&lt;/P&gt;&lt;P&gt;                             where knumh = i_a004-knumh&lt;/P&gt;&lt;P&gt;                             and   kappl = i_a004-kappl&lt;/P&gt;&lt;P&gt;                             and   kschl = i_a004-kschl.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_output-kbetr = lv_kbetr / lv_KPEIN.&lt;/P&gt;&lt;P&gt;      i_output-KMEIN = lv_KMEIN.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  clear : lv_kbetr,&lt;/P&gt;&lt;P&gt;          lv_kpein,&lt;/P&gt;&lt;P&gt;          lv_KMEIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_sales_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  print_alv&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ALV Function Module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM print_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the Fiedlcat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fieldcat_init  using gt_fieldcat[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gr_layout_bck-edit_mode = 'D'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gr_layout_bck-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_INTERFACE_CHECK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BYPASSING_BUFFER                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BUFFER_ACTIVE                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     I_CALLBACK_PROGRAM                = g_repid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_PF_STATUS_SET          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     I_CALLBACK_USER_COMMAND           = g_user_command&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_TOP_OF_PAGE            = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_HTML_END_OF_LIST       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_STRUCTURE_NAME                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BACKGROUND_ID                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_GRID_TITLE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_GRID_SETTINGS                   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IS_LAYOUT                         = gr_layout_bck&lt;/P&gt;&lt;P&gt;      IT_FIELDCAT                       = gt_fieldcat[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EXCLUDING                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_SPECIAL_GROUPS                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_SORT                           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_FILTER                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_SEL_HIDE                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_DEFAULT                         = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SAVE                            = g_save&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_VARIANT                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EVENTS                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EVENT_EXIT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_PRINT                          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_REPREP_ID                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_START_COLUMN             = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_START_LINE               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_END_COLUMN               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_END_LINE                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_ALV_GRAPHICS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_ADD_FIELDCAT                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_HYPERLINK                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_HTML_HEIGHT_TOP                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_HTML_HEIGHT_END                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EXCEPT_QINFO                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   E_EXIT_CAUSED_BY_CALLER           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ES_EXIT_CAUSED_BY_USER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      T_OUTTAB                          = i_output&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;P&gt;     OTHERS                            = 2&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " print_alv&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fieldcat_init&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fieldcat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material #&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MATNR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-ref_tabname = 'MARA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Material'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_M = 'Material'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_S = 'Material'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 35.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Description'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Price Indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VPRSV'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Price Control Indicator'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving Avg Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VERPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Moving Avg Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Base Unit of Measure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MEINS'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Base Unit'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'STPRS'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Standard Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Current Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'LPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Current Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Future Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'ZPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Future Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Previous Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Previous Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'KBETR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Sales Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Unit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'KMEIN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Sales Unit'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;% of Gross Margin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MARGIN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = '% of Gross Margin'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VMSTA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Material Status'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fieldcat_init&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**&amp;amp;      Form  f4_for_variant&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM f4_for_variant.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             is_variant          = g_variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_save              = g_save&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_tabname_header    = g_tabname_header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_tabname_item      = g_tabname_item&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;          it_default_fieldcat =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             e_exit              = g_exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             es_variant          = gx_variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             not_found = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF g_exit = space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_vari = gx_variant-variant.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM.                    " f4_for_variant&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  clear_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Clear the Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM clear_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : i_output,&lt;/P&gt;&lt;P&gt;          i_join,&lt;/P&gt;&lt;P&gt;          i_mbew,&lt;/P&gt;&lt;P&gt;          i_a004,&lt;/P&gt;&lt;P&gt;          i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh :  i_output,&lt;/P&gt;&lt;P&gt;             i_join,&lt;/P&gt;&lt;P&gt;             i_mbew,&lt;/P&gt;&lt;P&gt;             i_a004,&lt;/P&gt;&lt;P&gt;             i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " clear_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM USER_COMMAND                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;            rs_selfield TYPE slis_selfield.                 "#EC CALLED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE R_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      read table i_output index rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'MAT' FIELD i_output-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'WRK' FIELD p_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if not i_output-matnr is initial.&lt;/P&gt;&lt;P&gt;        call transaction 'MD04' and skip first screen.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BDC Sample Program :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report     : ZMPPC010&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type       : Data upload&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Author     : Chetan Shah&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date       : 05/05/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transport  : DV3K919472&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transaction: ??&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description: This ABAP/4 Program creates new Routings (CA21) for SMI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             plants. It accepts tab-delimited spreadsheet input and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             creates BDC sessions.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    Modification Log&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date       Programmer    Request #    Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;05/05/2005 Chetan Shah   DV3K919472   Initial coding&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zmppc010 NO STANDARD PAGE HEADING LINE-SIZE 120 LINE-COUNT 55&lt;/P&gt;&lt;P&gt;   MESSAGE-ID zz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pool of form routines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE ZMPPN001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define BDC Table Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF itab_bdc_tab OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcdata.&lt;/P&gt;&lt;P&gt;DATA: END OF itab_bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Input record layout of Leagcy File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF itab_xcel OCCURS 0,&lt;/P&gt;&lt;P&gt;        matnr(18) TYPE c,&lt;/P&gt;&lt;P&gt;        werks(4)  TYPE c,&lt;/P&gt;&lt;P&gt;        datuv(10) TYPE c,&lt;/P&gt;&lt;P&gt;        verwe(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        statu(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        slwbez(3) TYPE c,&lt;/P&gt;&lt;P&gt;        vornr(4)  TYPE n,&lt;/P&gt;&lt;P&gt;        arbpl(8)  TYPE c,&lt;/P&gt;&lt;P&gt;        steus(4)  TYPE c,&lt;/P&gt;&lt;P&gt;        ltxa1(40) TYPE c,&lt;/P&gt;&lt;P&gt;        bmsch     LIKE PLPOD-BMSCH,&lt;/P&gt;&lt;P&gt;        meinh(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar01(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw01     LIKE PLPOD-VGW01,&lt;/P&gt;&lt;P&gt;        vge01(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar02(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw02     LIKE PLPOD-VGW02,&lt;/P&gt;&lt;P&gt;        vge02(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar03(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw03     LIKE PLPOD-VGW03,&lt;/P&gt;&lt;P&gt;        vge03(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar04(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw04     LIKE PLPOD-VGW04,&lt;/P&gt;&lt;P&gt;        vge04(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar05(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw05     LIKE PLPOD-VGW05,&lt;/P&gt;&lt;P&gt;        vge05(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        lar06(6)  TYPE c,&lt;/P&gt;&lt;P&gt;        vgw06     LIKE PLPOD-VGW06,&lt;/P&gt;&lt;P&gt;        vge06(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        anzma     LIKE PLPOD-ANZMA,&lt;/P&gt;&lt;P&gt;        zlmax     LIKE PLPOD-ZLMAX,&lt;/P&gt;&lt;P&gt;        zeilm(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        zwnor     LIKE PLPOD-ZWNOR,&lt;/P&gt;&lt;P&gt;        zeiwn(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        ztnor     LIKE PLPOD-ZTNOR,&lt;/P&gt;&lt;P&gt;        zeitn(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        sortl(10) TYPE c,&lt;/P&gt;&lt;P&gt;        lifnr(10) TYPE c,&lt;/P&gt;&lt;P&gt;        plifz     LIKE PLPOD-PLIFZ,&lt;/P&gt;&lt;P&gt;        preis     LIKE PLPOD-PREIS,&lt;/P&gt;&lt;P&gt;        peinh     LIKE PLPOD-PEINH,&lt;/P&gt;&lt;P&gt;        sakto(10) TYPE c,&lt;/P&gt;&lt;P&gt;        waers(5)  TYPE c,&lt;/P&gt;&lt;P&gt;        infnr(10) TYPE c,&lt;/P&gt;&lt;P&gt;        ekorg(4)  TYPE c,&lt;/P&gt;&lt;P&gt;        ekgrp(3)  TYPE c,&lt;/P&gt;&lt;P&gt;        matkl(9)  TYPE c,&lt;/P&gt;&lt;P&gt;        ebeln(10) TYPE c,&lt;/P&gt;&lt;P&gt;        ebelp(5)  TYPE c,&lt;/P&gt;&lt;P&gt;        qpart(8)  TYPE c,&lt;/P&gt;&lt;P&gt;        ckselkz(1) TYPE c,&lt;/P&gt;&lt;P&gt;        rsanz     LIKE PLPOD-RSANZ,&lt;/P&gt;&lt;P&gt;      END OF itab_xcel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: v_ssnnr(4)      TYPE n,&lt;/P&gt;&lt;P&gt;      v_lines_in_xcel LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;      v_ssnname       LIKE apqi-groupid,&lt;/P&gt;&lt;P&gt;      v_trans_in_ssn  TYPE i,&lt;/P&gt;&lt;P&gt;      wa_xcel         LIKE itab_xcel,&lt;/P&gt;&lt;P&gt;      l_tabix         like sy-tabix,&lt;/P&gt;&lt;P&gt;      v_tcode         LIKE sy-tcode VALUE 'CA21'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN: SKIP 3.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK 1 WITH FRAME.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS: p_name        LIKE rlgrap-filename&lt;/P&gt;&lt;P&gt;                          DEFAULT 'C:\My Documents\InputFile.txt'&lt;/P&gt;&lt;P&gt;                          OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bdc session name prefix&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_bdcpfx(6)   DEFAULT 'ZRTCRT'&lt;/P&gt;&lt;P&gt;                          OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;number for transction per BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_trnssn      TYPE i&lt;/P&gt;&lt;P&gt;                          DEFAULT 2000 OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;retain the BDC session after successfull execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_keep        LIKE apqi-qerase&lt;/P&gt;&lt;P&gt;                          DEFAULT 'X',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user who will be executing BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_uname       LIKE apqi-userid&lt;/P&gt;&lt;P&gt;                          DEFAULT sy-uname&lt;/P&gt;&lt;P&gt;                          OBLIGATORY.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK 1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;possible entry list (F4 dropdown) for input file name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-SELECT FILE FROM USERS LOCAL PC&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         DEF_FILENAME     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           def_path         = 'C:\Temp\'&lt;/P&gt;&lt;P&gt;           mask             = ',&lt;STRONG&gt;.&lt;/STRONG&gt;,&lt;STRONG&gt;.&lt;/STRONG&gt;.'&lt;/P&gt;&lt;P&gt;           mode             = 'O'&lt;/P&gt;&lt;P&gt;           title            = 'Select File '(007)&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;           filename         = p_name&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         RC               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;           inv_winsys       = 1&lt;/P&gt;&lt;P&gt;           no_batch         = 2&lt;/P&gt;&lt;P&gt;           selection_cancel = 3&lt;/P&gt;&lt;P&gt;           selection_error  = 4&lt;/P&gt;&lt;P&gt;           OTHERS           = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin the show &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read data from input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM transfer_xcel_to_itab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  LOOP AT itab_xcel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  load data in work area, used inside 'at new' block&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    wa_xcel = itab_xcel.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  each unique part-plant combn marks begining of new routing defn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AT NEW werks.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    if num-of-trnas-in-session = 0, create new BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF v_trans_in_ssn IS INITIAL.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_SESSION_OPEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    begin new bdc script for rtg create trans&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fill in bdc-data for rtg header screens&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM BDC_BUILD_SCRIPT_FOR_HDR.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  fill in bdc-data for each opertion in the routing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM BDC_BUILD_SCRIPT_FOR_OPS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  end of all recs corresponding to the unique part-plant combn, marks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the end of routing defn.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AT END OF werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fill in the bdc-data to save the routing defn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM BDC_BUILD_SCRIPT_FOR_TEND.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    insert the bdc script as a BDC transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM BDC_SUBMIT_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    keep track of how many BDC transactions were inserted in the BDC&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ADD 1 TO v_trans_in_ssn.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    if the user-specified num of trans in BDC session is reached OR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    if end of input file is reached, close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF v_trans_in_ssn = p_trnssn or&lt;/P&gt;&lt;P&gt;         l_tabix = v_lines_in_xcel.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_SESSION_CLOSE.&lt;/P&gt;&lt;P&gt;        CLEAR v_trans_in_ssn.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Top-of-page.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_HEADER'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT1       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT2       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT3       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM TRANSFER_XCEL_TO_ITAB                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Transfer Xcel Spreadsheet to SAP Internal Table               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM transfer_xcel_to_itab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the tab-delimited file into itab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            filename            = p_name&lt;/P&gt;&lt;P&gt;            filetype            = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           filelength          = flength&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            data_tab            = itab_xcel&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            conversion_error    = 1&lt;/P&gt;&lt;P&gt;            file_open_error     = 2&lt;/P&gt;&lt;P&gt;            file_read_error     = 3&lt;/P&gt;&lt;P&gt;            invalid_table_width = 4&lt;/P&gt;&lt;P&gt;            invalid_type        = 5&lt;/P&gt;&lt;P&gt;            no_batch            = 6&lt;/P&gt;&lt;P&gt;            unknown_error       = 7&lt;/P&gt;&lt;P&gt;            OTHERS              = 8.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  sort the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SORT itab_xcel BY matnr werks.&lt;/P&gt;&lt;P&gt;    CLEAR v_lines_in_xcel.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if no data in the file - error out&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DESCRIBE TABLE itab_xcel LINES v_lines_in_xcel.&lt;/P&gt;&lt;P&gt;    IF v_lines_in_xcel IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE: / 'No data in input file'.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if file upload failed - error out&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE: / 'Error reading input file'.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_SESSION_OPEN                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Open BDC Session                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_SESSION_OPEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create bdc session name = prefix-from-selectn-screen + nnnn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ADD 1 TO v_ssnnr.&lt;/P&gt;&lt;P&gt;  CONCATENATE p_bdcpfx v_ssnnr INTO v_ssnname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;open new bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            client              = sy-mandt&lt;/P&gt;&lt;P&gt;            group               = v_ssnname&lt;/P&gt;&lt;P&gt;            keep                = p_keep&lt;/P&gt;&lt;P&gt;            user                = p_uname&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            client_invalid      = 1&lt;/P&gt;&lt;P&gt;            destination_invalid = 2&lt;/P&gt;&lt;P&gt;            group_invalid       = 3&lt;/P&gt;&lt;P&gt;            group_is_locked     = 4&lt;/P&gt;&lt;P&gt;            holddate_invalid    = 5&lt;/P&gt;&lt;P&gt;            internal_error      = 6&lt;/P&gt;&lt;P&gt;            queue_error         = 7&lt;/P&gt;&lt;P&gt;            running             = 8&lt;/P&gt;&lt;P&gt;            system_lock_error   = 9&lt;/P&gt;&lt;P&gt;            user_invalid        = 10&lt;/P&gt;&lt;P&gt;            OTHERS              = 11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT_FOR_HDR                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build BDC                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_build_script_for_hdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_sttag LIKE rc271-sttag,&lt;/P&gt;&lt;P&gt;        l_matnr LIKE rc27m-matnr,&lt;/P&gt;&lt;P&gt;        l_mapl  LIKE mapl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;clear bdc-data itab - begin of new bdc transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR   itab_bdc_tab.&lt;/P&gt;&lt;P&gt;  REFRESH itab_bdc_tab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read material cross reference tables to determine sap part#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM read_matnr_cross_ref USING wa_xcel-matnr&lt;/P&gt;&lt;P&gt;                                     wa_xcel-werks&lt;/P&gt;&lt;P&gt;                               CHANGING l_matnr.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read any existing rtg group counters from MAPL table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear l_mapl.&lt;/P&gt;&lt;P&gt;  select * into l_mapl&lt;/P&gt;&lt;P&gt;    from mapl up to 1 rows&lt;/P&gt;&lt;P&gt;   where matnr = l_matnr and&lt;/P&gt;&lt;P&gt;         werks = wa_xcel-werks and&lt;/P&gt;&lt;P&gt;         plnty = 'R' and&lt;/P&gt;&lt;P&gt;         loekz = space.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bdc script for routing header screens&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;initial screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          USING: 'X' 'SAPLCPDI'         '1010',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '/00',&lt;/P&gt;&lt;P&gt;                 ' ' 'RC27M-MATNR'      l_matnr,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC27M-WERKS'      wa_xcel-werks,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-VBELN'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-POSNR'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-PSPNR'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-PLNNR'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-AENNR'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-STTAG'      wa_xcel-datuv,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-REVLV'      space,&lt;/P&gt;&lt;P&gt;                 ' ' 'RC271-PROFIDNETZ' space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;overview screen (lists all existing group counters)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the following screen will be included in bdc only if there was atleast&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;one good group counter defined already for this part-plant combn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not l_mapl is initial.&lt;/P&gt;&lt;P&gt;    PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;            USING: 'X' 'SAPLCPDI'         '5200',	&lt;/P&gt;&lt;P&gt;                   ' ' 'BDC_OKCODE'       '=ANLG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header details screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;          USING: 'X' 'SAPLCPDA'         '1200',	&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '/00',&lt;/P&gt;&lt;P&gt;                 ' ' 'PLKOD-VERWE'      wa_xcel-VERWE,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLKOD-STATU'      wa_xcel-STATU,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLKOD-SLWBEZ'     wa_xcel-SLWBEZ,	&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header details screen, goto operations overview screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCPDA'         '1200',	&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=VOUE'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT_FOR_OPS                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build BDC                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_BUILD_SCRIPT_FOR_OPS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bdc script for routing operations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;operaions overview screen, insert new line for the operaion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          USING: 'X' 'SAPLCPDI'         '5400',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_CURSOR'       'PLPOD-VORNR(01)',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=EINF',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;operation overview screen, goto operation detail screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCPDI'         '5400',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_CURSOR'       'PLPOD-VORNR(01)',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=PICK',&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VORNR(01)'  wa_xcel-VORNR,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ARBPL(01)'  wa_xcel-ARBPL,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;operation detail screen,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCPDO'         '1200',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '/00',&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-STEUS'      wa_xcel-STEUS,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-LTXA1'      wa_xcel-LTXA1,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-BMSCH'      wa_xcel-BMSCH,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-MEINH'      wa_xcel-MEINH,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGW01'      wa_xcel-VGW01,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGE01'      wa_xcel-VGE01,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGW02'      wa_xcel-VGW02,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGE02'      wa_xcel-VGE02,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGW03'      wa_xcel-VGW03,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGE03'      wa_xcel-VGE03,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGW04'      wa_xcel-VGW04,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGE04'      wa_xcel-VGE04,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGW05'      wa_xcel-VGW05,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-VGE05'      wa_xcel-VGE05.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if no fields in the inputfile for activity#6 (on the screen)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;are given then do not include it in the bdc script as they&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MIGHT NOT be available on the operation detail screen at all&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not wa_xcel-VGW06 is initial or&lt;/P&gt;&lt;P&gt;     not wa_xcel-VGE06 is initial or&lt;/P&gt;&lt;P&gt;     not wa_xcel-LAR06 is initial.&lt;/P&gt;&lt;P&gt;    PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;            USING: ' ' 'PLPOD-VGW06'      wa_xcel-VGW06,&lt;/P&gt;&lt;P&gt;                   ' ' 'PLPOD-VGE06'      wa_xcel-VGE06.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;continue with operation detail screen,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;          USING: ' ' 'PLPOD-ZLMAX'      wa_xcel-ZLMAX,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ZEILM'      wa_xcel-ZEILM,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ZWNOR'      wa_xcel-ZWNOR,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ZEIWN'      wa_xcel-ZEIWN,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ZTNOR'      wa_xcel-ZTNOR,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ZEITN'      wa_xcel-ZEITN,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-RSANZ'      wa_xcel-RSANZ,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-ANZMA'      wa_xcel-ANZMA,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-CKSELKZ'    wa_xcel-CKSELKZ,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-INFNR'      wa_xcel-INFNR,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-EKORG'      wa_xcel-EKORG,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-EBELN'      wa_xcel-EBELN,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-EBELP'      wa_xcel-EBELP,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-SORTL'      wa_xcel-SORTL,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-MATKL'      wa_xcel-MATKL,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-EKGRP'      wa_xcel-EKGRP,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-LIFNR'      wa_xcel-LIFNR,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-PLIFZ'      wa_xcel-PLIFZ,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-PEINH'      wa_xcel-PEINH,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-SAKTO'      wa_xcel-SAKTO,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-PREIS'      wa_xcel-PREIS,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-WAERS'      wa_xcel-WAERS,&lt;/P&gt;&lt;P&gt;                 ' ' 'PLPOD-QPART'      wa_xcel-QPART,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;operation detail screen, go to the op overview scrn to add another op&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCPDO'         '1200',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=BACK'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;			&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT_FOR_TEND                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build BDC                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_BUILD_SCRIPT_FOR_TEND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;operatin detail screen, save the routing defn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BDC_BUILD_SCRIPT_RECORD&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;          USING: 'X' 'SAPLCPDI'         '5400',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=BU'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;			&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_SUBMIT_TRANSACTION                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Submit BDC Session                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_SUBMIT_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Load BDC script as a trqansction in BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            tcode          = v_tcode&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            dynprotab      = itab_bdc_tab&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            internal_error = 01&lt;/P&gt;&lt;P&gt;            not_open       = 02&lt;/P&gt;&lt;P&gt;            queue_error    = 03&lt;/P&gt;&lt;P&gt;            tcode_invalid  = 04.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT_RECORD                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_BUILD_SCRIPT_RECORD USING dynbegin name value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR itab_bdc_tab.&lt;/P&gt;&lt;P&gt;  IF dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;    MOVE: name  TO itab_bdc_tab-program,&lt;/P&gt;&lt;P&gt;          value TO itab_bdc_tab-dynpro,&lt;/P&gt;&lt;P&gt;          'X'   TO itab_bdc_tab-dynbegin.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE: name  TO itab_bdc_tab-fnam,&lt;/P&gt;&lt;P&gt;          value TO itab_bdc_tab-fval.&lt;/P&gt;&lt;P&gt;    SHIFT itab_bdc_tab-fval LEFT DELETING LEADING SPACE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND itab_bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_SESSION_CLOSE                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Close BDC Session                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_SESSION_CLOSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_open    = 1&lt;/P&gt;&lt;P&gt;            queue_error = 2&lt;/P&gt;&lt;P&gt;            OTHERS      = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE : /  'Session created:', v_ssnname,&lt;/P&gt;&lt;P&gt;            50 '# of transactions:', v_trans_in_ssn.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report     : ZMPPN001&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type       : Include&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Author     : Chetan Shah&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date       : 05/05/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transport  : DV3K919472&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transaction: ??&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description: Common miscelleneous form routines used in more then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             one program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    Modification Log&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date       Programmer    Request #    Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;05/05/2005 Chetan Shah   DV3K919472   Initial coding&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INCLUDE ZMPPN001                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  read_matnr_cross_ref&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM read_matnr_cross_ref USING    pi_matnr   "SMI legacy part#&lt;/P&gt;&lt;P&gt;                                   pi_werks   "SMI plant&lt;/P&gt;&lt;P&gt;                          CHANGING pe_matnr.  "SAP part#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_tablename(20) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pi_matnr   = SMI legacy part#&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pi_werks   = SMI plant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pe_matnr   = SAP part#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;based in given plant#, decide which cross-reference&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table is to be used&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE pi_werks.&lt;/P&gt;&lt;P&gt;    WHEN '0101'.&lt;/P&gt;&lt;P&gt;      l_tablename = 'ZMSMI_SIMP_RAW'.&lt;/P&gt;&lt;P&gt;    WHEN '0103'.&lt;/P&gt;&lt;P&gt;      l_tablename = 'ZMSMI_FERR_RAW'.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    this is basically snapper plant (0102) and all its related&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    warehouse-plants. Plant 0110 which is a warehouse-plant for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    snapper can have production parts.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      l_tablename = 'ZMSMI_SNAP_RAW'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read the cross-reference&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR pe_matnr.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE cmatnr INTO pe_matnr&lt;/P&gt;&lt;P&gt;    FROM (l_tablename)&lt;/P&gt;&lt;P&gt;   WHERE matnr = pi_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the cross-reference table had SAP-part# as blank OR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the cross-reference read failed,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;return back the SMI part#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF pe_matnr IS INITIAL OR&lt;/P&gt;&lt;P&gt;     sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    pe_matnr = pi_matnr.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " read_matnr_cross_ref&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ALE Sample program :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;look at BD10 Transaction to send materials &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward Points if it is helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Jun 2007 15:46:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sample-programs/m-p/2333250#M513582</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-03T15:46:49Z</dc:date>
    </item>
  </channel>
</rss>

