<?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: Material Cost estimate modification in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/material-cost-estimate-modification/m-p/4071589#M973437</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes thread closed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Prioz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 05 Feb 2010 03:39:02 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2010-02-05T03:39:02Z</dc:date>
    <item>
      <title>Material Cost estimate modification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/material-cost-estimate-modification/m-p/4071588#M973436</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;&lt;/P&gt;&lt;P&gt;I want to modified this report and add cost estimate value from MBEW (field is STPRS) for each material  to this report. I have used the table MBEW but unable to locate where to start.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone have a look and comment on this report &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  command_extract                    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*CLASS cl_gui_control DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;*CLASS cl_gui_frontend_services DEFINITION LOAD.&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:&lt;/P&gt;&lt;P&gt;  kna1,&lt;/P&gt;&lt;P&gt;  knb1,&lt;/P&gt;&lt;P&gt;  knvv,&lt;/P&gt;&lt;P&gt;  mara,&lt;/P&gt;&lt;P&gt;  mast,                                       "JPC20061107&lt;/P&gt;&lt;P&gt;  marc,&lt;/P&gt;&lt;P&gt;  makt,&lt;/P&gt;&lt;P&gt;  sscrfields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: BEGIN OF gc_status,&lt;/P&gt;&lt;P&gt;             acc  TYPE zcrstat1 VALUE ' ACC',&lt;/P&gt;&lt;P&gt;             hol  TYPE zcrstat1 VALUE ' HOL',&lt;/P&gt;&lt;P&gt;             sto  TYPE zcrstat1 VALUE ' STO',&lt;/P&gt;&lt;P&gt;             ok   TYPE zcrstat1 VALUE '  OK',&lt;/P&gt;&lt;P&gt;             hold TYPE zcrstat1 VALUE 'HOLD',&lt;/P&gt;&lt;P&gt;           END OF gc_status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: BEGIN OF gc_reason,&lt;/P&gt;&lt;P&gt;             000 TYPE zreason VALUE '000',&lt;/P&gt;&lt;P&gt;             001 TYPE zreason VALUE '001',&lt;/P&gt;&lt;P&gt;             002 TYPE zreason VALUE '002',&lt;/P&gt;&lt;P&gt;             003 TYPE zreason VALUE '003',&lt;/P&gt;&lt;P&gt;             004 TYPE zreason VALUE '004',&lt;/P&gt;&lt;P&gt;             005 TYPE zreason VALUE '005',&lt;/P&gt;&lt;P&gt;             006 TYPE zreason VALUE '006',&lt;/P&gt;&lt;P&gt;             007 TYPE zreason VALUE '007',&lt;/P&gt;&lt;P&gt;             008 TYPE zreason VALUE '008',&lt;/P&gt;&lt;P&gt;             010 TYPE zreason VALUE '010',&lt;/P&gt;&lt;P&gt;             011 TYPE zreason VALUE '011',&lt;/P&gt;&lt;P&gt;             021 TYPE zreason VALUE '021',&lt;/P&gt;&lt;P&gt;             022 TYPE zreason VALUE '022',&lt;/P&gt;&lt;P&gt;             023 TYPE zreason VALUE '023',&lt;/P&gt;&lt;P&gt;             024 TYPE zreason VALUE '024',&lt;/P&gt;&lt;P&gt;             025 TYPE zreason VALUE '025',&lt;/P&gt;&lt;P&gt;             026 TYPE zreason VALUE '026',&lt;/P&gt;&lt;P&gt;             999 TYPE zreason VALUE '999',&lt;/P&gt;&lt;P&gt;           END OF gc_reason.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_kna1_fields,&lt;/P&gt;&lt;P&gt;         kunnr TYPE kna1-kunnr,&lt;/P&gt;&lt;P&gt;         sperr TYPE kna1-sperr,&lt;/P&gt;&lt;P&gt;         aufsd TYPE kna1-aufsd,&lt;/P&gt;&lt;P&gt;         lifsd TYPE kna1-lifsd,&lt;/P&gt;&lt;P&gt;         faksd TYPE kna1-faksd,&lt;/P&gt;&lt;P&gt;         loevm TYPE kna1-loevm,&lt;/P&gt;&lt;P&gt;       END OF ty_kna1_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_knb1_fields,&lt;/P&gt;&lt;P&gt;         kunnr TYPE knb1-kunnr,&lt;/P&gt;&lt;P&gt;         bukrs TYPE knb1-bukrs,&lt;/P&gt;&lt;P&gt;         sperr TYPE knb1-sperr,&lt;/P&gt;&lt;P&gt;         loevm TYPE knb1-loevm,&lt;/P&gt;&lt;P&gt;       END OF ty_knb1_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_knvv_fields,&lt;/P&gt;&lt;P&gt;         kunnr TYPE knvv-kunnr,&lt;/P&gt;&lt;P&gt;         vkorg TYPE knvv-vkorg,&lt;/P&gt;&lt;P&gt;         vtweg TYPE knvv-vtweg,&lt;/P&gt;&lt;P&gt;         spart TYPE knvv-spart,&lt;/P&gt;&lt;P&gt;         aufsd TYPE knvv-aufsd,&lt;/P&gt;&lt;P&gt;         lifsd TYPE knvv-lifsd,&lt;/P&gt;&lt;P&gt;         faksd TYPE knvv-faksd,&lt;/P&gt;&lt;P&gt;       END OF ty_knvv_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_knkk_fields,&lt;/P&gt;&lt;P&gt;         kunnr TYPE knkk-kunnr,&lt;/P&gt;&lt;P&gt;         kkber TYPE knkk-kkber,&lt;/P&gt;&lt;P&gt;         ctlpc TYPE knkk-ctlpc,&lt;/P&gt;&lt;P&gt;         crblb TYPE knkk-crblb,&lt;/P&gt;&lt;P&gt;         knkli TYPE knkk-knkli,&lt;/P&gt;&lt;P&gt;         klimk TYPE knkk-klimk,&lt;/P&gt;&lt;P&gt;         skfor TYPE knkk-skfor,&lt;/P&gt;&lt;P&gt;         ssobl TYPE knkk-ssobl,&lt;/P&gt;&lt;P&gt;       END OF ty_knkk_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_cust_stat_output,&lt;/P&gt;&lt;P&gt;         kunnr(10) TYPE c, "Customer #&lt;/P&gt;&lt;P&gt;         stat(4)   TYPE c, "Customer status&lt;/P&gt;&lt;P&gt;       END OF ty_cust_stat_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_customers,&lt;/P&gt;&lt;P&gt;    kunnr(10)  TYPE c,  " Customer #&lt;/P&gt;&lt;P&gt;    div1(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    name1(32)  TYPE c,  " Customer name&lt;/P&gt;&lt;P&gt;    div2(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    altkn(8)   TYPE c,  " Old Customer #&lt;/P&gt;&lt;P&gt;    div3(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    stras(30)  TYPE c,  " Street&lt;/P&gt;&lt;P&gt;    div4(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    ort01(20)  TYPE c,  " City&lt;/P&gt;&lt;P&gt;    div5(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    regio(3)   TYPE c,  " State&lt;/P&gt;&lt;P&gt;    div6(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    pstlz(4)   TYPE c,  " Postcode&lt;/P&gt;&lt;P&gt;    div7(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    telf1(14)  TYPE c,                                      " Phone 1&lt;/P&gt;&lt;P&gt;    div8(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    telf2(14)  TYPE c,                                      " Phone 2&lt;/P&gt;&lt;P&gt;    div9(1)    TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    erdat(10)  TYPE c,  " date&lt;/P&gt;&lt;P&gt;    div10(1)   TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;    splant(2)  TYPE c,  " plant&lt;/P&gt;&lt;P&gt;    div11(1)   TYPE c,  " Pipe delimiter&lt;/P&gt;&lt;P&gt;  END OF ty_customers,&lt;/P&gt;&lt;P&gt;  it_ty_customers TYPE ty_customers OCCURS 0,&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_custstat,&lt;/P&gt;&lt;P&gt;    kunnr(11)  TYPE c,  " Customer #&lt;/P&gt;&lt;P&gt;    company(2) TYPE c,  " #&lt;/P&gt;&lt;P&gt;    status(3)  TYPE c,  " acc,cod,hol,&lt;/P&gt;&lt;P&gt;  END OF ty_custstat,&lt;/P&gt;&lt;P&gt;  it_ty_custstat TYPE ty_custstat OCCURS 0.&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_materialm,&lt;/P&gt;&lt;P&gt;    matnr(12)  TYPE c,  " Material #&lt;/P&gt;&lt;P&gt;    maktx2(40) TYPE c,  " Command sales desc.&lt;/P&gt;&lt;P&gt;    maktx(16)  TYPE c,  " Basic description&lt;/P&gt;&lt;P&gt;    extwg(6)   TYPE c,  " External Material Group&lt;/P&gt;&lt;P&gt;    flag1(1)   TYPE c,  "&lt;/P&gt;&lt;P&gt;    flag2(1)   TYPE c,  "&lt;/P&gt;&lt;P&gt;    flag3(1)   TYPE c,  "&lt;/P&gt;&lt;P&gt;    flag4(1)   TYPE c,  "&lt;/P&gt;&lt;P&gt;  END OF ty_materialm,&lt;/P&gt;&lt;P&gt;  it_ty_materialm TYPE ty_materialm OCCURS 0,&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_materialp,&lt;/P&gt;&lt;P&gt;    matnr(12)  TYPE c,  " Material #&lt;/P&gt;&lt;P&gt;    werks(4)   TYPE c,  " plant&lt;/P&gt;&lt;P&gt;    batch(1)   TYPE c,  " download to batch&lt;/P&gt;&lt;P&gt;  END OF ty_materialp,&lt;/P&gt;&lt;P&gt;  it_ty_materialp TYPE ty_materialp OCCURS 0.&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_bom,&lt;/P&gt;&lt;P&gt;    matnr(12)  TYPE c,  " Material #&lt;/P&gt;&lt;P&gt;    werks(4)   TYPE c,  " Plant&lt;/P&gt;&lt;P&gt;    posnr(3)   TYPE c,  " position&lt;/P&gt;&lt;P&gt;    idnrk(12)  TYPE c,  " BOM material #&lt;/P&gt;&lt;P&gt;    menge(10)  TYPE c,  " Quantity&lt;/P&gt;&lt;P&gt;    meins(3)   TYPE c,  " Unit of Measure&lt;/P&gt;&lt;P&gt;  END OF ty_bom,&lt;/P&gt;&lt;P&gt;  it_ty_bom TYPE ty_bom OCCURS 0,&lt;/P&gt;&lt;P&gt;*Start of block of changes for JPC20061107&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_bom_sapfmt,&lt;/P&gt;&lt;P&gt;    matnr   TYPE MAST-MATNR,  " Material #&lt;/P&gt;&lt;P&gt;    werks   TYPE MAST-WERKS,  " Plant&lt;/P&gt;&lt;P&gt;    posnr   TYPE STPO-POSNR,  " position&lt;/P&gt;&lt;P&gt;    idnrk   TYPE STPO-IDNRK,  " BOM material #&lt;/P&gt;&lt;P&gt;    menge   TYPE STPO-MENGE,  " Quantity&lt;/P&gt;&lt;P&gt;    meins   TYPE STPO-MEINS,  " Unit of Measure&lt;/P&gt;&lt;P&gt;    potx1   TYPE STPO-POTX1,  " Text description for BOM&lt;/P&gt;&lt;P&gt;  END OF ty_bom_sapfmt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; BEGIN OF ty_bomlist,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   matnr      LIKE mast-matnr,  " Material #&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   stlnr      LIKE mast-stlnr,  " BOM #&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   posnr      LIKE stpo-posnr,  " BOM item#&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   idnrk      LIKE stpo-idnrk,  " BOM material #&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   menge      LIKE stpo-menge,  " BOM material qty&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   meins      LIKE stpo-meins,  " BOM material uom&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; END OF ty_bomlist,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; it_ty_bomlist TYPE ty_bomlist OCCURS 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Ending block of changes for JPC20061107&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection screen definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK gen WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;p_dir like rlgrap-filename obligatory, " extract directory&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  p_ccust TYPE c DEFAULT ' ' AS CHECKBOX,   " Check box customers&lt;/P&gt;&lt;P&gt;  p_cmatm TYPE c DEFAULT ' ' AS CHECKBOX,   " Check box Materials&lt;/P&gt;&lt;P&gt;  p_cbom  TYPE c DEFAULT ' ' AS CHECKBOX,   " Check box BOMs&lt;/P&gt;&lt;P&gt;  p_ccst  TYPE c DEFAULT ' ' AS CHECKBOX.   " Check box credit stat&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-006.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_gui RADIOBUTTON GROUP rg1 USER-COMMAND u01,&lt;/P&gt;&lt;P&gt;  p_svr RADIOBUTTON GROUP rg1 DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK a.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK gen.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK cust WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_dcust LIKE filepath-pathintern DEFAULT 'Z_COMMAND_CUST_EXTRACT',&lt;/P&gt;&lt;P&gt;  p_fcust LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;  p_dcomp LIKE knb1-bukrs,&lt;/P&gt;&lt;P&gt;  p_dsale LIKE knvv-vkorg,&lt;/P&gt;&lt;P&gt;  p_dwerk(3) TYPE c.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK cust.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK matnr WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_dmatm LIKE filepath-pathintern&lt;/P&gt;&lt;P&gt;               DEFAULT 'Z_COMMAND_MATERIAL_EXTRACT',&lt;/P&gt;&lt;P&gt;  p_fmatm LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;  p_fmatp LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;  p_dwerks LIKE marc-werks,&lt;/P&gt;&lt;P&gt;  p_dspras LIKE makt-spras,&lt;/P&gt;&lt;P&gt;  p_dbatch(1) TYPE c,&lt;/P&gt;&lt;P&gt;  p_dflag1(1) TYPE c,&lt;/P&gt;&lt;P&gt;  p_dflag2(1) TYPE c,&lt;/P&gt;&lt;P&gt;  p_dflag3(1) TYPE c,&lt;/P&gt;&lt;P&gt;  p_dflag4(1) TYPE c.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;  s_dextwg FOR mara-extwg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK matnr.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK bom WITH FRAME TITLE text-004.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_dbom LIKE filepath-pathintern DEFAULT 'Z_COMMAND_BOM_EXTRACT',&lt;/P&gt;&lt;P&gt;  p_fbom LIKE rlgrap-filename.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;p_bwerks LIKE mast-werks.          "Made a select-optoin JPC20061107&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;  s_bmatnr FOR MARA-MATNR,                                "JPC20061107&lt;/P&gt;&lt;P&gt;  s_bwerks FOR MAST-WERKS no-extension no intervals,      "JPC20061107&lt;/P&gt;&lt;P&gt;  s_bextwg FOR mara-extwg.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK bom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK ccst WITH FRAME TITLE text-005.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_dccst LIKE filepath-pathintern&lt;/P&gt;&lt;P&gt;               DEFAULT 'Z_COMMAND_CUST_STAT_EXTRACT',&lt;/P&gt;&lt;P&gt;  p_fccst LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;  p_fccst2 LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;  p_fccstl LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-007.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_csall RADIOBUTTON GROUP gp2.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_csdlt RADIOBUTTON GROUP gp2 DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_append RADIOBUTTON GROUP GP3 DEFAULT 'X', "Append files output to server for cust credit data ?&lt;/P&gt;&lt;P&gt;            p_owrite RADIOBUTTON GROUP GP3.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;  s_kunnr FOR kna1-kunnr.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK ccst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: clsdir TYPE REF TO cl_gui_frontend_services.&lt;/P&gt;&lt;P&gt;DATA: strfolder TYPE string.&lt;/P&gt;&lt;P&gt;DATA: folderln TYPE i.&lt;/P&gt;&lt;P&gt;DATA: gva_error(1) TYPE c VALUE ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="13" type="ul"&gt;&lt;P&gt;Initial procedure on START ***************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  p_fcust = 'CUST.prn'.&lt;/P&gt;&lt;P&gt;  p_fmatm = 'MATM.prn'.&lt;/P&gt;&lt;P&gt;  p_fmatp = 'MATP.prn'.&lt;/P&gt;&lt;P&gt;  p_fbom  = 'BOM.prn'.&lt;/P&gt;&lt;P&gt;  p_fccst = 'CCSTAT.prn'.&lt;/P&gt;&lt;P&gt;  p_fccst2 = 'CCSTATC.prn'.&lt;/P&gt;&lt;P&gt;  p_fccstl = 'CCSTATL.prn'.&lt;/P&gt;&lt;P&gt;  s_dextwg-option = 'BT'.&lt;/P&gt;&lt;P&gt;  s_dextwg-low = '1'.&lt;/P&gt;&lt;P&gt;  s_dextwg-high = '8'.&lt;/P&gt;&lt;P&gt;  APPEND s_dextwg.&lt;/P&gt;&lt;P&gt;  s_bextwg-option = 'BT'.&lt;/P&gt;&lt;P&gt;  s_bextwg-low = '1'.&lt;/P&gt;&lt;P&gt;  s_bextwg-high = '1'.&lt;/P&gt;&lt;P&gt;  APPEND s_bextwg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;  IF p_ccust EQ 'X' AND ( p_fcust IS INITIAL OR p_dcust IS INITIAL ).&lt;/P&gt;&lt;P&gt;    MESSAGE s000(zppu)&lt;/P&gt;&lt;P&gt;    WITH 'You must specify the file details for the customer data'.&lt;/P&gt;&lt;P&gt;    gva_error = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_cmatm EQ 'X' AND ( p_fmatm IS INITIAL OR&lt;/P&gt;&lt;P&gt;                          p_fmatp IS INITIAL OR&lt;/P&gt;&lt;P&gt;                          p_dmatm IS INITIAL ).&lt;/P&gt;&lt;P&gt;    MESSAGE s001(zppu)&lt;/P&gt;&lt;P&gt;    WITH 'You must specify the file details for the material data'.&lt;/P&gt;&lt;P&gt;    gva_error = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_cbom EQ 'X' AND ( p_fbom IS INITIAL OR p_dbom IS INITIAL ).&lt;/P&gt;&lt;P&gt;    MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;    WITH 'You must specify the file details for the BOM data'.&lt;/P&gt;&lt;P&gt;    gva_error = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_cbom EQ 'X'.&lt;/P&gt;&lt;P&gt;    IF s_bwerks-low is initial.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'You must specify a plant to run BOM extract for'.&lt;/P&gt;&lt;P&gt;      gva_error = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF LINES( s_bwerks ) &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'You can only specify 1 plant for BOM extract'.&lt;/P&gt;&lt;P&gt;      gva_error = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_ccst EQ 'X' AND ( p_fccst IS INITIAL OR&lt;/P&gt;&lt;P&gt;                         p_fccst2 IS INITIAL OR&lt;/P&gt;&lt;P&gt;                         p_fccstl IS INITIAL OR&lt;/P&gt;&lt;P&gt;                         p_dccst IS INITIAL ).&lt;/P&gt;&lt;P&gt;    MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;    WITH 'You must specify the file details for the customer'&lt;/P&gt;&lt;P&gt;         'status data'.&lt;/P&gt;&lt;P&gt;    gva_error = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  PERFORM user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fcust.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dcust p_fcust.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fmatm.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dmatm p_fmatm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fmatp.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dmatm p_fmatp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fbom.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dbom p_fbom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccst.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dccst p_fccst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccst2.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dccst p_fccst2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccstl.&lt;/P&gt;&lt;P&gt;  PERFORM get_gui_filename USING p_dccst p_fccstl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data selection execution.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: lwa_kna1 TYPE kna1,&lt;/P&gt;&lt;P&gt;        lwa_knb1 TYPE knb1,&lt;/P&gt;&lt;P&gt;        lwa_knvv TYPE knvv.&lt;/P&gt;&lt;P&gt;  DATA: lwa_marc TYPE marc,&lt;/P&gt;&lt;P&gt;        lwa_mara TYPE marav,&lt;/P&gt;&lt;P&gt;        lwa_makt TYPE makt.&lt;/P&gt;&lt;P&gt;  DATA: lit_marav TYPE marav OCCURS 0.&lt;/P&gt;&lt;P&gt;  DATA: lit_customers TYPE it_ty_customers,&lt;/P&gt;&lt;P&gt;        lwa_customers TYPE ty_customers.&lt;/P&gt;&lt;P&gt;  DATA: lit_custstat  TYPE it_ty_custstat,&lt;/P&gt;&lt;P&gt;        lwa_custstat  TYPE ty_custstat.&lt;/P&gt;&lt;P&gt;  DATA: lit_materialm TYPE it_ty_materialm,&lt;/P&gt;&lt;P&gt;        lwa_materialm TYPE ty_materialm.&lt;/P&gt;&lt;P&gt;  DATA: lit_materialp TYPE it_ty_materialp,&lt;/P&gt;&lt;P&gt;        lwa_materialp TYPE ty_materialp.&lt;/P&gt;&lt;P&gt;*(del)DATA: lwa_bomlist TYPE ty_bomlist,           "JPC20061107&lt;/P&gt;&lt;P&gt;*(del)  lit_bomlist TYPE it_ty_bomlist.            "JPC20061107&lt;/P&gt;&lt;P&gt;  DATA: lwa_bom TYPE ty_bom_sapfmt,&lt;/P&gt;&lt;P&gt;        lit_bom TYPE it_ty_bom WITH HEADER LINE.   "JPC20061107&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      lit_bom TYPE it_ty_bom.                    "JPC20061107&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: output_file   TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: lock_file     TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: lva_mssage    TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: lva_matnr(18) TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: lva_date      TYPE datum.&lt;/P&gt;&lt;P&gt;  DATA: txtper(3)     TYPE c.&lt;/P&gt;&lt;P&gt;  DATA: custper       TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: custcount     TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: itemnum       TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK gva_error &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_ccust EQ 'X'. " Do the customer file extract&lt;/P&gt;&lt;P&gt;    PERFORM extract_customer_details.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_cmatm EQ 'X'. " Do the Material file extract&lt;/P&gt;&lt;P&gt;    PERFORM extract_material_details.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_cbom EQ 'X'. " Do the BOM file extract&lt;/P&gt;&lt;P&gt;    PERFORM extract_bom_details.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_ccst EQ 'X'.  " Do the customer credit status file extract&lt;/P&gt;&lt;P&gt;    PERFORM extract_credit_status_details.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&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  extract_customer_details&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM extract_customer_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM knb1&lt;/P&gt;&lt;P&gt;  INTO lwa_knb1&lt;/P&gt;&lt;P&gt;  WHERE bukrs = p_dcomp.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING lwa_knb1 TO lwa_customers.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING lwa_knb1 TO lwa_custstat.&lt;/P&gt;&lt;P&gt;    MOVE '#' TO lwa_custstat-company.&lt;/P&gt;&lt;P&gt;    MOVE p_dwerk TO lwa_customers-splant.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------" /&gt;&lt;P&gt;WG1K903075: Start Delete---*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     move: '|' to lwa_customers-div1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div3,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div4,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div5,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div6,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div7,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div8,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div9,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div10,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           '|' to lwa_customers-div11.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------" /&gt;&lt;P&gt;WG1K903075: End Delete-----*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------" /&gt;&lt;P&gt;WG1K903075: Start Insert---*&lt;/P&gt;&lt;P&gt;    MOVE: ' ' TO lwa_customers-div1,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div2,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div3,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div4,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div5,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div6,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div7,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div8,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div9,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div10,&lt;/P&gt;&lt;P&gt;          ' ' TO lwa_customers-div11.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------" /&gt;&lt;P&gt;WG1K903075: End Insert-----*&lt;/P&gt;&lt;P&gt;    APPEND lwa_customers TO lit_customers.&lt;/P&gt;&lt;P&gt;    APPEND lwa_custstat TO lit_custstat.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lit_customers LINES custcount.&lt;/P&gt;&lt;P&gt;  LOOP AT lit_customers INTO lwa_customers.&lt;/P&gt;&lt;P&gt;    txtper = 100 * sy-tabix / custcount.&lt;/P&gt;&lt;P&gt;    custper = txtper.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM kna1&lt;/P&gt;&lt;P&gt;    INTO lwa_kna1&lt;/P&gt;&lt;P&gt;    WHERE kunnr = lwa_customers-kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING lwa_kna1 TO lwa_customers.&lt;/P&gt;&lt;P&gt;    lva_date = lwa_customers-erdat.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        date_internal            = lva_date&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        date_external            = lwa_customers-erdat&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        date_internal_is_invalid = 1&lt;/P&gt;&lt;P&gt;        OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;    REPLACE ALL OCCURRENCES OF '.'&lt;/P&gt;&lt;P&gt;    IN lwa_customers-erdat WITH '/'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = lwa_customers-kunnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = lwa_customers-kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: lwa_customers-kunnr RIGHT-JUSTIFIED TO lwa_customers-kunnr.&lt;/P&gt;&lt;P&gt;    MODIFY lit_customers FROM lwa_customers.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Percentage indicator display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lva_mssage = 'Extracting customers'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        percentage = custper&lt;/P&gt;&lt;P&gt;        text       = lva_mssage.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM get_file_path USING p_dcust p_fcust output_file.&lt;/P&gt;&lt;P&gt;    OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT lit_customers INTO lwa_customers.&lt;/P&gt;&lt;P&gt;        TRANSFER lwa_customers TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_fcust TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = output_file&lt;/P&gt;&lt;P&gt;        filetype = 'ASC'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab = lit_customers&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS   = 11.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  output_file = custcount.&lt;/P&gt;&lt;P&gt;  CONCATENATE&lt;/P&gt;&lt;P&gt;    output_file&lt;/P&gt;&lt;P&gt;    ' Customers extracted'&lt;/P&gt;&lt;P&gt;  INTO&lt;/P&gt;&lt;P&gt;    lva_mssage.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   message lva_mssage type 'I'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " extract_customer_details&lt;/P&gt;&lt;P&gt;&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  extract_material_details&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM extract_material_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select mara&lt;SUB&gt;matnr mara&lt;/SUB&gt;maktx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          mara&lt;SUB&gt;matkl marc&lt;/SUB&gt;werks&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;  FROM marav AS mara&lt;/P&gt;&lt;P&gt;    INNER JOIN marc AS marc&lt;/P&gt;&lt;P&gt;      ON marc~matnr EQ mara~matnr&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF lwa_mara&lt;/P&gt;&lt;P&gt;  WHERE marc~werks = p_dwerks&lt;/P&gt;&lt;P&gt;    AND mara~spras = 'EN'&lt;/P&gt;&lt;P&gt;    AND mara~extwg IN s_dextwg.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING lwa_mara TO lwa_materialm.&lt;/P&gt;&lt;P&gt;    WRITE: lwa_mara-matnr TO lwa_materialm-matnr.&lt;/P&gt;&lt;P&gt;    MOVE: p_dflag1 TO lwa_materialm-flag1,&lt;/P&gt;&lt;P&gt;          p_dflag2 TO lwa_materialm-flag2,&lt;/P&gt;&lt;P&gt;          p_dflag3 TO lwa_materialm-flag3,&lt;/P&gt;&lt;P&gt;          p_dflag4 TO lwa_materialm-flag4.&lt;/P&gt;&lt;P&gt;    APPEND lwa_materialm TO lit_materialm.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lit_materialm LINES custcount.&lt;/P&gt;&lt;P&gt;  LOOP AT lit_materialm INTO lwa_materialm.&lt;/P&gt;&lt;P&gt;    txtper = 100 * sy-tabix / custcount.&lt;/P&gt;&lt;P&gt;    custper = txtper.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_materialp.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_mara.&lt;/P&gt;&lt;P&gt;    MOVE: lwa_materialm-matnr TO lwa_materialp-matnr,&lt;/P&gt;&lt;P&gt;          p_dwerks            TO lwa_materialp-werks,&lt;/P&gt;&lt;P&gt;          p_dbatch            TO lwa_materialp-batch.&lt;/P&gt;&lt;P&gt;    APPEND lwa_materialp TO lit_materialp.&lt;/P&gt;&lt;P&gt;    MOVE: lwa_materialm-matnr TO lva_matnr.&lt;/P&gt;&lt;P&gt;    MOVE: lva_matnr TO lwa_mara-matnr.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE maktx FROM makt&lt;/P&gt;&lt;P&gt;    INTO lwa_materialm-maktx2&lt;/P&gt;&lt;P&gt;    WHERE matnr = lwa_mara-matnr&lt;/P&gt;&lt;P&gt;    AND spras = p_dspras.&lt;/P&gt;&lt;P&gt;    IF lwa_materialm-maktx2 IS INITIAL.&lt;/P&gt;&lt;P&gt;      lwa_materialm-maktx2 = lwa_materialm-maktx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY lit_materialm FROM lwa_materialm.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Percentage indicator display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lva_mssage = 'Extracting materials'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        percentage = custper&lt;/P&gt;&lt;P&gt;        text       = lva_mssage.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM get_file_path USING p_dmatm p_fmatm output_file.&lt;/P&gt;&lt;P&gt;    OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT lit_materialm INTO lwa_materialm.&lt;/P&gt;&lt;P&gt;        TRANSFER lwa_materialm TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_fmatm TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename              = output_file&lt;/P&gt;&lt;P&gt;        filetype              = 'ASC'&lt;/P&gt;&lt;P&gt;        write_field_separator = ' '&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab              = lit_materialm&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS                = 11.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM get_file_path USING p_dmatm p_fmatp output_file.&lt;/P&gt;&lt;P&gt;    OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT lit_materialp INTO lwa_materialp.&lt;/P&gt;&lt;P&gt;        TRANSFER lwa_materialp TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_fmatp TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename              = output_file&lt;/P&gt;&lt;P&gt;        filetype              = 'ASC'&lt;/P&gt;&lt;P&gt;        write_field_separator = ' '&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab              = lit_materialp&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS                = 11.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  REFRESH lit_materialm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " extract_material_details&lt;/P&gt;&lt;P&gt;&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  extract_bom_details&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM extract_bom_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Lines below commented out and replaced with SELECT from ABAP Query run from&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;transaction ZBOM.  Previously duplicate materials were selected. JPC20061107&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; REFRESH lit_materialm.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FROM marav AS mara&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INNER JOIN marc AS marc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ON marc&lt;SUB&gt;matnr EQ mara&lt;/SUB&gt;matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; INTO CORRESPONDING FIELDS OF lwa_mara&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WHERE marc~werks = p_bwerks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND mara~spras = 'EN'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND mara~extwg IN s_bextwg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND lwa_mara TO lit_marav.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DESCRIBE TABLE lit_marav LINES custcount.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT lit_marav INTO lwa_mara.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Percentage indicator calculation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   txtper = 100 * sy-tabix / custcount.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   custper = txtper.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     mast~matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     mast~stlnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     stpo~posnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     stpo~idnrk&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     stpo~menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     stpo~meins&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FROM mast AS mast&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     LEFT OUTER JOIN stpo AS stpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ON stpo&lt;SUB&gt;stlnr EQ mast&lt;/SUB&gt;stlnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; INTO lwa_bomlist&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WHERE mast~matnr = lwa_mara-matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR lwa_bom.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE-CORRESPONDING lwa_bomlist TO lwa_bom.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: lwa_bomlist-matnr TO lwa_bom-matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF lwa_bomlist-idnrk IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE: 'BACKBIN' TO lwa_bom-idnrk.&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;       WRITE: lwa_bomlist-idnrk TO lwa_bom-idnrk.&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;     MOVE: lwa_bomlist-posnr TO itemnum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: itemnum TO lwa_bom-posnr RIGHT-JUSTIFIED.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       write: lwa_bomlist-menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       to lwa_bom-menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       decimals 2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: p_bwerks TO lwa_bom-werks.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND lwa_bom TO lit_bom.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Percentage indicator display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lva_mssage = 'Extracting material B.O.Ms'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&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;       percentage = custper&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       text       = lva_mssage.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  select MAST&lt;SUB&gt;MATNR MAST&lt;/SUB&gt;WERKS STPO&lt;SUB&gt;POSNR STPO&lt;/SUB&gt;IDNRK STPO&lt;SUB&gt;MENGE STPO&lt;/SUB&gt;MEINS            "JPC20061220&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select MAST~MATNR MAST~WERKS STPO~POSNR STPO~IDNRK STPO~MENGE STPO~MEINS STPO~POTX1 "JPC20061220&lt;/P&gt;&lt;P&gt;      into lwa_bom&lt;/P&gt;&lt;P&gt;      from ( MAST&lt;/P&gt;&lt;P&gt;           inner join STKO&lt;/P&gt;&lt;P&gt;           on  STKO~STLAL = MAST~STLAL&lt;/P&gt;&lt;P&gt;           and STKO~STLNR = MAST~STLNR&lt;/P&gt;&lt;P&gt;           and STKO~WRKAN = MAST~WERKS&lt;/P&gt;&lt;P&gt;           inner join MARA  as MARA_H&lt;/P&gt;&lt;P&gt;           on  MARA_H~MATNR = MAST~MATNR&lt;/P&gt;&lt;P&gt;           left outer join STAS&lt;/P&gt;&lt;P&gt;           on  STAS~STLAL = STKO~STLAL&lt;/P&gt;&lt;P&gt;           and STAS~STLNR = STKO~STLNR&lt;/P&gt;&lt;P&gt;           and STAS~STLTY = STKO~STLTY&lt;/P&gt;&lt;P&gt;           inner join STPO&lt;/P&gt;&lt;P&gt;           on  STPO~STLKN = STAS~STLKN&lt;/P&gt;&lt;P&gt;           and STPO~STLNR = STAS~STLNR&lt;/P&gt;&lt;P&gt;           and STPO~STLTY = STAS~STLTY&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         inner join MARA                   JPC20061220&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           left outer join MARA             "JPC20061220&lt;/P&gt;&lt;P&gt;           on  MARA~MATNR = STPO~IDNRK )&lt;/P&gt;&lt;P&gt;         where MARA_H~MATNR in s_bmatnr&lt;/P&gt;&lt;P&gt;           and MAST~WERKS   in s_bwerks&lt;/P&gt;&lt;P&gt;           and MARA_H~EXTWG in s_bextwg.&lt;/P&gt;&lt;P&gt;    clear lit_bom.&lt;/P&gt;&lt;P&gt;    WRITE lwa_bom-matnr TO lit_bom-matnr.&lt;/P&gt;&lt;P&gt;    MOVE  lwa_bom-werks TO lit_bom-werks.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = lwa_bom-posnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = lit_bom-posnr.&lt;/P&gt;&lt;P&gt;    SHIFT lit_bom-posnr right deleting trailing space.&lt;/P&gt;&lt;P&gt;    IF lwa_bom-idnrk IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WRITE 'BACKBIN'     TO lit_bom-idnrk.               JPC20061220&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WRITE lwa_bom-potx1 TO lit_bom-idnrk.              "JPC20061220&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE lwa_bom-idnrk TO lit_bom-idnrk.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MOVE: lwa_bom-menge TO lit_bom-menge,&lt;/P&gt;&lt;P&gt;          lwa_bom-meins TO lit_bom-meins.&lt;/P&gt;&lt;P&gt;    APPEND lit_bom.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT lit_bom ascending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ending for lines inserted for change 20061107&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.  "write to server&lt;/P&gt;&lt;P&gt;    PERFORM get_file_path USING p_dbom p_fbom output_file.&lt;/P&gt;&lt;P&gt;    OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      custcount = lines( lit_bom ).&lt;/P&gt;&lt;P&gt;      LOOP AT lit_bom.&lt;/P&gt;&lt;P&gt;        txtper = 100 * sy-tabix / custcount.&lt;/P&gt;&lt;P&gt;        custper = txtper.&lt;/P&gt;&lt;P&gt;        lva_mssage = 'Extracting material B.O.Ms'.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;          EXPORTING percentage = custper&lt;/P&gt;&lt;P&gt;                    text       = lva_mssage.&lt;/P&gt;&lt;P&gt;        TRANSFER lit_bom TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_fbom TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename              = output_file&lt;/P&gt;&lt;P&gt;        filetype              = 'ASC'&lt;/P&gt;&lt;P&gt;        write_field_separator = ' '&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab              = lit_bom&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS                = 11.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " extract_bom_details&lt;/P&gt;&lt;P&gt;&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  get_file_path&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LOGICAL_PATH_NAME   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FILENAME            text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FILENAME_WITH_PATH  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_file_path USING p_logical_path_name p_filename&lt;/P&gt;&lt;P&gt;                         p_filename_with_path.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_opsys TYPE sy-opsys,&lt;/P&gt;&lt;P&gt;        l_blank_filename TYPE c,&lt;/P&gt;&lt;P&gt;        l_filename TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE 'WN32' TO l_opsys.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE 'WN' TO l_opsys.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_filename IS INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE 'XXX' TO l_filename.&lt;/P&gt;&lt;P&gt;    MOVE 'X' TO l_blank_filename.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_filename TO l_filename.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME_USING_PATH'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      logical_path               = p_logical_path_name&lt;/P&gt;&lt;P&gt;      operating_system           = l_opsys&lt;/P&gt;&lt;P&gt;      file_name                  = l_filename&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name_with_path        = p_filename_with_path&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      path_not_found             = 1&lt;/P&gt;&lt;P&gt;      missing_parameter          = 2&lt;/P&gt;&lt;P&gt;      operating_system_not_found = 3&lt;/P&gt;&lt;P&gt;      file_system_not_found      = 4&lt;/P&gt;&lt;P&gt;      OTHERS                     = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT l_blank_filename IS INITIAL.&lt;/P&gt;&lt;P&gt;    REPLACE ALL OCCURRENCES OF 'XXX' IN p_filename_with_path WITH space.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_file_path&lt;/P&gt;&lt;P&gt;&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  value_request_p_fcust&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_gui_filename USING p_path p_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_fdir TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;  PERFORM get_file_path USING p_path space&lt;/P&gt;&lt;P&gt;                              l_fdir.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      def_path         = l_fdir&lt;/P&gt;&lt;P&gt;      mask             = ',&lt;STRONG&gt;.prn,&lt;/STRONG&gt;.prn.'&lt;/P&gt;&lt;P&gt;      title            = 'Select Excel file for download'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filename         = p_filename&lt;/P&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;ENDFORM.                    " value_request_p_fcust&lt;/P&gt;&lt;P&gt;&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  extract_credit_status_details&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM extract_credit_status_details .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_credit_stat   TYPE STANDARD TABLE OF zint_credit_stat,&lt;/P&gt;&lt;P&gt;        l_credit_stat    TYPE zint_credit_stat,&lt;/P&gt;&lt;P&gt;        l_current_stat1  TYPE zcrstat1,&lt;/P&gt;&lt;P&gt;        l_current_stat2  TYPE zcrstat2,&lt;/P&gt;&lt;P&gt;        l_current_reason TYPE zreason,&lt;/P&gt;&lt;P&gt;        lt_output_stat   TYPE STANDARD TABLE OF zint_credit_stat,&lt;/P&gt;&lt;P&gt;        l_output_stat    TYPE zint_credit_stat,&lt;/P&gt;&lt;P&gt;        lt_output1       TYPE STANDARD TABLE OF ty_cust_stat_output,&lt;/P&gt;&lt;P&gt;        lt_output2       TYPE STANDARD TABLE OF ty_cust_stat_output,&lt;/P&gt;&lt;P&gt;        l_output         TYPE ty_cust_stat_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT a~mandt a~kunnr a~name1 b~curstat1 b~curstat2 b~curtimestamp&lt;/P&gt;&lt;P&gt;         b~curreason b~prevstat1 b~prevstat2 b~prvtimestamp&lt;/P&gt;&lt;P&gt;         b~prevreason&lt;/P&gt;&lt;P&gt;    INTO TABLE lt_credit_stat&lt;/P&gt;&lt;P&gt;    FROM kna1 AS a&lt;/P&gt;&lt;P&gt;    LEFT OUTER JOIN zint_credit_stat AS b&lt;/P&gt;&lt;P&gt;    ON a~kunnr = b~kunnr&lt;/P&gt;&lt;P&gt;    WHERE a~kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_credit_stat LINES custcount.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_credit_stat INTO l_credit_stat.&lt;/P&gt;&lt;P&gt;    txtper = 100 * sy-tabix / custcount.&lt;/P&gt;&lt;P&gt;    custper = txtper.&lt;/P&gt;&lt;P&gt;    PERFORM determine_current_status USING l_credit_stat-kunnr&lt;/P&gt;&lt;P&gt;                                           l_current_stat1&lt;/P&gt;&lt;P&gt;                                           l_current_stat2&lt;/P&gt;&lt;P&gt;                                           l_current_reason.&lt;/P&gt;&lt;P&gt;    IF NOT p_csdlt IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Only do delta download&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF  l_current_stat1 NE l_credit_stat-curstat1 OR&lt;/P&gt;&lt;P&gt;          l_current_stat2 NE l_credit_stat-curstat2.&lt;/P&gt;&lt;P&gt;        PERFORM add_record_to_output TABLES lt_output_stat&lt;/P&gt;&lt;P&gt;                                     USING  l_current_stat1&lt;/P&gt;&lt;P&gt;                                            l_current_stat2&lt;/P&gt;&lt;P&gt;                                            l_current_reason&lt;/P&gt;&lt;P&gt;                                            l_credit_stat.&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;    Download all records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM add_record_to_output TABLES lt_output_stat&lt;/P&gt;&lt;P&gt;                                   USING  l_current_stat1&lt;/P&gt;&lt;P&gt;                                          l_current_stat2&lt;/P&gt;&lt;P&gt;                                          l_current_reason&lt;/P&gt;&lt;P&gt;                                          l_credit_stat.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Percentage indicator display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lva_mssage = 'Extracting customer status'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        percentage = custper&lt;/P&gt;&lt;P&gt;        text       = lva_mssage.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create output table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT lt_output_stat INTO l_output_stat.&lt;/P&gt;&lt;P&gt;    CLEAR l_output.&lt;/P&gt;&lt;P&gt;    WRITE l_output_stat-kunnr TO l_output-kunnr.&lt;/P&gt;&lt;P&gt;    SHIFT l_output-kunnr RIGHT DELETING TRAILING space.&lt;/P&gt;&lt;P&gt;    MOVE l_output_stat-curstat1 TO l_output-stat.&lt;/P&gt;&lt;P&gt;    APPEND l_output TO lt_output1.&lt;/P&gt;&lt;P&gt;    MOVE l_output_stat-curstat2 TO l_output-stat.&lt;/P&gt;&lt;P&gt;    APPEND l_output TO lt_output2.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT lt_output1.&lt;/P&gt;&lt;P&gt;  SORT lt_output2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_gui IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Lock File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_file_path USING p_dccst p_fccstl lock_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If the file already exists then abort processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    OPEN DATASET lock_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 8.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Lock file' lock_file 'already exists on server,'&lt;/P&gt;&lt;P&gt;             'processing aborted'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    OPEN DATASET lock_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Lock file' lock_file 'cannot be opened on the server,'&lt;/P&gt;&lt;P&gt;             'processing aborted'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  File 1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_file_path USING p_dccst p_fccst output_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If user requests cust status data to be appended use different OPEN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF p_append is initial.&lt;/P&gt;&lt;P&gt;      OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      OPEN DATASET output_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT lt_output1 INTO l_output.&lt;/P&gt;&lt;P&gt;        TRANSFER l_output TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  File 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_file_path USING p_dccst p_fccst2 output_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If user requests cust status data to be appended use different OPEN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF p_append is initial.&lt;/P&gt;&lt;P&gt;      OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      OPEN DATASET output_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT lt_output2 INTO l_output.&lt;/P&gt;&lt;P&gt;        TRANSFER l_output TO output_file.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET output_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s002(zppu)&lt;/P&gt;&lt;P&gt;        WITH 'Dataset' output_file 'cannot be opened on the server'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    DELETE DATASET lock_file.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE p_fccst TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = output_file&lt;/P&gt;&lt;P&gt;        filetype = 'ASC'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab = lt_output1&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS   = 11.&lt;/P&gt;&lt;P&gt;    MOVE p_fccst2 TO output_file.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = output_file&lt;/P&gt;&lt;P&gt;        filetype = 'ASC'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab = lt_output2&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS   = 11.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_svr IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM update_status_table TABLES lt_output_stat.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  output_file = custcount.&lt;/P&gt;&lt;P&gt;  CONCATENATE&lt;/P&gt;&lt;P&gt;    output_file&lt;/P&gt;&lt;P&gt;    ' Customers extracted'&lt;/P&gt;&lt;P&gt;  INTO&lt;/P&gt;&lt;P&gt;    lva_mssage.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " extract_credit_status_details&lt;/P&gt;&lt;P&gt;&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  user_command&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM user_command .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;    IF screen-name EQ 'P_DCUST' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ '%_P_DCUST_%_APP_%-TEXT' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ 'P_DMATM' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ '%_P_DMATM_%_APP_%-TEXT' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ 'P_DBOM' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ '%_P_DBOM_%_APP_%-TEXT' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ 'P_DCCST' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ '%_P_DCCST_%_APP_%-TEXT' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ 'P_FCCSTL' OR&lt;/P&gt;&lt;P&gt;       screen-name EQ '%_P_FCCSTL_%_APP_%-TEXT'.&lt;/P&gt;&lt;P&gt;      IF p_gui IS INITIAL.&lt;/P&gt;&lt;P&gt;        screen-input = 1.&lt;/P&gt;&lt;P&gt;        screen-output = 1.&lt;/P&gt;&lt;P&gt;        screen-invisible = 0.&lt;/P&gt;&lt;P&gt;        screen-active = 1.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        screen-input = 0.&lt;/P&gt;&lt;P&gt;        screen-output = 0.&lt;/P&gt;&lt;P&gt;        screen-invisible = 1.&lt;/P&gt;&lt;P&gt;        screen-active = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " user_command&lt;/P&gt;&lt;P&gt;&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  determine_current_status&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_L_CREDIT_STAT_KUNNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_CURRENT_STAT1  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_CURRENT_STAT2  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM determine_current_status USING p_kunnr p_stat1 p_stat2 p_reason.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  STATICS: lt_kna1 TYPE STANDARD TABLE OF ty_kna1_fields,&lt;/P&gt;&lt;P&gt;           lt_knb1 TYPE STANDARD TABLE OF ty_knb1_fields,&lt;/P&gt;&lt;P&gt;           lt_knvv TYPE STANDARD TABLE OF ty_knvv_fields,&lt;/P&gt;&lt;P&gt;           lt_knkk TYPE STANDARD TABLE OF ty_knkk_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_kna1  TYPE ty_kna1_fields,&lt;/P&gt;&lt;P&gt;        l_knb1  TYPE ty_knb1_fields,&lt;/P&gt;&lt;P&gt;        l_knvv  TYPE ty_knvv_fields,&lt;/P&gt;&lt;P&gt;        l_knkk  TYPE ty_knkk_fields,&lt;/P&gt;&lt;P&gt;        l_faedt TYPE rfpos-faedt,&lt;/P&gt;&lt;P&gt;        l_days  TYPE p,&lt;/P&gt;&lt;P&gt;        l_used  TYPE rf02l-klprz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF lt_kna1[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM load_kna1 TABLES lt_kna1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF lt_knb1[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM load_knb1 TABLES lt_knb1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF lt_knvv[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM load_knvv TABLES lt_knvv.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF lt_knkk[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM load_knkk TABLES lt_knkk.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE gc_status-acc TO p_stat1.&lt;/P&gt;&lt;P&gt;  MOVE gc_status-ok  TO p_stat2.&lt;/P&gt;&lt;P&gt;  MOVE gc_reason-000 TO p_reason.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Customer Block/Unblock&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE lt_kna1 INTO l_kna1 WITH KEY kunnr = p_kunnr BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT l_kna1-sperr IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-001  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF l_kna1-aufsd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-002  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF l_kna1-lifsd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-003  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF l_kna1-faksd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-004  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF NOT l_kna1-loevm IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-999  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK p_stat1 NE gc_status-sto.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_knb1 INTO l_knb1 WHERE kunnr EQ p_kunnr.&lt;/P&gt;&lt;P&gt;    IF NOT l_kna1-sperr IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-005  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF NOT l_knb1-loevm IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-999  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF p_stat1 EQ gc_status-sto.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK p_stat1 NE gc_status-sto.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_knvv INTO l_knvv WHERE kunnr EQ p_kunnr.&lt;/P&gt;&lt;P&gt;    IF l_knvv-aufsd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-006  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF l_knvv-lifsd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-007  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF l_knvv-faksd EQ '01'.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;      MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;      MOVE gc_reason-008  TO p_reason.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_stat1 EQ gc_status-sto.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK p_stat1 NE gc_status-sto.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_knkk INTO l_knkk WITH KEY kunnr = p_kunnr&lt;/P&gt;&lt;P&gt;                                          kkber = 'BP01'&lt;/P&gt;&lt;P&gt;                                 BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Exceeded Trading Terms&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF l_knkk-ctlpc EQ 'Z03' OR&lt;/P&gt;&lt;P&gt;       l_knkk-ctlpc EQ 'Z04' OR&lt;/P&gt;&lt;P&gt;       l_knkk-ctlpc EQ 'Z05'.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CUSTOMER_OLDEST_OPEN_ITEM'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          i_kkber      = l_knkk-kkber&lt;/P&gt;&lt;P&gt;          i_kunnr      = l_knkk-kunnr&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_faedt      = l_faedt&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          invalid_call = 1&lt;/P&gt;&lt;P&gt;          no_bukrs     = 2&lt;/P&gt;&lt;P&gt;          no_items     = 3&lt;/P&gt;&lt;P&gt;          OTHERS       = 4.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        l_days = sy-datum - l_faedt.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        l_days = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z03' AND l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 45.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hol  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-021  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z04' AND l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 40.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hol  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-022  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z05' AND l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 30.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hol  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-023  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z03' AND NOT l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 45.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-024  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z04' AND NOT l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 40.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-025  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_knkk-ctlpc EQ 'Z05' AND NOT l_knkk-crblb IS INITIAL AND&lt;/P&gt;&lt;P&gt;         l_days GT 30.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-026  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK p_stat1 NE gc_status-sto.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Exceeded Credit Limit Checks&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM get_credit_exposure USING l_knkk-knkli l_knkk-kkber&lt;/P&gt;&lt;P&gt;                                        l_knkk-ctlpc l_knkk-klimk&lt;/P&gt;&lt;P&gt;                                        l_knkk-skfor l_knkk-ssobl&lt;/P&gt;&lt;P&gt;                                        l_used.&lt;/P&gt;&lt;P&gt;      IF l_used GE 95 AND l_knkk-crblb IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hol  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-010  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF l_used GE 95 AND NOT l_knkk-crblb IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-sto  TO p_stat1.&lt;/P&gt;&lt;P&gt;        MOVE gc_status-hold TO p_stat2.&lt;/P&gt;&lt;P&gt;        MOVE gc_reason-011  TO p_reason.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " determine_current_status&lt;/P&gt;&lt;P&gt;&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  load_kna1&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LT_KNA1  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_kna1 TABLES pt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr sperr aufsd lifsd faksd loevm&lt;/P&gt;&lt;P&gt;    INTO TABLE pt_kna1&lt;/P&gt;&lt;P&gt;    FROM kna1&lt;/P&gt;&lt;P&gt;    WHERE kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT pt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " load_kna1&lt;/P&gt;&lt;P&gt;&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  load_knb1&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LT_KNB1  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_knb1 TABLES pt_knb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr bukrs sperr loevm&lt;/P&gt;&lt;P&gt;    INTO TABLE pt_knb1&lt;/P&gt;&lt;P&gt;    FROM knb1&lt;/P&gt;&lt;P&gt;    WHERE kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT pt_knb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " load_knb1&lt;/P&gt;&lt;P&gt;&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  load_knvv&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LT_KNVV  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_knvv TABLES pt_knvv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr vkorg vtweg spart aufsd lifsd faksd&lt;/P&gt;&lt;P&gt;    INTO TABLE pt_knvv&lt;/P&gt;&lt;P&gt;    FROM knvv&lt;/P&gt;&lt;P&gt;    WHERE kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT pt_knvv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " load_knvv&lt;/P&gt;&lt;P&gt;&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  load_knkk&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LT_KNKK  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_knkk TABLES pt_knkk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr kkber ctlpc crblb knkli klimk skfor ssobl&lt;/P&gt;&lt;P&gt;    INTO TABLE pt_knkk&lt;/P&gt;&lt;P&gt;    FROM knkk&lt;/P&gt;&lt;P&gt;    WHERE kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT pt_knkk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " load_knkk&lt;/P&gt;&lt;P&gt;&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  get_credit_exposure&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_L_KNKK_KNKLI  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_KNKK_KKBER  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_KNKK_CTLPC  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_KNKK_KLIMK  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_credit_exposure USING p_knkli TYPE knkk-knkli&lt;/P&gt;&lt;P&gt;                               p_kkber TYPE knkk-kkber&lt;/P&gt;&lt;P&gt;                               p_ctlpc TYPE knkk-ctlpc&lt;/P&gt;&lt;P&gt;                               p_klimk TYPE knkk-klimk&lt;/P&gt;&lt;P&gt;                               p_skfor TYPE knkk-skfor&lt;/P&gt;&lt;P&gt;                               p_ssobl TYPE knkk-ssobl&lt;/P&gt;&lt;P&gt;                               p_used  TYPE rf02l-klprz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_horizon_date TYPE s066-sptag,&lt;/P&gt;&lt;P&gt;        l_open_del     TYPE s067-olikw,&lt;/P&gt;&lt;P&gt;        l_open_inv     TYPE s067-ofakw,&lt;/P&gt;&lt;P&gt;        l_open_ord     TYPE s066-oeikw,&lt;/P&gt;&lt;P&gt;        l_sauft        TYPE knkk-sauft,&lt;/P&gt;&lt;P&gt;        l_oblig        TYPE rf02l-oblig.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SD_CREDIT_HORIZON_DATE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_kkber         = p_kkber&lt;/P&gt;&lt;P&gt;      i_ctlpc         = p_ctlpc&lt;/P&gt;&lt;P&gt;      i_horizon_exist = 'X'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_horizon_date  = l_horizon_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SD_CREDIT_EXPOSURE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      flag_open_delivery = 'X'&lt;/P&gt;&lt;P&gt;      flag_open_invoice  = 'X'&lt;/P&gt;&lt;P&gt;      flag_open_order    = 'X'&lt;/P&gt;&lt;P&gt;      horizon_date       = l_horizon_date&lt;/P&gt;&lt;P&gt;      kkber              = p_kkber&lt;/P&gt;&lt;P&gt;      knkli              = p_knkli&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      open_delivery      = l_open_del&lt;/P&gt;&lt;P&gt;      open_invoice       = l_open_inv&lt;/P&gt;&lt;P&gt;      open_order         = l_open_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_sauft   = l_open_del + l_open_inv + l_open_ord.&lt;/P&gt;&lt;P&gt;  l_oblig   = p_skfor + p_ssobl + l_sauft.&lt;/P&gt;&lt;P&gt;  PERFORM ausschoepfungsgrad_berechnen USING p_klimk l_oblig p_used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_credit_exposure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This form was copied from include MF02CFA0 and not changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      SUBROUTINE AUSSCHOEPFUNGSGRAD_BERECHNEN                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      Ausschöpfungsgrad ( Obligo in % des Kreditlimits)             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      berechnen.                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; -&amp;gt;   A01_KLIMK: Kreditlimit                                        *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; -&amp;gt;   A01_OBLIG: Gesamtobligo                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-&amp;gt;   A01_KLPRZ: Ausschöpfungsgrad in %                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM ausschoepfungsgrad_berechnen USING&lt;/P&gt;&lt;P&gt;            a01_klimk    LIKE knkk-klimk&lt;/P&gt;&lt;P&gt;            a01_oblig    LIKE rf02l-oblig&lt;/P&gt;&lt;P&gt;            a01_klprz    LIKE rf02l-klprz.&lt;/P&gt;&lt;P&gt;*ORM AUSSCHOEPFUNGSGRAD_BERECHNEN&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USING A01_KLIMK A01_OBLIG A01_KLPRZ.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: ld_refe1(16) TYPE p.&lt;/P&gt;&lt;P&gt;  CLEAR: ld_refe1.&lt;/P&gt;&lt;P&gt;  IF a01_klimk  = 0&lt;/P&gt;&lt;P&gt;  OR a01_oblig &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    CLEAR: a01_klprz.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    ld_refe1 = ( a01_oblig * 10000 ) / a01_klimk.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF  a01_klimk = 0&lt;/P&gt;&lt;P&gt;  AND a01_oblig &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    ld_refe1 = 99999.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF ld_refe1 &amp;gt; 99999.&lt;/P&gt;&lt;P&gt;    a01_klprz = 99999 / 100.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  a01_klprz = ld_refe1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    a01_klprz = ld_refe1 / 100.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "AUSSCHOEPFUNGSGRAD_BERECHNEN&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  add_record_to_output&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_L_CURRENT_STAT1  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_CURRENT_STAT2  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_LT_OUTPUT_STAT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM add_record_to_output TABLES pt_output&lt;/P&gt;&lt;P&gt;                          USING  p_current_stat1&lt;/P&gt;&lt;P&gt;                                 p_current_stat2&lt;/P&gt;&lt;P&gt;                                 p_current_reason&lt;/P&gt;&lt;P&gt;                                 p_credit_stat TYPE zint_credit_stat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE p_credit_stat-curstat1     TO p_credit_stat-prevstat1.&lt;/P&gt;&lt;P&gt;  MOVE p_credit_stat-curstat2     TO p_credit_stat-prevstat2.&lt;/P&gt;&lt;P&gt;  MOVE p_credit_stat-curtimestamp TO p_credit_stat-prvtimestamp.&lt;/P&gt;&lt;P&gt;  MOVE p_credit_stat-curreason    TO p_credit_stat-prevreason.&lt;/P&gt;&lt;P&gt;  MOVE p_current_stat1            TO p_credit_stat-curstat1.&lt;/P&gt;&lt;P&gt;  MOVE p_current_stat2            TO p_credit_stat-curstat2.&lt;/P&gt;&lt;P&gt;  CONVERT DATE sy-datlo TIME sy-timlo&lt;/P&gt;&lt;P&gt;    INTO TIME STAMP p_credit_stat-curtimestamp TIME ZONE sy-zonlo.&lt;/P&gt;&lt;P&gt;  MOVE p_current_reason           TO p_credit_stat-curreason.&lt;/P&gt;&lt;P&gt;  APPEND p_credit_stat TO pt_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_record_to_output&lt;/P&gt;&lt;P&gt;&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  update_status_table&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;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_LT_OUTPUT_STAT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM update_status_table TABLES pt_output_stat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MODIFY zint_credit_stat FROM TABLE pt_output_stat.&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " update_status_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regars&lt;/P&gt;&lt;P&gt;P.I&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2008 07:26:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/material-cost-estimate-modification/m-p/4071588#M973436</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-10T07:26:36Z</dc:date>
    </item>
    <item>
      <title>Re: Material Cost estimate modification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/material-cost-estimate-modification/m-p/4071589#M973437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes thread closed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Prioz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Feb 2010 03:39:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/material-cost-estimate-modification/m-p/4071589#M973437</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2010-02-05T03:39:02Z</dc:date>
    </item>
  </channel>
</rss>

