<?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 adding a field in a report in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020802#M714166</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi SDN&lt;/P&gt;&lt;P&gt;    i have a small problem where iam unable to add fields in the final internal table&lt;/P&gt;&lt;P&gt;  i have to add two fields i.e., COMMITMENT AND ACTVALUE from ESUH TABLE&lt;/P&gt;&lt;P&gt;AND the final internal table is l_i_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we have to add only two fields COMMITMENT and a ....variable = COMMITMENT - ACTVALUE. which is already done in the program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here iam attaching a program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: ekpo.&lt;/P&gt;&lt;P&gt;DATA: i_directory_list LIKE rlgrap-filename OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: i_directory_sel LIKE popuptext OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;*{ INSERT PS010306UPGR&lt;/P&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;*} INSERT&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tab,&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       T(1) TYPE X VALUE '09',  "HEX!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t(1) TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab,  "Unicode&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;END OF tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ekpo_konnr LIKE ekpo-konnr.&lt;/P&gt;&lt;P&gt;DATA: ekpo_ktpnr LIKE ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;DATA: END OF t_bapiessrc.&lt;/P&gt;&lt;P&gt;DATA: t_bapiessrc_tab(301)  OCCURS 0." with header line.&lt;/P&gt;&lt;P&gt;DATA: wa_bapiessrc_tab(301).&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_headertext OCCURS 0,&lt;/P&gt;&lt;P&gt;       ext_number LIKE zbapiessrc_chars-ext_number,&lt;/P&gt;&lt;P&gt;       linno(4) TYPE n,&lt;/P&gt;&lt;P&gt;       tcode(20),&lt;/P&gt;&lt;P&gt;       recordname(30),&lt;/P&gt;&lt;P&gt;       txpargraph(2),&lt;/P&gt;&lt;P&gt;       txline(72),&lt;/P&gt;&lt;P&gt;       text_mark,&lt;/P&gt;&lt;P&gt;      END OF t_headertext.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_itemtext OCCURS 0,&lt;/P&gt;&lt;P&gt;       ext_number LIKE zbapiessrc_chars-ext_number,&lt;/P&gt;&lt;P&gt;       ext_line(18),&lt;/P&gt;&lt;P&gt;       linno(4) TYPE n,&lt;/P&gt;&lt;P&gt;       tcode(20),&lt;/P&gt;&lt;P&gt;       recordname(30),&lt;/P&gt;&lt;P&gt;       txpargraph(2),&lt;/P&gt;&lt;P&gt;       txline(72),&lt;/P&gt;&lt;P&gt;       text_mark,&lt;/P&gt;&lt;P&gt;       ext_linno(6),          &lt;/P&gt;&lt;P&gt;      END OF t_itemtext.&lt;/P&gt;&lt;P&gt;DATA: t_headertext_tab(180) OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA: wa_headertext_tab(180).&lt;/P&gt;&lt;P&gt;DATA: t_itemtext_tab(190) OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA: wa_itemtext_tab(190).&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_bapiesllc OCCURS 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ext_number like bapiessrc-ext_number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        INCLUDE STRUCTURE zbapiesllc_chars.&lt;/P&gt;&lt;P&gt;DATA: END OF t_bapiesllc.&lt;/P&gt;&lt;P&gt;DATA: t_bapiesllc_tab(650)  OCCURS 0." with header line.&lt;/P&gt;&lt;P&gt;DATA: wa_bapiesllc_tab(650).&lt;/P&gt;&lt;P&gt;DATA: no_of_files LIKE sy-index.&lt;/P&gt;&lt;P&gt;DATA: perc_uploaded TYPE i.&lt;/P&gt;&lt;P&gt;DATA: text_uploaded(50).&lt;/P&gt;&lt;P&gt;DATA: text_fi_not_upl1(30), text_fi_not_upl2(30).&lt;/P&gt;&lt;P&gt;DATA: continue_yn.&lt;/P&gt;&lt;P&gt;DATA: file TYPE localfile.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS .&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF clbp_content OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE solisti1.&lt;/P&gt;&lt;P&gt;DATA: END OF clbp_content.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA w_mode VALUE 'A'.&lt;/P&gt;&lt;P&gt;CONSTANTS:           c_update        VALUE 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF bdcdata OCCURS 0.       " BDC Table&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcdata.&lt;/P&gt;&lt;P&gt;DATA: END   OF bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF bdcmsgcoll OCCURS 0.    " BDC Messages&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;DATA: END   OF bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA params LIKE pri_params.&lt;/P&gt;&lt;P&gt;DATA list_text LIKE pri_params-prtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: days(1)  TYPE n VALUE 2,&lt;/P&gt;&lt;P&gt;      count(3) TYPE n VALUE 1,&lt;/P&gt;&lt;P&gt;      valid    TYPE c.&lt;/P&gt;&lt;P&gt;DATA t_bapi_essr LIKE bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA t_bapi_essr_log LIKE bapiessrc OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA t_bapi_esll LIKE bapiesllc OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA t_bapi_esll_log LIKE bapiesllc OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF output_prot OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE essr.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;DATA: END OF output_prot.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_sgcses_struc OCCURS 0,&lt;/P&gt;&lt;P&gt;         po_number   LIKE zbapiessrc_chars-po_number,&lt;/P&gt;&lt;P&gt;         po_item     LIKE zbapiessrc_chars-po_item,&lt;/P&gt;&lt;P&gt;         short_text  LIKE zbapiessrc_chars-short_text,&lt;/P&gt;&lt;P&gt;         xblnr       LIKE essr-xblnr,&lt;/P&gt;&lt;P&gt;         ref_date    LIKE zbapiessrc_chars-ref_date,&lt;/P&gt;&lt;P&gt;         service     LIKE zbapiesllc_chars-service,&lt;/P&gt;&lt;P&gt;         flag,&lt;/P&gt;&lt;P&gt;         quantity    LIKE zbapiesllc_chars-quantity,&lt;/P&gt;&lt;P&gt;         final,&lt;/P&gt;&lt;P&gt;      END OF i_sgcses_struc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: l_ses_no LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;         ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;         ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;         werks LIKE ekpo-werks,&lt;/P&gt;&lt;P&gt;         packno LIKE ekpo-packno,&lt;/P&gt;&lt;P&gt;       END OF t_ekpo.&lt;/P&gt;&lt;P&gt;DATA: i_ekpo TYPE STANDARD TABLE OF t_ekpo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &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;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; S E L E C T I O N   S C R E E N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS: p_path TYPE localfile DEFAULT&lt;/P&gt;&lt;P&gt;  'C:	empBasellInterfacesSesSES-Daten'.&lt;/P&gt;&lt;P&gt;***parameters:     p_dismod type ctu_mode      default 'A'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     p_dismod TYPE ctu_mode      DEFAULT 'E'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     p_spnam  TYPE tsp01-rq2name DEFAULT 'SES_UPL.....'&lt;/P&gt;&lt;P&gt;                                                      OBLIGATORY.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_serv AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_text AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_chck AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; A T   S E L E C T I O N   S C R E E N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.&lt;/P&gt;&lt;P&gt;  DATA: len TYPE i,&lt;/P&gt;&lt;P&gt;        testchar(1).&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      mask      = 'C:*.txt'&lt;/P&gt;&lt;P&gt;      static    = 'X'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_name = p_path.&lt;/P&gt;&lt;P&gt;  DESCRIBE FIELD p_path LENGTH len IN CHARACTER MODE.&lt;/P&gt;&lt;P&gt;  DO len TIMES.&lt;/P&gt;&lt;P&gt;    len = len - 1.&lt;/P&gt;&lt;P&gt;    testchar =  p_path+len(1).&lt;/P&gt;&lt;P&gt;    IF testchar = ''.&lt;/P&gt;&lt;P&gt;      len = len + 1.&lt;/P&gt;&lt;P&gt;      p_path = p_path(len).&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; S T A R T   O F   S E L E C T I O N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM select_files.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM spool_settings.                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM upload_files.&lt;/P&gt;&lt;P&gt;  PERFORM select_additional_data.                         &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; E N D   O F   S E L E C T I O N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------" /&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; PERFORM spool_settings.                                 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: perc_uploaded, no_of_files, text_uploaded.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_bapiessrc LINES no_of_files.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop over header-records: for each header-record one call transaction:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_bapiessrc.&lt;/P&gt;&lt;P&gt;    perc_uploaded = ( 100 * sy-tabix ) / no_of_files.&lt;/P&gt;&lt;P&gt;    IF cb_serv = 'X'.&lt;/P&gt;&lt;P&gt;      PERFORM prepare_clipboard.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Upload Service Entry Sheets:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM call_transaction_upload.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Italian Version begin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IMPORT output_prot FROM MEMORY ID 'OUT_PROT'.&lt;/P&gt;&lt;P&gt;      PERFORM write_prot_to_spool.&lt;/P&gt;&lt;P&gt;      FREE MEMORY ID 'OUT_PROT'.&lt;/P&gt;&lt;P&gt;      REFRESH: output_prot.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Italian Version end&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM find_ses_number.                             &lt;/P&gt;&lt;P&gt;      PERFORM check_estimated_value.                      &lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF cb_text = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Upload SES Texts:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM upload_texts.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  start of insert &amp;gt;&amp;gt;&amp;gt;                                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM change_account.                                &lt;/P&gt;&lt;P&gt;    IF cb_serv = 'X'.&lt;/P&gt;&lt;P&gt;      PERFORM release_ses.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  end of insert &amp;lt;&amp;lt;&amp;lt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;In case only text and no services shall be uploaded:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT cb_text IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  In case also services are uploaded this loop won't apply cause&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_headertext-entries are deleted after they were processed in the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     loop above!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_headertext.&lt;/P&gt;&lt;P&gt;      MOVE t_headertext-ext_number TO t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;move t_headertext-ext_number to t_bapiessrc-ref_doc_no. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*only for test cases since data file is not correct:END&lt;/P&gt;&lt;P&gt;      PERFORM upload_texts.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  PERFORM log_upload_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; NEW-PAGE PRINT OFF.                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM delete_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE: / text-001.                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; write: / 'Check spools for correct processing (Transaction SP01)!'.&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;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------" /&gt;&lt;P&gt; T O P   O F   P A G E -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;at user-command&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT USER-COMMAND.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;top of page-during line selection&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="---------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE DURING LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="------------" /&gt;&lt;P&gt; F O R M - R O U T I N E S -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------" /&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  SPLIT_BAPIESSRC&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_bapiessrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_score_time(3),&lt;/P&gt;&lt;P&gt;        l_score_qual(3),&lt;/P&gt;&lt;P&gt;        l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES: esuc.&lt;/P&gt;&lt;P&gt;  DATA: l_packno LIKE ekpo-packno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_bapiessrc, ekpo_konnr, ekpo_ktpnr, ekpo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_bapiessrc-sheet_no      t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;        t_bapiessrc-person_int    t_bapiessrc-person_ext&lt;/P&gt;&lt;P&gt;        t_bapiessrc-location      t_bapiessrc-ref_date&lt;/P&gt;&lt;P&gt;        t_bapiessrc-begdate       t_bapiessrc-enddate&lt;/P&gt;&lt;P&gt;        t_bapiessrc-pckg_no       t_bapiessrc-short_text&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-po_number     t_bapiessrc-po_item  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ekpo_konnr ekpo_ktpnr                         &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-block_ind     t_bapiessrc-score_time&lt;/P&gt;&lt;P&gt;        t_bapiessrc-score_qual    t_bapiessrc-doc_date&lt;/P&gt;&lt;P&gt;        t_bapiessrc-post_date     t_bapiessrc-ref_doc_no&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiessrc-po_number     t_bapiessrc-po_item &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-accasscat     t_bapiessrc-comm_no&lt;/P&gt;&lt;P&gt;        t_bapiessrc-user_field    t_bapiessrc-acceptance&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ekpo_konnr ekpo_ktpnr  t_bapiessrc-final.       &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE '0000000001' TO t_bapiessrc-pckg_no.                 &lt;/P&gt;&lt;P&gt;  SHIFT t_bapiessrc-po_item RIGHT DELETING TRAILING space.&lt;/P&gt;&lt;P&gt;  TRANSLATE t_bapiessrc-po_item USING ' 0'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of delete &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT ekpo_konnr IS INITIAL AND NOT ekpo_ktpnr IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT SINGLE konnr ktpnr FROM ekpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 INTO (ekpo-konnr, ekpo-ktpnr)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 AND   ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE:/  text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-102,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              t_bapiessrc-po_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-103,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              t_bapiessrc-po_item,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-104.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: / text-105.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXIT.&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 ekpo_konnr NE ekpo-konnr OR ekpo_ktpnr NE ekpo-ktpnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE:/ text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-106,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               ekpo_konnr, '/',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               ekpo_ktpnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-107,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               t_bapiessrc-po_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-103, t_bapiessrc-po_item, ')'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE: / text-105.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&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;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;end of delete &amp;lt;&amp;lt;&amp;lt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  " check contract number&lt;/P&gt;&lt;P&gt;  IF NOT ekpo_konnr IS INITIAL AND NOT ekpo_ktpnr IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE konnr ktpnr packno&lt;/P&gt;&lt;P&gt;      FROM ekpo&lt;/P&gt;&lt;P&gt;      INTO (ekpo-konnr, ekpo-ktpnr, l_packno)&lt;/P&gt;&lt;P&gt;      WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;      AND   ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      " no corresponding PO, no update will be performed&lt;/P&gt;&lt;P&gt;      WRITE:/  text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;               text-102,&lt;/P&gt;&lt;P&gt;               t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;               text-103,&lt;/P&gt;&lt;P&gt;               t_bapiessrc-po_item,&lt;/P&gt;&lt;P&gt;               text-104.&lt;/P&gt;&lt;P&gt;      WRITE: / text-105.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      " check contract number against table ESUC first.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE *&lt;/P&gt;&lt;P&gt;        FROM esuc&lt;/P&gt;&lt;P&gt;        WHERE packno EQ l_packno&lt;/P&gt;&lt;P&gt;          AND ebeln EQ ekpo_konnr&lt;/P&gt;&lt;P&gt;          AND ebelp EQ ekpo_ktpnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        " check against PO line&lt;/P&gt;&lt;P&gt;        IF ekpo_konnr NE ekpo-konnr OR ekpo_ktpnr NE ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;          WRITE:/ text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;                  text-106,&lt;/P&gt;&lt;P&gt;                  ekpo_konnr, '/',&lt;/P&gt;&lt;P&gt;                  ekpo_ktpnr,&lt;/P&gt;&lt;P&gt;                  text-107,&lt;/P&gt;&lt;P&gt;                  t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;                  text-103, t_bapiessrc-po_item, ')'.&lt;/P&gt;&lt;P&gt;          WRITE: / text-105.&lt;/P&gt;&lt;P&gt;          EXIT.&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;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE:/ 'External SES', t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;              'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;P&gt;      WRITE: / 'No update of this sheet was accomplished!'.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND t_bapiessrc.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_BAPIESSRC&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  SPLIT_BAPIESLLC&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_bapiesllc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_outl_level(3), l_ovf_tol(3), l_price_unit(5), l_gr_price(23),&lt;/P&gt;&lt;P&gt;        l_target_val(23), l_userf2_num(13), l_quantity(13),&lt;/P&gt;&lt;P&gt;        l_form_val1(13), l_form_val2(13), l_form_val3(13),&lt;/P&gt;&lt;P&gt;        l_form_val4(13), l_form_val5(13), l_ext_number(16).&lt;/P&gt;&lt;P&gt;  CLEAR: t_bapiesllc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ext_number&lt;/P&gt;&lt;P&gt;        t_bapiesllc-pckg_no        t_bapiesllc-line_no&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ext_line       t_bapiesllc-outl_level&lt;/P&gt;&lt;P&gt;        t_bapiesllc-outl_no        t_bapiesllc-outl_ind&lt;/P&gt;&lt;P&gt;        t_bapiesllc-subpckg_no     t_bapiesllc-service&lt;/P&gt;&lt;P&gt;        t_bapiesllc-serv_type      t_bapiesllc-edition&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ssc_item       t_bapiesllc-ext_serv&lt;/P&gt;&lt;P&gt;        t_bapiesllc-quantity       t_bapiesllc-base_uom&lt;/P&gt;&lt;P&gt;        t_bapiesllc-uom_iso        t_bapiesllc-ovf_tol&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ovf_unlim      t_bapiesllc-price_unit&lt;/P&gt;&lt;P&gt;        t_bapiesllc-gr_price       t_bapiesllc-from_line&lt;/P&gt;&lt;P&gt;        t_bapiesllc-to_line        t_bapiesllc-short_text&lt;/P&gt;&lt;P&gt;        t_bapiesllc-distrib        t_bapiesllc-pers_no&lt;/P&gt;&lt;P&gt;        t_bapiesllc-wagetype       t_bapiesllc-pln_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-pln_line       t_bapiesllc-con_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-con_line       t_bapiesllc-tmp_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-tmp_line       t_bapiesllc-ssc_lim&lt;/P&gt;&lt;P&gt;        t_bapiesllc-limit_line     t_bapiesllc-target_val&lt;/P&gt;&lt;P&gt;        t_bapiesllc-basline_no     t_bapiesllc-basic_line&lt;/P&gt;&lt;P&gt;        t_bapiesllc-alternat       t_bapiesllc-bidder&lt;/P&gt;&lt;P&gt;        t_bapiesllc-supp_line      t_bapiesllc-open_qty&lt;/P&gt;&lt;P&gt;        t_bapiesllc-inform         t_bapiesllc-blanket&lt;/P&gt;&lt;P&gt;        t_bapiesllc-eventual       t_bapiesllc-tax_code&lt;/P&gt;&lt;P&gt;        t_bapiesllc-taxjurcode     t_bapiesllc-price_chg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-matl_group     t_bapiesllc-date&lt;/P&gt;&lt;P&gt;        t_bapiesllc-begintime      t_bapiesllc-endtime&lt;/P&gt;&lt;P&gt;        t_bapiesllc-extpers_no     t_bapiesllc-formula&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val1      t_bapiesllc-form_val2&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val3      t_bapiesllc-form_val4&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val5      t_bapiesllc-userf1_num&lt;/P&gt;&lt;P&gt;        t_bapiesllc-userf2_num     t_bapiesllc-userf1_txt&lt;/P&gt;&lt;P&gt;        t_bapiesllc-userf2_txt     t_bapiesllc-hi_line_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_bapiesllc-line_no&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_bapiesllc-line_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE t_bapiesllc-quantity USING ',.'.&lt;/P&gt;&lt;P&gt;  MOVE '0000000002' TO t_bapiesllc-pckg_no.                 "TS20082002&lt;/P&gt;&lt;P&gt;  APPEND t_bapiesllc.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_BAPIESLLC&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  SELECT_FILES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM select_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KCD_FRONT_END_DIRECTORY_READ'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_path              = p_path&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;        E_PURE_PATH         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            e_directory         = i_directory_list&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;           download            = 1&lt;/P&gt;&lt;P&gt;           upload              = 2&lt;/P&gt;&lt;P&gt;           execute             = 3&lt;/P&gt;&lt;P&gt;           directory_not_exist = 4&lt;/P&gt;&lt;P&gt;           directory           = 5&lt;/P&gt;&lt;P&gt;           OTHERS              = 6&lt;/P&gt;&lt;P&gt;           .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&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;    MESSAGE w208(00) WITH 'Enter existing directory'(003).&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  LOOP AT i_directory_list.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_list(1) CA 'KPLT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   check i_directory_list cs '.XLS' or i_directory_list cs '.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHECK i_directory_list CS '.TXT'.&lt;/P&gt;&lt;P&gt;    CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;    MOVE  'X' TO  i_directory_sel-text(1).&lt;/P&gt;&lt;P&gt;    MOVE  i_directory_list(79) TO  i_directory_sel-text+1(79).&lt;/P&gt;&lt;P&gt;    APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_SL018_POPUP_WITH_TEXT_TO_SEL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      popup_title  = 'Select Files for SES-Upload'&lt;/P&gt;&lt;P&gt;      start_column = 10&lt;/P&gt;&lt;P&gt;      start_row    = 1&lt;/P&gt;&lt;P&gt;      end_column   = 50&lt;/P&gt;&lt;P&gt;      end_row      = 16&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sy_ucomm     = sy-ucomm&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      x_popuptext  = i_directory_sel.&lt;/P&gt;&lt;P&gt;*Check which Files shall be uploaded:&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_sel-text(1) NE 'Y'.&lt;/P&gt;&lt;P&gt;    DELETE  i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_directory_sel.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE i_directory_sel LINES no_of_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SELECT_FILES&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  UPLOAD_FILES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM upload_files.&lt;/P&gt;&lt;P&gt;*{ INSERT PS010306UPGR&lt;/P&gt;&lt;P&gt;  DATA: fname TYPE string.&lt;/P&gt;&lt;P&gt;*} INSERT&lt;/P&gt;&lt;P&gt;  LOOP AT i_directory_sel.&lt;/P&gt;&lt;P&gt;    CLEAR: file.&lt;/P&gt;&lt;P&gt;    UNASSIGN: .&lt;/P&gt;&lt;P&gt;    perc_uploaded = ( 100 * sy-tabix ) / no_of_files.&lt;/P&gt;&lt;P&gt;    CONCATENATE i_directory_sel-text+1(31) 'uploaded from disk'&lt;/P&gt;&lt;P&gt;                                                     INTO text_uploaded&lt;/P&gt;&lt;P&gt;                                            SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CONCATENATE p_path i_directory_sel-text+1(31) INTO file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Choose the right structure for &amp;lt;doc_content&amp;gt; and &amp;lt;wa_doc_content&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;depending on file type K, P, T or L via assignment of field symbols:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CASE i_directory_sel-text+1(1).&lt;/P&gt;&lt;P&gt;      WHEN 'K'. "Kopfdaten&lt;/P&gt;&lt;P&gt;        ASSIGN t_bapiessrc_tab   TO .&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'WS_UPLOAD'&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;             FILENAME                = FILE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             DATA_TAB                = &amp;lt;DOC_CONTENT&amp;gt;&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;             CONVERSION_ERROR        = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FILE_OPEN_ERROR         = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FILE_READ_ERROR         = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             INVALID_TABLE_WIDTH     = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             INVALID_TYPE            = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             NO_BATCH                = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             GUI_REFUSE_FILETRANSFER = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             CUSTOMER_ERROR          = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             OTHERS                  = 10.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fname = file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = fname&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        data_tab =  0.&lt;/P&gt;&lt;P&gt;      CLEAR: text_fi_not_upl1, text_fi_not_upl2, continue_yn.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'File' i_directory_sel-text+1(21) ': upload failed!'&lt;/P&gt;&lt;P&gt;                   INTO text_fi_not_upl1 SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      MOVE 'Continue Program?' TO text_fi_not_upl2.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          defaultoption  = 'N'&lt;/P&gt;&lt;P&gt;          textline1      = text_fi_not_upl1&lt;/P&gt;&lt;P&gt;          textline2      = text_fi_not_upl2&lt;/P&gt;&lt;P&gt;          titel          = 'Upload Failed'&lt;/P&gt;&lt;P&gt;          start_column   = 25&lt;/P&gt;&lt;P&gt;          start_row      = 6&lt;/P&gt;&lt;P&gt;          cancel_display = ' '&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          answer         = continue_yn.&lt;/P&gt;&lt;P&gt;      IF continue_yn = 'N'.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move uploaded File records line by line into correct internal table:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiessrc  for K__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiesllc  for P__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_headertext for T__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_itemtext   for L__.txt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT .&lt;/P&gt;&lt;P&gt;          IF NOT sy-subrc IS INITIAL. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;        CASE i_directory_sel-text+1(1).&lt;/P&gt;&lt;P&gt;          WHEN 'K'. "Kopfdaten&lt;/P&gt;&lt;P&gt;            PERFORM split_bapiessrc.&lt;/P&gt;&lt;P&gt;          WHEN 'T'.&lt;/P&gt;&lt;P&gt;            PERFORM split_headertext.&lt;/P&gt;&lt;P&gt;          WHEN 'P'.&lt;/P&gt;&lt;P&gt;            PERFORM split_bapiesllc.&lt;/P&gt;&lt;P&gt;          WHEN 'L'.&lt;/P&gt;&lt;P&gt;            PERFORM split_itemtext.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&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 = perc_uploaded&lt;/P&gt;&lt;P&gt;        text       = text_uploaded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT t_bapiessrc BY ext_number.&lt;/P&gt;&lt;P&gt;  SORT t_headertext BY ext_number linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SORT t_bapiesllc BY ext_number.                         "&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT t_bapiesllc BY ext_number pckg_no line_no.          &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt; sort t_bapiesllc by ext_number line_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  SORT t_itemtext BY ext_number ext_linno ext_line linno.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_FILES&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  PREPARE_CLIPBOARD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM prepare_clipboard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:   clbp_content.&lt;/P&gt;&lt;P&gt;  REFRESH: clbp_content.&lt;/P&gt;&lt;P&gt;  DATA: l_line TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: l_tabix LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  CLEAR l_tabix.&lt;/P&gt;&lt;P&gt;*Assemble the File-Structure out of the internal tables t_bapiessrc&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and t_bapiesllc which is expected by the user exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  exit_saplmlsx_002 and move it to the clipboard:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE 'K' TO clbp_content(1).  "Flag for header record&lt;/P&gt;&lt;P&gt;  MOVE t_bapiessrc TO clbp_content+1(246).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  READ TABLE t_bapiesllc WITH KEY ext_number = t_bapiessrc-comm_no&lt;/P&gt;&lt;P&gt;                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;  MOVE sy-tabix TO l_tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;insert dummy row for connection between pach_no and sub_packno:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR l_line.&lt;/P&gt;&lt;P&gt;  CLEAR: clbp_content, t_bapiesllc.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).  "Flag for service-record&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  MOVE '0000000001' TO t_bapiesllc-pckg_no.&lt;/P&gt;&lt;P&gt;  MOVE '0000000002' TO t_bapiesllc-subpckg_no.&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;16(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;261(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  MOVE 'E' TO clbp_content+2(1).&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;506(27) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end insert&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_bapiesllc FROM l_tabix.&lt;/P&gt;&lt;P&gt;    CLEAR l_line.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    IF t_bapiesllc-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).  "Flag for service-record&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  'P'-service records are split into three clipbord-lines since&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    structure t_bapiesllc is too long for one line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;16(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;261(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    MOVE 'E' TO clbp_content+2(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;506(27) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;******Italy version of upload&lt;/P&gt;&lt;P&gt;  PERFORM include_italy.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; export t_bapiessrc to memory id 'GER_ESSRC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; export t_bapiesllc to memory id 'GER_ESLLC'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EXPORT t_bapi_essr TO MEMORY ID 'GER_ESSRC'.&lt;/P&gt;&lt;P&gt;  EXPORT t_bapi_esll TO MEMORY ID 'GER_ESLLC'.&lt;/P&gt;&lt;P&gt;  CHECK 1 = 2.&lt;/P&gt;&lt;P&gt;******Italy version of upload END&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CLPB_EXPORT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab   = clbp_content&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      clpb_error = 1&lt;/P&gt;&lt;P&gt;      OTHERS     = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PREPARE_CLIPBOARD&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  CALL_TRANSACTION_UPLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM call_transaction_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'RM11RL00'      '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'BDC_OKCODE'    '=UPL'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_LBLNI-LOW'    '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_LBLNI-HIGH'   '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'P_BSTNR'        '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_BSTPO-LOW'    '     '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_BSTPO-HIGH'   '     '.&lt;/P&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set|remove comments for Germ.Version&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_dynpro using: 'SAPLMLSX'      '0480'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'BDC_OKCODE'    '=EXEC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_dynpro using: 'SAPLGRAP'      '0210'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'BDC_OKCODE'    '=UPL_FR_CLP'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'MARKIERT'      'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set; END&lt;/P&gt;&lt;P&gt;  CASE p_dismod.&lt;/P&gt;&lt;P&gt;    WHEN 'A'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=LITE'.&lt;/P&gt;&lt;P&gt;    WHEN 'N'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=HIND'.&lt;/P&gt;&lt;P&gt;    WHEN 'E'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=DARK'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here the call transcation of SAP-standard takes place for creating the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  service entry sheet&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;After SAP-standard call transaction: analyze the popup with the&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set|remove comments for Germ.Version&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=PRI'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_dynpro using: 'SAPLSPRI'      '0100'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=PRIN'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PLIST'    p_spnam.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRIMM'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRREL'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRNEW'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_dynpro using: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=EXEC'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; remove the following line for Germ. version:&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'BDC_OKCODE'    '/00'.&lt;/P&gt;&lt;P&gt;  w_mode = p_dismod.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;currently w_mode and p_dismod are set to the same value:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; foregroud, background or error. But it could also be set to differnt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; values: Foreground for upload clipboard,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL TRANSACTION 'ML81' USING bdcdata MODE w_mode UPDATE c_update&lt;/P&gt;&lt;P&gt;     MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CALL_TRANSACTION_UPLOAD&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  BDC_DYNPRO&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro&lt;/P&gt;&lt;P&gt;     USING program TYPE c&lt;/P&gt;&lt;P&gt;           dynpro  TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;  bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_DYNPRO&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  BDC_FIELD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM bdc_field&lt;/P&gt;&lt;P&gt;      USING fnam TYPE c&lt;/P&gt;&lt;P&gt;            fval TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;  bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_FIELD&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  UPLOAD_TEXTS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM upload_texts.&lt;/P&gt;&lt;P&gt;  DATA l_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  DATA l_tabix_header_start LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA l_tabix_item_start LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA:  p(2) TYPE c.&lt;/P&gt;&lt;P&gt;  DATA:  w  LIKE sy-index.&lt;/P&gt;&lt;P&gt;  DATA:  w_field(20) TYPE c.&lt;/P&gt;&lt;P&gt;  DATA: l_ext_line_save LIKE t_itemtext-ext_line.&lt;/P&gt;&lt;P&gt;  DATA: l_ext_linno_save LIKE t_itemtext-ext_linno.&lt;/P&gt;&lt;P&gt;  DATA: l_extrow(10)."  like ml_esll-extrow.&lt;/P&gt;&lt;P&gt;  DATA: l_messg LIKE message.&lt;/P&gt;&lt;P&gt;  DATA: l_msgno LIKE sy-msgno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; read table t_headertext with key ext_number = t_bapiessrc-ref_doc_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE t_headertext WITH KEY ext_number = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                                   BINARY SEARCH.&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:END&lt;/P&gt;&lt;P&gt;  IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'                 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH text-202.                                   &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE: / text-202.                                     &lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  l_tabix_header_start = sy-tabix.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_lblni&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               where xblnr = t_headertext-ext_number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                WHERE user1 = t_headertext-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;  IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'                &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH text-203.                                   &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE: / text-203.                                     &lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'RM11RL00' '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=ONLI'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'S_LBLNI-LOW' l_lblni. " '1000001748'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_CURSOR'  'P_LIST'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_LIST'      ' '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_DIRECT'    'X'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_LISTU'     ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSR' '0100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=TXT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field using 'ESSR-TXZ01'  t_headertext-txline(40).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=TXBA'.&lt;/P&gt;&lt;P&gt;  CLEAR w.&lt;/P&gt;&lt;P&gt;  ADD 1 TO w.&lt;/P&gt;&lt;P&gt;  LOOP AT t_headertext FROM l_tabix_header_start.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Is t_bapiessrc-ext_number really filled?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF t_headertext-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    UNPACK w TO p.&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(17) = 'RSTXT-TXPARGRAPH('.&lt;/P&gt;&lt;P&gt;    w_field+17(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+19(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_headertext-txpargraph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(13) = 'RSTXT-TXLINE('.&lt;/P&gt;&lt;P&gt;    w_field+13(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+15(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_headertext-txline .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  delete line from internal table so that Upload Texts is not&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      processed twice when perform_upload_texts is called without up-&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      loading services:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DELETE t_headertext.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSR' '0100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=SERV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  'ENTER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_itemtext WITH KEY&lt;/P&gt;&lt;P&gt;                        ext_number = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;  l_tabix_item_start = sy-tabix.&lt;/P&gt;&lt;P&gt;  CLEAR l_ext_line_save.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_itemtext FROM l_tabix_item_start.&lt;/P&gt;&lt;P&gt;    IF t_itemtext-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SHIFT t_itemtext-ext_line RIGHT DELETING TRAILING space.&lt;/P&gt;&lt;P&gt;    TRANSLATE t_itemtext-ext_line USING ' 0'.&lt;/P&gt;&lt;P&gt;    IF ( t_itemtext-ext_line NE l_ext_line_save )&lt;/P&gt;&lt;P&gt;        OR ( t_itemtext-ext_linno NE l_ext_linno_save ).&lt;/P&gt;&lt;P&gt;***find line number:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     break michalska.                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT SINGLE extrow FROM ml_esll INTO l_extrow&lt;/P&gt;&lt;P&gt;                            WHERE extrow = t_itemtext-ext_linno&lt;/P&gt;&lt;P&gt;                              AND srvpos = t_itemtext-ext_line&lt;/P&gt;&lt;P&gt;                              AND ebeln = l_lblni.&lt;/P&gt;&lt;P&gt;      IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  'ENTER'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'RM11P-NEW_ROW'  l_extrow.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  '=ZLT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_CURSOR'  'ESLL-EXTROW(01)'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'RM11P-SELKZ(01)'  'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  '=TXBA'.&lt;/P&gt;&lt;P&gt;      CLEAR w.&lt;/P&gt;&lt;P&gt;      ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    UNPACK w TO p.&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(17) = 'RSTXT-TXPARGRAPH('.&lt;/P&gt;&lt;P&gt;    w_field+17(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+19(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_itemtext-txpargraph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(13) = 'RSTXT-TXLINE('.&lt;/P&gt;&lt;P&gt;    w_field+13(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+15(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_itemtext-txline .&lt;/P&gt;&lt;P&gt;    l_ext_line_save = t_itemtext-ext_line.&lt;/P&gt;&lt;P&gt;    l_ext_linno_save = t_itemtext-ext_linno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=SAV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'ML81' USING bdcdata MODE p_dismod UPDATE c_update&lt;/P&gt;&lt;P&gt;     MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;    IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 text-002,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write at: /1 'Log for text uploads of entry sheet ',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                                           37 l_lblni, 48 ':'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check bdcmsgcoll-msgtyp = 'E' or bdcmsgcoll-msgtyp = 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_messg.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_TEXTS&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  SPLIT_HEADERTEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_headertext.&lt;/P&gt;&lt;P&gt;  DATA:  l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  CLEAR: t_headertext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_headertext-ext_number&lt;/P&gt;&lt;P&gt;        t_headertext-linno&lt;/P&gt;&lt;P&gt;        t_headertext-tcode&lt;/P&gt;&lt;P&gt;        t_headertext-recordname&lt;/P&gt;&lt;P&gt;        t_headertext-txpargraph&lt;/P&gt;&lt;P&gt;        t_headertext-txline&lt;/P&gt;&lt;P&gt;        t_headertext-text_mark.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_headertext-linno&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_headertext-linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_headertext-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF t_headertext-linno = 1.&lt;/P&gt;&lt;P&gt;        WRITE:/ 'External SES', t_headertext-ext_number,&lt;/P&gt;&lt;P&gt;                'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;P&gt;        WRITE: / 'No update of this sheet-texts was accomplished!'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT cb_serv IS INITIAL.&lt;/P&gt;&lt;P&gt;    " check&lt;/P&gt;&lt;P&gt;    READ TABLE t_bapiessrc WITH KEY ext_number = t_headertext-ext_number&lt;/P&gt;&lt;P&gt;                           BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                       &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND t_headertext.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_HEADERTEXT&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  SPLIT_ITEMTEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_itemtext.&lt;/P&gt;&lt;P&gt;  DATA: l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  CLEAR: t_itemtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_number&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_line&lt;/P&gt;&lt;P&gt;        t_itemtext-linno&lt;/P&gt;&lt;P&gt;        t_itemtext-tcode&lt;/P&gt;&lt;P&gt;        t_itemtext-recordname&lt;/P&gt;&lt;P&gt;        t_itemtext-txpargraph&lt;/P&gt;&lt;P&gt;        t_itemtext-txline&lt;/P&gt;&lt;P&gt;        t_itemtext-text_mark&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_linno.            &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_itemtext-ext_linno&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_itemtext-ext_linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                       &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_itemtext-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write:/ 'External SES', t_itemtext-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write: / 'No update of this sheet was accomplished!'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXIT.&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;  APPEND t_itemtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_ITEMTEXT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of delete &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  SPOOL_SETTINGS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM spool_settings.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE p_spnam TO list_text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING  " destination = 'dest'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     copies         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     list_name      = p_spnam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     list_text      = list_text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     immediately    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     release        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     new_list_id    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     expiration     = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_size      = 125&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_count     = 23&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     layout         = 'X_65_132'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     sap_cover_page = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     receiver       = 'SAP*'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     department     = 'System'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_dialog      = 'X'&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;     out_parameters = params&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     valid          = valid.&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; IF valid &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NEW-PAGE PRINT ON PARAMETERS params NO DIALOG.&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;*ENDFORM.                    " SPOOL_SETTINGS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of delete &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  DELETE_FILES&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 delete_files.&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: l_return.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_return TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: fname TYPE string.&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   move space to i_directory_sel-text(1).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE 'X' TO i_directory_sel-text(1).&lt;/P&gt;&lt;P&gt;    MODIFY i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*{ REPLACE                                                  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE'Xdir_file.bat' TO i_directory_sel-text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND i_directory_sel.&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; CLEAR i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE'Xdir_file.txt' TO i_directory_sel-text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_directory_list LIKE rlgrap-filename OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KCD_FRONT_END_DIRECTORY_READ'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_path      = p_path&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      e_directory = l_directory_list&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS      = 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    LOOP AT l_directory_list.&lt;/P&gt;&lt;P&gt;      IF l_directory_list CS 'dir_file.bat'.&lt;/P&gt;&lt;P&gt;        CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;        MOVE'Xdir_file.bat' TO i_directory_sel-text.&lt;/P&gt;&lt;P&gt;        APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;      ELSEIF l_directory_list CS 'dir_file.txt'.&lt;/P&gt;&lt;P&gt;        CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;        MOVE'Xdir_file.txt' TO i_directory_sel-text.&lt;/P&gt;&lt;P&gt;        APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*}&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_SL018_POPUP_WITH_TEXT_TO_SEL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      popup_title  = 'Select Files for DELETION'&lt;/P&gt;&lt;P&gt;      start_column = 10&lt;/P&gt;&lt;P&gt;      start_row    = 1&lt;/P&gt;&lt;P&gt;      end_column   = 50&lt;/P&gt;&lt;P&gt;      end_row      = 16&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sy_ucomm     = sy-ucomm&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      x_popuptext  = i_directory_sel.&lt;/P&gt;&lt;P&gt;*Check which Files shall be uploaded:&lt;/P&gt;&lt;P&gt;  CHECK sy-ucomm = 'OK'.&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_sel-text(1) = 'Y'.&lt;/P&gt;&lt;P&gt;    CLEAR file.&lt;/P&gt;&lt;P&gt;    CONCATENATE p_path i_directory_sel-text+1(31) INTO file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'WS_FILE_DELETE'&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;             FILE   = FILE&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;             RETURN = L_RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fname = file.&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_frontend_services=&amp;gt;file_delete&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = fname&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        rc       = l_return&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS   = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;    IF NOT l_return = '0'.&lt;/P&gt;&lt;P&gt;      MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'&lt;/P&gt;&lt;P&gt;           WITH text-201 i_directory_sel-text+1(31).&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.                    " DELETE_FILES&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  INCLUDE_ITALY&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM include_italy.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$- Start of INCLUDE ZXMLUU24                                --$&lt;STRONG&gt;$&lt;/STRONG&gt;&lt;/P&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;  INCLUDE ZXMLUU24                                                   *&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;*Data structure in DOC_CONTENT:&lt;/P&gt;&lt;P&gt;*1st letter: type - K header / P lines&lt;/P&gt;&lt;P&gt;*2nd letter: line number in DOC_CONTENT which belong to one data line&lt;/P&gt;&lt;P&gt;*3rd letter: if 'E': last line indicator for one data line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA doc_id LIKE  sofolenti1-doc_id.&lt;/P&gt;&lt;P&gt;  DATA l_offset TYPE i.&lt;/P&gt;&lt;P&gt;  DATA lt_bapi_essr LIKE bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;  DATA lt_bapi_esll LIKE bapiesllc OCCURS 0.&lt;/P&gt;&lt;P&gt;  DATA lwa_bapi_essr LIKE bapiessrc.&lt;/P&gt;&lt;P&gt;  DATA lwa_bapi_esll LIKE bapiesllc.&lt;/P&gt;&lt;P&gt;  DATA l_zbapiesllc_chars LIKE zbapiesllc_chars.&lt;/P&gt;&lt;P&gt;  DATA l_zbapiessrc_chars LIKE zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;*field-symbols .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_offset.&lt;/P&gt;&lt;P&gt;  CLEAR sy-uname.&lt;/P&gt;&lt;P&gt;  LOOP AT clbp_content.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF clbp_content(15) CO ' 0123456789'.  "Italy File Structure&lt;/P&gt;&lt;P&gt;      READ TABLE lt_bapi_essr INDEX 1 INTO lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CHECK lwa_bapi_essr-po_number = clbp_content(10).&lt;/P&gt;&lt;P&gt;        CHECK lwa_bapi_essr-po_item   = clbp_content+10(5).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  -&amp;gt; move fields to interface structures:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR: lwa_bapi_essr, lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;      MOVE space TO: l_zbapiesllc_chars, l_zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;      READ TABLE lt_bapi_essr WITH KEY po_number = clbp_content(10)&lt;/P&gt;&lt;P&gt;                                       po_item   = clbp_content+10(5)&lt;/P&gt;&lt;P&gt;                              INTO lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;      IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;        MOVE: clbp_content(10)      TO l_zbapiessrc_chars-po_number,&lt;/P&gt;&lt;P&gt;              clbp_content+10(5)    TO l_zbapiessrc_chars-po_item,&lt;/P&gt;&lt;P&gt;              clbp_content+15(40)   TO l_zbapiessrc_chars-short_text,&lt;/P&gt;&lt;P&gt;              clbp_content+71(8)    TO l_zbapiessrc_chars-ref_date.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING l_zbapiessrc_chars TO lwa_bapi_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      start of insert &amp;gt;&amp;gt;&amp;gt;                                &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF l_zbapiessrc_chars-final EQ 'X'.&lt;/P&gt;&lt;P&gt;          lwa_bapi_essr-fin_entry = l_zbapiessrc_chars-final.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      end of insert &amp;lt;&amp;lt;&amp;lt;                                  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        APPEND lwa_bapi_essr TO lt_bapi_essr.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE: clbp_content+79(18)   TO l_zbapiesllc_chars-service,&lt;/P&gt;&lt;P&gt;            clbp_content+98(13)   TO l_zbapiesllc_chars-quantity.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING l_zbapiesllc_chars TO lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;      APPEND lwa_bapi_esll TO lt_bapi_esll.&lt;/P&gt;&lt;P&gt;    ELSE.                                 "SES for Germany&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; clear l_offset.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; case clbp_content(1).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when 'K'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lt_bapi_essr to &amp;lt;bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lwa_bapi_essr to &amp;lt;wa_bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when 'P'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lt_bapi_esll to &amp;lt;bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lwa_bapi_esll to &amp;lt;wa_bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when others.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endcase.&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;Daten erst in die Struktur des Programms ZPLX0009 überführen und dann&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  je nach Typ move oder write in die einzelnen Felder&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF clbp_content(1) = 'K'.&lt;/P&gt;&lt;P&gt;        MOVE clbp_content+1(246) TO l_zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'P'.&lt;/P&gt;&lt;P&gt;        CASE clbp_content+1(1).&lt;/P&gt;&lt;P&gt;          WHEN 1.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;16(245).&lt;/P&gt;&lt;P&gt;          WHEN 2.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;261(245).&lt;/P&gt;&lt;P&gt;          WHEN 3.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;506(96).&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'L'.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'T'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_offset = ( clbp_content+1(1) - 1 ) * 245.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF clbp_content+2(1) = 'E' OR clbp_content(1) = 'K'.&lt;/P&gt;&lt;P&gt;        CASE clbp_content(1).&lt;/P&gt;&lt;P&gt;          WHEN 'K'.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING l_zbapiessrc_chars TO lwa_bapi_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          start of insert &amp;gt;&amp;gt;&amp;gt;                            "AP13022006i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            IF l_zbapiessrc_chars-final EQ 'X'.&lt;/P&gt;&lt;P&gt;              lwa_bapi_essr-fin_entry = l_zbapiessrc_chars-final.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          end of insert &amp;lt;&amp;lt;&amp;lt;                              "AP13022006i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            APPEND lwa_bapi_essr TO lt_bapi_essr.&lt;/P&gt;&lt;P&gt;          WHEN 'P'.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING l_zbapiesllc_chars TO lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;            APPEND lwa_bapi_esll TO lt_bapi_esll.&lt;/P&gt;&lt;P&gt;          WHEN 'L'.&lt;/P&gt;&lt;P&gt;          WHEN 'T'.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.  "Country determination&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;  MOVE: lt_bapi_essr[] TO t_bapi_essr[],&lt;/P&gt;&lt;P&gt;        lt_bapi_esll[] TO t_bapi_esll[].&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$--- End of INCLUDE ZXMLUU24                                --$&lt;STRONG&gt;$&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INCLUDE_ITALY&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  WRITE_PROT_TO_SPOOL&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 write_prot_to_spool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_message LIKE message.&lt;/P&gt;&lt;P&gt;  DATA: l_msgno(3) TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: l_wa_sgcses_struc LIKE i_sgcses_struc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE output_prot WITH KEY msgid = 'SE'&lt;/P&gt;&lt;P&gt;                                  msgnr = '212'.&lt;/P&gt;&lt;P&gt;*if t_headertext-ext_number ne t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;  IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_bapi_essr TO t_bapi_essr_log.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_bapi_esll TO t_bapi_esll_log.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CHECK NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;No Text Upload if SES Upload was not successful:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DELETE t_headertext WHERE ext_number = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_bapiesllc[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'Ext. Communic. Num',&lt;/P&gt;&lt;P&gt;              20 'Purchase Order', 35 'Item', 46 'Entry Sheet Text',&lt;/P&gt;&lt;P&gt;              87 'Service Number',&lt;/P&gt;&lt;P&gt;             111 'Quantity'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 2 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  LOOP AT t_bapiesllc.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;              20 t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;              35 t_bapiessrc-po_item,&lt;/P&gt;&lt;P&gt;              46 t_bapiesllc-short_text,&lt;/P&gt;&lt;P&gt;              87 t_bapiesllc-service,&lt;/P&gt;&lt;P&gt;             106 t_bapiesllc-quantity RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;  WRITE AT /1 'Error Messages:'.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  LOOP AT output_prot.&lt;/P&gt;&lt;P&gt;    CLEAR: l_message, l_msgno.&lt;/P&gt;&lt;P&gt;    MOVE output_prot-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = output_prot-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = output_prot-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = output_prot-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = output_prot-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = output_prot-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = output_prot-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_message.&lt;/P&gt;&lt;P&gt;    IF NOT output_prot-lblni IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 'Entry Sheet Number:', 22 l_message-msgtx.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 output_prot-msgid(5),&lt;/P&gt;&lt;P&gt;                 6 output_prot-msgtyp,&lt;/P&gt;&lt;P&gt;                 8 l_msgno,&lt;/P&gt;&lt;P&gt;                12 l_message-msgtx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 3.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " WRITE_PROT_TO_SPOOL&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  LOG_UPLOAD_SUCCESS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM log_upload_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_i_ekpo OCCURS 0,&lt;/P&gt;&lt;P&gt;          werks LIKE ekpo-werks,&lt;/P&gt;&lt;P&gt;          konnr LIKE ekpo-konnr,&lt;/P&gt;&lt;P&gt;          ktpnr LIKE ekpo-ktpnr,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          txz01 LIKE ekpo-txz01,&lt;/P&gt;&lt;P&gt;          user1 LIKE essr-user1,&lt;/P&gt;&lt;P&gt;          lwert LIKE essr-lwert,&lt;/P&gt;&lt;P&gt;          waers LIKE essr-waers,                            &lt;/P&gt;&lt;P&gt;        END OF l_i_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_i_kontr OCCURS 0,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          txz01 LIKE ekpo-txz01,&lt;/P&gt;&lt;P&gt;        END OF l_i_kontr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_i_ekpo_2 LIKE l_i_ekpo OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_essr,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          lblni LIKE essr-lblni,&lt;/P&gt;&lt;P&gt;          lwert LIKE essr-lwert,&lt;/P&gt;&lt;P&gt;          user1 LIKE essr-user1,&lt;/P&gt;&lt;P&gt;          waers LIKE essr-waers,                             &lt;/P&gt;&lt;P&gt;        END OF l_essr.&lt;/P&gt;&lt;P&gt;  DATA: l_t_essr LIKE l_essr OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_sy_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;  DATA: l_sy_uname LIKE sy-uname.&lt;/P&gt;&lt;P&gt;  MOVE sy-datum TO l_sy_datum.&lt;/P&gt;&lt;P&gt;  MOVE sy-uname TO l_sy_uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_bapi_essr_log[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT werks konnr ktpnr ebeln ebelp FROM ekpo&lt;/P&gt;&lt;P&gt;               INTO TABLE l_i_ekpo&lt;/P&gt;&lt;P&gt;               FOR ALL ENTRIES IN t_bapi_essr_log&lt;/P&gt;&lt;P&gt;               WHERE ebeln = t_bapi_essr_log-po_number&lt;/P&gt;&lt;P&gt;               AND   ebelp = t_bapi_essr_log-po_item.&lt;/P&gt;&lt;P&gt;    IF NOT l_i_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT ebeln ebelp txz01 FROM ekpo&lt;/P&gt;&lt;P&gt;        INTO TABLE l_i_kontr&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN l_i_ekpo&lt;/P&gt;&lt;P&gt;        WHERE ebeln = l_i_ekpo-konnr&lt;/P&gt;&lt;P&gt;        AND   ebelp = l_i_ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;      SORT l_i_kontr.&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;&lt;/P&gt;&lt;P&gt;  LOOP AT l_i_ekpo.&lt;/P&gt;&lt;P&gt;    CLEAR: l_essr, l_t_essr, l_i_kontr. REFRESH l_t_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single ebeln ebelp max( lblni ) lwert xblnr from essr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            into l_essr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            where ebeln = l_i_ekpo-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   ebelp = l_i_ekpo-ebelp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   erdat = sy-datum&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   ernam = sy-uname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            group by ebeln ebelp  "no lblni!!&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     lwert xblnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT ebeln ebelp lblni lwert user1 FROM essr         &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT ebeln ebelp lblni lwert user1 waers FROM essr   &lt;/P&gt;&lt;P&gt;            INTO TABLE l_t_essr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;            AND   ebelp = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;            AND   erdat = l_sy_datum&lt;/P&gt;&lt;P&gt;            AND   ernam = l_sy_uname.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      SORT l_t_essr BY lblni DESCENDING.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     read table l_t_essr index 1 into l_essr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT l_t_essr.&lt;/P&gt;&lt;P&gt;        READ TABLE t_bapi_essr_log WITH KEY po_number = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                                            po_item   = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                                            ext_number = l_t_essr-user1.&lt;/P&gt;&lt;P&gt;        IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;          MOVE: l_t_essr-lwert TO l_i_ekpo-lwert,&lt;/P&gt;&lt;P&gt;                l_t_essr-waers TO l_i_ekpo-waers,           &lt;/P&gt;&lt;P&gt;                l_t_essr-user1 TO l_i_ekpo-user1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    modify l_i_ekpo.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          DELETE t_bapi_essr_log WHERE  po_number   = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                                 AND    po_item     = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                                 AND    ext_number  = l_t_essr-user1.&lt;/P&gt;&lt;P&gt;          APPEND l_i_ekpo TO l_i_ekpo_2.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DELETE l_i_ekpo.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLEAR l_i_ekpo.&lt;/P&gt;&lt;P&gt;  REFRESH l_i_ekpo.&lt;/P&gt;&lt;P&gt;  MOVE l_i_ekpo_2[] TO l_i_ekpo[].&lt;/P&gt;&lt;P&gt;  IF l_i_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'No data uploaded.'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'Plant', 7 'Contract', 18 'Item',&lt;/P&gt;&lt;P&gt;              29 'Contract Item Description',&lt;/P&gt;&lt;P&gt;              69 'Purch.Ord.',&lt;/P&gt;&lt;P&gt;              81 'Item', 87 'Reference', 113 'Value '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************************&lt;/P&gt;&lt;P&gt;    SDN -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;          This is the final Internal table Here u have to add field after 105&lt;/P&gt;&lt;P&gt;**********************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT l_i_ekpo.&lt;/P&gt;&lt;P&gt;      READ TABLE l_i_kontr WITH KEY ebeln = l_i_ekpo-konnr&lt;/P&gt;&lt;P&gt;                                    ebelp = l_i_ekpo-ktpnr&lt;/P&gt;&lt;P&gt;                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR 2 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 l_i_ekpo-werks, 7 l_i_ekpo-konnr, 18 l_i_ekpo-ktpnr,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               29 l_i_ekpo-txz01,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                29 l_i_kontr-txz01,&lt;/P&gt;&lt;P&gt;                69 l_i_ekpo-ebeln,  81 l_i_ekpo-ebelp,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               87 l_i_ekpo-user1, 105  l_i_ekpo-lwert.    "SG24082007d&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                87 l_i_ekpo-user1.                          "SG24082007i&lt;/P&gt;&lt;P&gt;      WRITE AT: 105 l_i_ekpo-lwert CURRENCY l_i_ekpo-waers. "SG24082007i&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " LOG_UPLOAD_SUCCESS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  release_ses&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM release_ses.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_frgce LIKE zpl_ses_relcodes-frgce,&lt;/P&gt;&lt;P&gt;        s_ekpo TYPE t_ekpo,&lt;/P&gt;&lt;P&gt;        l_msgno TYPE sy-msgno,&lt;/P&gt;&lt;P&gt;        l_messg LIKE message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT l_ses_no IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / text-206.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekpo INTO s_ekpo WITH KEY ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                                         ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-204.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE frgce&lt;/P&gt;&lt;P&gt;    INTO l_frgce&lt;/P&gt;&lt;P&gt;    FROM zpl_ses_relcodes&lt;/P&gt;&lt;P&gt;    WHERE bname EQ sy-uname&lt;/P&gt;&lt;P&gt;      AND werks EQ s_ekpo-werks.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0 OR l_frgce IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-204.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-205.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=SELP'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0340'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11R-LBLNI'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11R-LBLNI' l_ses_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=AKCH'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'ESSR-TXZ01'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=RSET'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0120'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11R-FRGCE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11R-FRGCE' l_frgce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=SAVE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0110'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'IMKPF-BLDAT'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'ML81N' USING bdcdata&lt;/P&gt;&lt;P&gt;                   MODE   w_mode&lt;/P&gt;&lt;P&gt;                   UPDATE c_update&lt;/P&gt;&lt;P&gt;                   MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;    CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;    MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_messg.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " release_ses&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  find_ses_number&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM find_ses_number .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_ses_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_ses_no&lt;/P&gt;&lt;P&gt;                WHERE user1 = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    WRITE: / text-206.&lt;/P&gt;&lt;P&gt;    WRITE: / text-204.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " find_ses_number&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  select_additional_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM select_additional_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lines TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_bapiessrc LINES lines.&lt;/P&gt;&lt;P&gt;  CHECK lines NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT ebeln ebelp werks packno&lt;/P&gt;&lt;P&gt;    INTO TABLE i_ekpo&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_bapiessrc&lt;/P&gt;&lt;P&gt;    WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;      AND ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " select_additional_data&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  check_estimated_value&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM check_estimated_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: s_ekpo TYPE t_ekpo,&lt;/P&gt;&lt;P&gt;        l_mesg(200),&lt;/P&gt;&lt;P&gt;        l_commitment LIKE esuh-commitment,&lt;/P&gt;&lt;P&gt;        l_actvalue LIKE esuh-actvalue,&lt;/P&gt;&lt;P&gt;        l_exc_value LIKE esuh-commitment,&lt;/P&gt;&lt;P&gt;        l_tmptext1(30),&lt;/P&gt;&lt;P&gt;        l_tmptext2(30),&lt;/P&gt;&lt;P&gt;        l_waers LIKE esuh-waers.                            &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekpo INTO s_ekpo WITH KEY ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                                         ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  " check estimated value&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT SINGLE commitment actvalue                        &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INTO (l_commitment, l_actvalue)                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE commitment actvalue waers                   &lt;/P&gt;&lt;P&gt;    INTO (l_commitment, l_actvalue, l_waers)                &lt;/P&gt;&lt;P&gt;    FROM esuh&lt;/P&gt;&lt;P&gt;    WHERE packno = s_ekpo-packno.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_actvalue &amp;gt; l_commitment.&lt;/P&gt;&lt;P&gt;    l_exc_value = l_actvalue - l_commitment.&lt;/P&gt;&lt;P&gt;    WRITE: l_commitment TO l_tmptext1&lt;/P&gt;&lt;P&gt;           CURRENCY l_waers,                                &lt;/P&gt;&lt;P&gt;           l_exc_value TO l_tmptext2&lt;/P&gt;&lt;P&gt;           CURRENCY l_waers.                               &lt;/P&gt;&lt;P&gt;    CONCATENATE text-207 l_tmptext1 text-208&lt;/P&gt;&lt;P&gt;                l_tmptext2 text-209 INTO l_mesg&lt;/P&gt;&lt;P&gt;                SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CONDENSE l_mesg.&lt;/P&gt;&lt;P&gt;    WRITE: / l_mesg.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_estimated_value&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &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;begin of insert &amp;gt;&amp;gt; SG24082007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM change_account.&lt;/P&gt;&lt;P&gt;  DATA: i_sakto TYPE STANDARD TABLE OF ekkn-sakto,&lt;/P&gt;&lt;P&gt;        l_sakto TYPE ekkn-sakto,&lt;/P&gt;&lt;P&gt;        l_line(10) TYPE c,&lt;/P&gt;&lt;P&gt;        l_msgno TYPE sy-msgno,&lt;/P&gt;&lt;P&gt;        l_messg LIKE message,&lt;/P&gt;&lt;P&gt;        p(2) TYPE c,&lt;/P&gt;&lt;P&gt;        w LIKE sy-index,&lt;/P&gt;&lt;P&gt;        w_field(20) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_ses_no.&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_ses_no&lt;/P&gt;&lt;P&gt;                WHERE user1 = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    SELECT sakto FROM ekkn&lt;/P&gt;&lt;P&gt;                 INTO TABLE i_sakto&lt;/P&gt;&lt;P&gt;                      WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                        AND ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'RM11RL00'       '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=ONLI'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'S_LBLNI-LOW'    l_ses_no.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_LIST'         ' '.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_DIRECT'       'X'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_LISTU'        ' '.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_CURSOR'     'P_DIRECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSR'       '0100'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=SERV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_bapiesllc WHERE ext_number EQ t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;        l_line = t_bapiesllc-line_no.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_dynpro USING 'SAPLMLSP'       '0210'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_CURSOR'     'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_OKCODE'     '=CONT'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'RM11P-NEW_ROW'  l_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        PERFORM bdc_dynpro USING 'SAPLMLSK'       '0200'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_CURSOR'     'ESKN-SAKTO(01)'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_OKCODE'     '=BACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: p, w.&lt;/P&gt;&lt;P&gt;        LOOP AT i_sakto INTO l_sakto.&lt;/P&gt;&lt;P&gt;          ADD 1 TO w.&lt;/P&gt;&lt;P&gt;          CLEAR: w_field, p.&lt;/P&gt;&lt;P&gt;          UNPACK w TO p.&lt;/P&gt;&lt;P&gt;          w_field+00(11) = 'ESKN-SAKTO('.&lt;/P&gt;&lt;P&gt;          w_field+11(02) = p.&lt;/P&gt;&lt;P&gt;          w_field+13(01) = ')'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field USING w_field l_sakto.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP'       '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_CURSOR'     'ESLL-KTEXT1(01)'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=SAV'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'RM11P-NEW_ROW'  l_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'ML81' USING bdcdata MODE p_dismod UPDATE c_update&lt;/P&gt;&lt;P&gt;         MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;        IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;          WRITE AT: /1 text-210.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;        MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;            msgno = l_msgno&lt;/P&gt;&lt;P&gt;            msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;            msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;            msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;            msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;            msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            messg = l_messg.&lt;/P&gt;&lt;P&gt;        WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "change_account&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;waiting for your reply.&lt;/P&gt;&lt;P&gt;thanking you in anticipation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Nov 2007 06:10:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-11-15T06:10:01Z</dc:date>
    <item>
      <title>adding a field in a report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020802#M714166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi SDN&lt;/P&gt;&lt;P&gt;    i have a small problem where iam unable to add fields in the final internal table&lt;/P&gt;&lt;P&gt;  i have to add two fields i.e., COMMITMENT AND ACTVALUE from ESUH TABLE&lt;/P&gt;&lt;P&gt;AND the final internal table is l_i_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we have to add only two fields COMMITMENT and a ....variable = COMMITMENT - ACTVALUE. which is already done in the program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here iam attaching a program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: ekpo.&lt;/P&gt;&lt;P&gt;DATA: i_directory_list LIKE rlgrap-filename OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: i_directory_sel LIKE popuptext OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;*{ INSERT PS010306UPGR&lt;/P&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;*} INSERT&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tab,&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       T(1) TYPE X VALUE '09',  "HEX!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t(1) TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab,  "Unicode&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;END OF tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ekpo_konnr LIKE ekpo-konnr.&lt;/P&gt;&lt;P&gt;DATA: ekpo_ktpnr LIKE ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;DATA: END OF t_bapiessrc.&lt;/P&gt;&lt;P&gt;DATA: t_bapiessrc_tab(301)  OCCURS 0." with header line.&lt;/P&gt;&lt;P&gt;DATA: wa_bapiessrc_tab(301).&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_headertext OCCURS 0,&lt;/P&gt;&lt;P&gt;       ext_number LIKE zbapiessrc_chars-ext_number,&lt;/P&gt;&lt;P&gt;       linno(4) TYPE n,&lt;/P&gt;&lt;P&gt;       tcode(20),&lt;/P&gt;&lt;P&gt;       recordname(30),&lt;/P&gt;&lt;P&gt;       txpargraph(2),&lt;/P&gt;&lt;P&gt;       txline(72),&lt;/P&gt;&lt;P&gt;       text_mark,&lt;/P&gt;&lt;P&gt;      END OF t_headertext.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_itemtext OCCURS 0,&lt;/P&gt;&lt;P&gt;       ext_number LIKE zbapiessrc_chars-ext_number,&lt;/P&gt;&lt;P&gt;       ext_line(18),&lt;/P&gt;&lt;P&gt;       linno(4) TYPE n,&lt;/P&gt;&lt;P&gt;       tcode(20),&lt;/P&gt;&lt;P&gt;       recordname(30),&lt;/P&gt;&lt;P&gt;       txpargraph(2),&lt;/P&gt;&lt;P&gt;       txline(72),&lt;/P&gt;&lt;P&gt;       text_mark,&lt;/P&gt;&lt;P&gt;       ext_linno(6),          &lt;/P&gt;&lt;P&gt;      END OF t_itemtext.&lt;/P&gt;&lt;P&gt;DATA: t_headertext_tab(180) OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA: wa_headertext_tab(180).&lt;/P&gt;&lt;P&gt;DATA: t_itemtext_tab(190) OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA: wa_itemtext_tab(190).&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_bapiesllc OCCURS 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ext_number like bapiessrc-ext_number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        INCLUDE STRUCTURE zbapiesllc_chars.&lt;/P&gt;&lt;P&gt;DATA: END OF t_bapiesllc.&lt;/P&gt;&lt;P&gt;DATA: t_bapiesllc_tab(650)  OCCURS 0." with header line.&lt;/P&gt;&lt;P&gt;DATA: wa_bapiesllc_tab(650).&lt;/P&gt;&lt;P&gt;DATA: no_of_files LIKE sy-index.&lt;/P&gt;&lt;P&gt;DATA: perc_uploaded TYPE i.&lt;/P&gt;&lt;P&gt;DATA: text_uploaded(50).&lt;/P&gt;&lt;P&gt;DATA: text_fi_not_upl1(30), text_fi_not_upl2(30).&lt;/P&gt;&lt;P&gt;DATA: continue_yn.&lt;/P&gt;&lt;P&gt;DATA: file TYPE localfile.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS .&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF clbp_content OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE solisti1.&lt;/P&gt;&lt;P&gt;DATA: END OF clbp_content.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA w_mode VALUE 'A'.&lt;/P&gt;&lt;P&gt;CONSTANTS:           c_update        VALUE 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF bdcdata OCCURS 0.       " BDC Table&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcdata.&lt;/P&gt;&lt;P&gt;DATA: END   OF bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF bdcmsgcoll OCCURS 0.    " BDC Messages&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;DATA: END   OF bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA params LIKE pri_params.&lt;/P&gt;&lt;P&gt;DATA list_text LIKE pri_params-prtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: days(1)  TYPE n VALUE 2,&lt;/P&gt;&lt;P&gt;      count(3) TYPE n VALUE 1,&lt;/P&gt;&lt;P&gt;      valid    TYPE c.&lt;/P&gt;&lt;P&gt;DATA t_bapi_essr LIKE bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA t_bapi_essr_log LIKE bapiessrc OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA t_bapi_esll LIKE bapiesllc OCCURS 0.&lt;/P&gt;&lt;P&gt;DATA t_bapi_esll_log LIKE bapiesllc OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF output_prot OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE essr.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;DATA: END OF output_prot.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_sgcses_struc OCCURS 0,&lt;/P&gt;&lt;P&gt;         po_number   LIKE zbapiessrc_chars-po_number,&lt;/P&gt;&lt;P&gt;         po_item     LIKE zbapiessrc_chars-po_item,&lt;/P&gt;&lt;P&gt;         short_text  LIKE zbapiessrc_chars-short_text,&lt;/P&gt;&lt;P&gt;         xblnr       LIKE essr-xblnr,&lt;/P&gt;&lt;P&gt;         ref_date    LIKE zbapiessrc_chars-ref_date,&lt;/P&gt;&lt;P&gt;         service     LIKE zbapiesllc_chars-service,&lt;/P&gt;&lt;P&gt;         flag,&lt;/P&gt;&lt;P&gt;         quantity    LIKE zbapiesllc_chars-quantity,&lt;/P&gt;&lt;P&gt;         final,&lt;/P&gt;&lt;P&gt;      END OF i_sgcses_struc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: l_ses_no LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;         ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;         ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;         werks LIKE ekpo-werks,&lt;/P&gt;&lt;P&gt;         packno LIKE ekpo-packno,&lt;/P&gt;&lt;P&gt;       END OF t_ekpo.&lt;/P&gt;&lt;P&gt;DATA: i_ekpo TYPE STANDARD TABLE OF t_ekpo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &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;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; S E L E C T I O N   S C R E E N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS: p_path TYPE localfile DEFAULT&lt;/P&gt;&lt;P&gt;  'C:	empBasellInterfacesSesSES-Daten'.&lt;/P&gt;&lt;P&gt;***parameters:     p_dismod type ctu_mode      default 'A'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     p_dismod TYPE ctu_mode      DEFAULT 'E'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     p_spnam  TYPE tsp01-rq2name DEFAULT 'SES_UPL.....'&lt;/P&gt;&lt;P&gt;                                                      OBLIGATORY.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_serv AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_text AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;PARAMETERS:     cb_chck AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; A T   S E L E C T I O N   S C R E E N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.&lt;/P&gt;&lt;P&gt;  DATA: len TYPE i,&lt;/P&gt;&lt;P&gt;        testchar(1).&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      mask      = 'C:*.txt'&lt;/P&gt;&lt;P&gt;      static    = 'X'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_name = p_path.&lt;/P&gt;&lt;P&gt;  DESCRIBE FIELD p_path LENGTH len IN CHARACTER MODE.&lt;/P&gt;&lt;P&gt;  DO len TIMES.&lt;/P&gt;&lt;P&gt;    len = len - 1.&lt;/P&gt;&lt;P&gt;    testchar =  p_path+len(1).&lt;/P&gt;&lt;P&gt;    IF testchar = ''.&lt;/P&gt;&lt;P&gt;      len = len + 1.&lt;/P&gt;&lt;P&gt;      p_path = p_path(len).&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; S T A R T   O F   S E L E C T I O N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM select_files.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM spool_settings.                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM upload_files.&lt;/P&gt;&lt;P&gt;  PERFORM select_additional_data.                         &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; E N D   O F   S E L E C T I O N -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------" /&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; PERFORM spool_settings.                                 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: perc_uploaded, no_of_files, text_uploaded.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_bapiessrc LINES no_of_files.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop over header-records: for each header-record one call transaction:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_bapiessrc.&lt;/P&gt;&lt;P&gt;    perc_uploaded = ( 100 * sy-tabix ) / no_of_files.&lt;/P&gt;&lt;P&gt;    IF cb_serv = 'X'.&lt;/P&gt;&lt;P&gt;      PERFORM prepare_clipboard.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Upload Service Entry Sheets:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM call_transaction_upload.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Italian Version begin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IMPORT output_prot FROM MEMORY ID 'OUT_PROT'.&lt;/P&gt;&lt;P&gt;      PERFORM write_prot_to_spool.&lt;/P&gt;&lt;P&gt;      FREE MEMORY ID 'OUT_PROT'.&lt;/P&gt;&lt;P&gt;      REFRESH: output_prot.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Italian Version end&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM find_ses_number.                             &lt;/P&gt;&lt;P&gt;      PERFORM check_estimated_value.                      &lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF cb_text = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Upload SES Texts:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM upload_texts.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  start of insert &amp;gt;&amp;gt;&amp;gt;                                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM change_account.                                &lt;/P&gt;&lt;P&gt;    IF cb_serv = 'X'.&lt;/P&gt;&lt;P&gt;      PERFORM release_ses.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  end of insert &amp;lt;&amp;lt;&amp;lt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;In case only text and no services shall be uploaded:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT cb_text IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  In case also services are uploaded this loop won't apply cause&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_headertext-entries are deleted after they were processed in the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     loop above!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_headertext.&lt;/P&gt;&lt;P&gt;      MOVE t_headertext-ext_number TO t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;move t_headertext-ext_number to t_bapiessrc-ref_doc_no. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*only for test cases since data file is not correct:END&lt;/P&gt;&lt;P&gt;      PERFORM upload_texts.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  PERFORM log_upload_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; NEW-PAGE PRINT OFF.                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM delete_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE: / text-001.                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; write: / 'Check spools for correct processing (Transaction SP01)!'.&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;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------" /&gt;&lt;P&gt; T O P   O F   P A G E -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;at user-command&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT USER-COMMAND.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;top of page-during line selection&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="---------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE DURING LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="------------" /&gt;&lt;P&gt; F O R M - R O U T I N E S -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------" /&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  SPLIT_BAPIESSRC&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_bapiessrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_score_time(3),&lt;/P&gt;&lt;P&gt;        l_score_qual(3),&lt;/P&gt;&lt;P&gt;        l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES: esuc.&lt;/P&gt;&lt;P&gt;  DATA: l_packno LIKE ekpo-packno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_bapiessrc, ekpo_konnr, ekpo_ktpnr, ekpo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_bapiessrc-sheet_no      t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;        t_bapiessrc-person_int    t_bapiessrc-person_ext&lt;/P&gt;&lt;P&gt;        t_bapiessrc-location      t_bapiessrc-ref_date&lt;/P&gt;&lt;P&gt;        t_bapiessrc-begdate       t_bapiessrc-enddate&lt;/P&gt;&lt;P&gt;        t_bapiessrc-pckg_no       t_bapiessrc-short_text&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-po_number     t_bapiessrc-po_item  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ekpo_konnr ekpo_ktpnr                         &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-block_ind     t_bapiessrc-score_time&lt;/P&gt;&lt;P&gt;        t_bapiessrc-score_qual    t_bapiessrc-doc_date&lt;/P&gt;&lt;P&gt;        t_bapiessrc-post_date     t_bapiessrc-ref_doc_no&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiessrc-po_number     t_bapiessrc-po_item &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_bapiessrc-accasscat     t_bapiessrc-comm_no&lt;/P&gt;&lt;P&gt;        t_bapiessrc-user_field    t_bapiessrc-acceptance&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ekpo_konnr ekpo_ktpnr  t_bapiessrc-final.       &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only for testing due to wrong data  END&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE '0000000001' TO t_bapiessrc-pckg_no.                 &lt;/P&gt;&lt;P&gt;  SHIFT t_bapiessrc-po_item RIGHT DELETING TRAILING space.&lt;/P&gt;&lt;P&gt;  TRANSLATE t_bapiessrc-po_item USING ' 0'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of delete &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT ekpo_konnr IS INITIAL AND NOT ekpo_ktpnr IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT SINGLE konnr ktpnr FROM ekpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 INTO (ekpo-konnr, ekpo-ktpnr)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 AND   ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE:/  text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-102,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              t_bapiessrc-po_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-103,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              t_bapiessrc-po_item,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              text-104.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: / text-105.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXIT.&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 ekpo_konnr NE ekpo-konnr OR ekpo_ktpnr NE ekpo-ktpnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE:/ text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-106,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               ekpo_konnr, '/',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               ekpo_ktpnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-107,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               t_bapiessrc-po_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               text-103, t_bapiessrc-po_item, ')'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE: / text-105.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&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;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;end of delete &amp;lt;&amp;lt;&amp;lt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  " check contract number&lt;/P&gt;&lt;P&gt;  IF NOT ekpo_konnr IS INITIAL AND NOT ekpo_ktpnr IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE konnr ktpnr packno&lt;/P&gt;&lt;P&gt;      FROM ekpo&lt;/P&gt;&lt;P&gt;      INTO (ekpo-konnr, ekpo-ktpnr, l_packno)&lt;/P&gt;&lt;P&gt;      WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;      AND   ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      " no corresponding PO, no update will be performed&lt;/P&gt;&lt;P&gt;      WRITE:/  text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;               text-102,&lt;/P&gt;&lt;P&gt;               t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;               text-103,&lt;/P&gt;&lt;P&gt;               t_bapiessrc-po_item,&lt;/P&gt;&lt;P&gt;               text-104.&lt;/P&gt;&lt;P&gt;      WRITE: / text-105.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      " check contract number against table ESUC first.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE *&lt;/P&gt;&lt;P&gt;        FROM esuc&lt;/P&gt;&lt;P&gt;        WHERE packno EQ l_packno&lt;/P&gt;&lt;P&gt;          AND ebeln EQ ekpo_konnr&lt;/P&gt;&lt;P&gt;          AND ebelp EQ ekpo_ktpnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        " check against PO line&lt;/P&gt;&lt;P&gt;        IF ekpo_konnr NE ekpo-konnr OR ekpo_ktpnr NE ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;          WRITE:/ text-101, t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;                  text-106,&lt;/P&gt;&lt;P&gt;                  ekpo_konnr, '/',&lt;/P&gt;&lt;P&gt;                  ekpo_ktpnr,&lt;/P&gt;&lt;P&gt;                  text-107,&lt;/P&gt;&lt;P&gt;                  t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;                  text-103, t_bapiessrc-po_item, ')'.&lt;/P&gt;&lt;P&gt;          WRITE: / text-105.&lt;/P&gt;&lt;P&gt;          EXIT.&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;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE:/ 'External SES', t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;              'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;P&gt;      WRITE: / 'No update of this sheet was accomplished!'.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND t_bapiessrc.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_BAPIESSRC&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  SPLIT_BAPIESLLC&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_bapiesllc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_outl_level(3), l_ovf_tol(3), l_price_unit(5), l_gr_price(23),&lt;/P&gt;&lt;P&gt;        l_target_val(23), l_userf2_num(13), l_quantity(13),&lt;/P&gt;&lt;P&gt;        l_form_val1(13), l_form_val2(13), l_form_val3(13),&lt;/P&gt;&lt;P&gt;        l_form_val4(13), l_form_val5(13), l_ext_number(16).&lt;/P&gt;&lt;P&gt;  CLEAR: t_bapiesllc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ext_number&lt;/P&gt;&lt;P&gt;        t_bapiesllc-pckg_no        t_bapiesllc-line_no&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ext_line       t_bapiesllc-outl_level&lt;/P&gt;&lt;P&gt;        t_bapiesllc-outl_no        t_bapiesllc-outl_ind&lt;/P&gt;&lt;P&gt;        t_bapiesllc-subpckg_no     t_bapiesllc-service&lt;/P&gt;&lt;P&gt;        t_bapiesllc-serv_type      t_bapiesllc-edition&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ssc_item       t_bapiesllc-ext_serv&lt;/P&gt;&lt;P&gt;        t_bapiesllc-quantity       t_bapiesllc-base_uom&lt;/P&gt;&lt;P&gt;        t_bapiesllc-uom_iso        t_bapiesllc-ovf_tol&lt;/P&gt;&lt;P&gt;        t_bapiesllc-ovf_unlim      t_bapiesllc-price_unit&lt;/P&gt;&lt;P&gt;        t_bapiesllc-gr_price       t_bapiesllc-from_line&lt;/P&gt;&lt;P&gt;        t_bapiesllc-to_line        t_bapiesllc-short_text&lt;/P&gt;&lt;P&gt;        t_bapiesllc-distrib        t_bapiesllc-pers_no&lt;/P&gt;&lt;P&gt;        t_bapiesllc-wagetype       t_bapiesllc-pln_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-pln_line       t_bapiesllc-con_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-con_line       t_bapiesllc-tmp_pckg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-tmp_line       t_bapiesllc-ssc_lim&lt;/P&gt;&lt;P&gt;        t_bapiesllc-limit_line     t_bapiesllc-target_val&lt;/P&gt;&lt;P&gt;        t_bapiesllc-basline_no     t_bapiesllc-basic_line&lt;/P&gt;&lt;P&gt;        t_bapiesllc-alternat       t_bapiesllc-bidder&lt;/P&gt;&lt;P&gt;        t_bapiesllc-supp_line      t_bapiesllc-open_qty&lt;/P&gt;&lt;P&gt;        t_bapiesllc-inform         t_bapiesllc-blanket&lt;/P&gt;&lt;P&gt;        t_bapiesllc-eventual       t_bapiesllc-tax_code&lt;/P&gt;&lt;P&gt;        t_bapiesllc-taxjurcode     t_bapiesllc-price_chg&lt;/P&gt;&lt;P&gt;        t_bapiesllc-matl_group     t_bapiesllc-date&lt;/P&gt;&lt;P&gt;        t_bapiesllc-begintime      t_bapiesllc-endtime&lt;/P&gt;&lt;P&gt;        t_bapiesllc-extpers_no     t_bapiesllc-formula&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val1      t_bapiesllc-form_val2&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val3      t_bapiesllc-form_val4&lt;/P&gt;&lt;P&gt;        t_bapiesllc-form_val5      t_bapiesllc-userf1_num&lt;/P&gt;&lt;P&gt;        t_bapiesllc-userf2_num     t_bapiesllc-userf1_txt&lt;/P&gt;&lt;P&gt;        t_bapiesllc-userf2_txt     t_bapiesllc-hi_line_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_bapiesllc-line_no&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_bapiesllc-line_no.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE t_bapiesllc-quantity USING ',.'.&lt;/P&gt;&lt;P&gt;  MOVE '0000000002' TO t_bapiesllc-pckg_no.                 "TS20082002&lt;/P&gt;&lt;P&gt;  APPEND t_bapiesllc.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_BAPIESLLC&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  SELECT_FILES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM select_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KCD_FRONT_END_DIRECTORY_READ'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_path              = p_path&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;        E_PURE_PATH         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            e_directory         = i_directory_list&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;           download            = 1&lt;/P&gt;&lt;P&gt;           upload              = 2&lt;/P&gt;&lt;P&gt;           execute             = 3&lt;/P&gt;&lt;P&gt;           directory_not_exist = 4&lt;/P&gt;&lt;P&gt;           directory           = 5&lt;/P&gt;&lt;P&gt;           OTHERS              = 6&lt;/P&gt;&lt;P&gt;           .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&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;    MESSAGE w208(00) WITH 'Enter existing directory'(003).&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  LOOP AT i_directory_list.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_list(1) CA 'KPLT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   check i_directory_list cs '.XLS' or i_directory_list cs '.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHECK i_directory_list CS '.TXT'.&lt;/P&gt;&lt;P&gt;    CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;    MOVE  'X' TO  i_directory_sel-text(1).&lt;/P&gt;&lt;P&gt;    MOVE  i_directory_list(79) TO  i_directory_sel-text+1(79).&lt;/P&gt;&lt;P&gt;    APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_SL018_POPUP_WITH_TEXT_TO_SEL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      popup_title  = 'Select Files for SES-Upload'&lt;/P&gt;&lt;P&gt;      start_column = 10&lt;/P&gt;&lt;P&gt;      start_row    = 1&lt;/P&gt;&lt;P&gt;      end_column   = 50&lt;/P&gt;&lt;P&gt;      end_row      = 16&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sy_ucomm     = sy-ucomm&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      x_popuptext  = i_directory_sel.&lt;/P&gt;&lt;P&gt;*Check which Files shall be uploaded:&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_sel-text(1) NE 'Y'.&lt;/P&gt;&lt;P&gt;    DELETE  i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_directory_sel.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE i_directory_sel LINES no_of_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SELECT_FILES&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  UPLOAD_FILES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM upload_files.&lt;/P&gt;&lt;P&gt;*{ INSERT PS010306UPGR&lt;/P&gt;&lt;P&gt;  DATA: fname TYPE string.&lt;/P&gt;&lt;P&gt;*} INSERT&lt;/P&gt;&lt;P&gt;  LOOP AT i_directory_sel.&lt;/P&gt;&lt;P&gt;    CLEAR: file.&lt;/P&gt;&lt;P&gt;    UNASSIGN: .&lt;/P&gt;&lt;P&gt;    perc_uploaded = ( 100 * sy-tabix ) / no_of_files.&lt;/P&gt;&lt;P&gt;    CONCATENATE i_directory_sel-text+1(31) 'uploaded from disk'&lt;/P&gt;&lt;P&gt;                                                     INTO text_uploaded&lt;/P&gt;&lt;P&gt;                                            SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CONCATENATE p_path i_directory_sel-text+1(31) INTO file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Choose the right structure for &amp;lt;doc_content&amp;gt; and &amp;lt;wa_doc_content&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;depending on file type K, P, T or L via assignment of field symbols:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CASE i_directory_sel-text+1(1).&lt;/P&gt;&lt;P&gt;      WHEN 'K'. "Kopfdaten&lt;/P&gt;&lt;P&gt;        ASSIGN t_bapiessrc_tab   TO .&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'WS_UPLOAD'&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;             FILENAME                = FILE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             DATA_TAB                = &amp;lt;DOC_CONTENT&amp;gt;&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;             CONVERSION_ERROR        = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FILE_OPEN_ERROR         = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             FILE_READ_ERROR         = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             INVALID_TABLE_WIDTH     = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             INVALID_TYPE            = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             NO_BATCH                = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             GUI_REFUSE_FILETRANSFER = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             CUSTOMER_ERROR          = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             OTHERS                  = 10.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fname = file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = fname&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        data_tab =  0.&lt;/P&gt;&lt;P&gt;      CLEAR: text_fi_not_upl1, text_fi_not_upl2, continue_yn.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'File' i_directory_sel-text+1(21) ': upload failed!'&lt;/P&gt;&lt;P&gt;                   INTO text_fi_not_upl1 SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      MOVE 'Continue Program?' TO text_fi_not_upl2.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          defaultoption  = 'N'&lt;/P&gt;&lt;P&gt;          textline1      = text_fi_not_upl1&lt;/P&gt;&lt;P&gt;          textline2      = text_fi_not_upl2&lt;/P&gt;&lt;P&gt;          titel          = 'Upload Failed'&lt;/P&gt;&lt;P&gt;          start_column   = 25&lt;/P&gt;&lt;P&gt;          start_row      = 6&lt;/P&gt;&lt;P&gt;          cancel_display = ' '&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          answer         = continue_yn.&lt;/P&gt;&lt;P&gt;      IF continue_yn = 'N'.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move uploaded File records line by line into correct internal table:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiessrc  for K__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_bapiesllc  for P__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_headertext for T__.txt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       t_itemtext   for L__.txt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT .&lt;/P&gt;&lt;P&gt;          IF NOT sy-subrc IS INITIAL. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;        CASE i_directory_sel-text+1(1).&lt;/P&gt;&lt;P&gt;          WHEN 'K'. "Kopfdaten&lt;/P&gt;&lt;P&gt;            PERFORM split_bapiessrc.&lt;/P&gt;&lt;P&gt;          WHEN 'T'.&lt;/P&gt;&lt;P&gt;            PERFORM split_headertext.&lt;/P&gt;&lt;P&gt;          WHEN 'P'.&lt;/P&gt;&lt;P&gt;            PERFORM split_bapiesllc.&lt;/P&gt;&lt;P&gt;          WHEN 'L'.&lt;/P&gt;&lt;P&gt;            PERFORM split_itemtext.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&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 = perc_uploaded&lt;/P&gt;&lt;P&gt;        text       = text_uploaded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT t_bapiessrc BY ext_number.&lt;/P&gt;&lt;P&gt;  SORT t_headertext BY ext_number linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SORT t_bapiesllc BY ext_number.                         "&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT t_bapiesllc BY ext_number pckg_no line_no.          &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt; sort t_bapiesllc by ext_number line_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  SORT t_itemtext BY ext_number ext_linno ext_line linno.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_FILES&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  PREPARE_CLIPBOARD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM prepare_clipboard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:   clbp_content.&lt;/P&gt;&lt;P&gt;  REFRESH: clbp_content.&lt;/P&gt;&lt;P&gt;  DATA: l_line TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: l_tabix LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  CLEAR l_tabix.&lt;/P&gt;&lt;P&gt;*Assemble the File-Structure out of the internal tables t_bapiessrc&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and t_bapiesllc which is expected by the user exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  exit_saplmlsx_002 and move it to the clipboard:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE 'K' TO clbp_content(1).  "Flag for header record&lt;/P&gt;&lt;P&gt;  MOVE t_bapiessrc TO clbp_content+1(246).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  READ TABLE t_bapiesllc WITH KEY ext_number = t_bapiessrc-comm_no&lt;/P&gt;&lt;P&gt;                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;  MOVE sy-tabix TO l_tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;insert dummy row for connection between pach_no and sub_packno:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR l_line.&lt;/P&gt;&lt;P&gt;  CLEAR: clbp_content, t_bapiesllc.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).  "Flag for service-record&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  MOVE '0000000001' TO t_bapiesllc-pckg_no.&lt;/P&gt;&lt;P&gt;  MOVE '0000000002' TO t_bapiesllc-subpckg_no.&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;16(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;261(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;  MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;  MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;  MOVE 'E' TO clbp_content+2(1).&lt;/P&gt;&lt;P&gt;  WRITE t_bapiesllc&lt;EM&gt;506(27) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;  APPEND clbp_content.&lt;/P&gt;&lt;P&gt;  CLEAR clbp_content.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end insert&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_bapiesllc FROM l_tabix.&lt;/P&gt;&lt;P&gt;    CLEAR l_line.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    IF t_bapiesllc-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).  "Flag for service-record&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  'P'-service records are split into three clipbord-lines since&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    structure t_bapiesllc is too long for one line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;16(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;261(245) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_line.&lt;/P&gt;&lt;P&gt;    MOVE 'P' TO clbp_content(1).&lt;/P&gt;&lt;P&gt;    MOVE l_line TO clbp_content+1(1).&lt;/P&gt;&lt;P&gt;    MOVE 'E' TO clbp_content+2(1).&lt;/P&gt;&lt;P&gt;    WRITE t_bapiesllc&lt;EM&gt;506(27) TO clbp_content&lt;/EM&gt;3(245).&lt;/P&gt;&lt;P&gt;    APPEND clbp_content.&lt;/P&gt;&lt;P&gt;    CLEAR clbp_content.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;******Italy version of upload&lt;/P&gt;&lt;P&gt;  PERFORM include_italy.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; export t_bapiessrc to memory id 'GER_ESSRC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; export t_bapiesllc to memory id 'GER_ESLLC'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EXPORT t_bapi_essr TO MEMORY ID 'GER_ESSRC'.&lt;/P&gt;&lt;P&gt;  EXPORT t_bapi_esll TO MEMORY ID 'GER_ESLLC'.&lt;/P&gt;&lt;P&gt;  CHECK 1 = 2.&lt;/P&gt;&lt;P&gt;******Italy version of upload END&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CLPB_EXPORT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab   = clbp_content&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      clpb_error = 1&lt;/P&gt;&lt;P&gt;      OTHERS     = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PREPARE_CLIPBOARD&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  CALL_TRANSACTION_UPLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM call_transaction_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'RM11RL00'      '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'BDC_OKCODE'    '=UPL'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_LBLNI-LOW'    '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_LBLNI-HIGH'   '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'P_BSTNR'        '          '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_BSTPO-LOW'    '     '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'S_BSTPO-HIGH'   '     '.&lt;/P&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set|remove comments for Germ.Version&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_dynpro using: 'SAPLMLSX'      '0480'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'BDC_OKCODE'    '=EXEC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_dynpro using: 'SAPLGRAP'      '0210'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'BDC_OKCODE'    '=UPL_FR_CLP'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field  using: 'MARKIERT'      'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set; END&lt;/P&gt;&lt;P&gt;  CASE p_dismod.&lt;/P&gt;&lt;P&gt;    WHEN 'A'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=LITE'.&lt;/P&gt;&lt;P&gt;    WHEN 'N'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=HIND'.&lt;/P&gt;&lt;P&gt;    WHEN 'E'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING: 'BDC_OKCODE'    '=DARK'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here the call transcation of SAP-standard takes place for creating the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  service entry sheet&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;After SAP-standard call transaction: analyze the popup with the&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; comments set|remove comments for Germ.Version&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=PRI'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_dynpro using: 'SAPLSPRI'      '0100'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=PRIN'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PLIST'    p_spnam.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRIMM'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRREL'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'PRI_PARAMS-PRNEW'    ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_dynpro using: 'SAPMSSY0'      '0120'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform bdc_field  using: 'BDC_OKCODE'    '=EXEC'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Italian upload version -&amp;gt; remove the following line for Germ. version:&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field  USING: 'BDC_OKCODE'    '/00'.&lt;/P&gt;&lt;P&gt;  w_mode = p_dismod.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;currently w_mode and p_dismod are set to the same value:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; foregroud, background or error. But it could also be set to differnt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; values: Foreground for upload clipboard,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL TRANSACTION 'ML81' USING bdcdata MODE w_mode UPDATE c_update&lt;/P&gt;&lt;P&gt;     MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CALL_TRANSACTION_UPLOAD&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  BDC_DYNPRO&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro&lt;/P&gt;&lt;P&gt;     USING program TYPE c&lt;/P&gt;&lt;P&gt;           dynpro  TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;  bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_DYNPRO&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  BDC_FIELD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM bdc_field&lt;/P&gt;&lt;P&gt;      USING fnam TYPE c&lt;/P&gt;&lt;P&gt;            fval TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;  bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_FIELD&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  UPLOAD_TEXTS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM upload_texts.&lt;/P&gt;&lt;P&gt;  DATA l_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  DATA l_tabix_header_start LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA l_tabix_item_start LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA:  p(2) TYPE c.&lt;/P&gt;&lt;P&gt;  DATA:  w  LIKE sy-index.&lt;/P&gt;&lt;P&gt;  DATA:  w_field(20) TYPE c.&lt;/P&gt;&lt;P&gt;  DATA: l_ext_line_save LIKE t_itemtext-ext_line.&lt;/P&gt;&lt;P&gt;  DATA: l_ext_linno_save LIKE t_itemtext-ext_linno.&lt;/P&gt;&lt;P&gt;  DATA: l_extrow(10)."  like ml_esll-extrow.&lt;/P&gt;&lt;P&gt;  DATA: l_messg LIKE message.&lt;/P&gt;&lt;P&gt;  DATA: l_msgno LIKE sy-msgno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; read table t_headertext with key ext_number = t_bapiessrc-ref_doc_no.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE t_headertext WITH KEY ext_number = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                                   BINARY SEARCH.&lt;/P&gt;&lt;P&gt;*only for test cases since data file is not correct:END&lt;/P&gt;&lt;P&gt;  IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'                 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH text-202.                                   &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE: / text-202.                                     &lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  l_tabix_header_start = sy-tabix.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_lblni&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               where xblnr = t_headertext-ext_number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                WHERE user1 = t_headertext-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;  IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'                &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH text-203.                                   &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE: / text-203.                                     &lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'RM11RL00' '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=ONLI'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'S_LBLNI-LOW' l_lblni. " '1000001748'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_CURSOR'  'P_LIST'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_LIST'      ' '.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_DIRECT'    'X'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'P_LISTU'     ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSR' '0100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=TXT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field using 'ESSR-TXZ01'  t_headertext-txline(40).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=TXBA'.&lt;/P&gt;&lt;P&gt;  CLEAR w.&lt;/P&gt;&lt;P&gt;  ADD 1 TO w.&lt;/P&gt;&lt;P&gt;  LOOP AT t_headertext FROM l_tabix_header_start.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Is t_bapiessrc-ext_number really filled?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF t_headertext-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    UNPACK w TO p.&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(17) = 'RSTXT-TXPARGRAPH('.&lt;/P&gt;&lt;P&gt;    w_field+17(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+19(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_headertext-txpargraph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(13) = 'RSTXT-TXLINE('.&lt;/P&gt;&lt;P&gt;    w_field+13(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+15(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_headertext-txline .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  delete line from internal table so that Upload Texts is not&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      processed twice when perform_upload_texts is called without up-&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      loading services:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DELETE t_headertext.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSR' '0100'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=SERV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  'ENTER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_itemtext WITH KEY&lt;/P&gt;&lt;P&gt;                        ext_number = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;  l_tabix_item_start = sy-tabix.&lt;/P&gt;&lt;P&gt;  CLEAR l_ext_line_save.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_itemtext FROM l_tabix_item_start.&lt;/P&gt;&lt;P&gt;    IF t_itemtext-ext_number NE t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SHIFT t_itemtext-ext_line RIGHT DELETING TRAILING space.&lt;/P&gt;&lt;P&gt;    TRANSLATE t_itemtext-ext_line USING ' 0'.&lt;/P&gt;&lt;P&gt;    IF ( t_itemtext-ext_line NE l_ext_line_save )&lt;/P&gt;&lt;P&gt;        OR ( t_itemtext-ext_linno NE l_ext_linno_save ).&lt;/P&gt;&lt;P&gt;***find line number:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     break michalska.                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT SINGLE extrow FROM ml_esll INTO l_extrow&lt;/P&gt;&lt;P&gt;                            WHERE extrow = t_itemtext-ext_linno&lt;/P&gt;&lt;P&gt;                              AND srvpos = t_itemtext-ext_line&lt;/P&gt;&lt;P&gt;                              AND ebeln = l_lblni.&lt;/P&gt;&lt;P&gt;      IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  'ENTER'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'RM11P-NEW_ROW'  l_extrow.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  '=ZLT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_CURSOR'  'ESLL-EXTROW(01)'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'RM11P-SELKZ(01)'  'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING 'BDC_OKCODE'  '=TXBA'.&lt;/P&gt;&lt;P&gt;      CLEAR w.&lt;/P&gt;&lt;P&gt;      ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    ADD 1 TO w.&lt;/P&gt;&lt;P&gt;    UNPACK w TO p.&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(17) = 'RSTXT-TXPARGRAPH('.&lt;/P&gt;&lt;P&gt;    w_field+17(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+19(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_itemtext-txpargraph.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR w_field.&lt;/P&gt;&lt;P&gt;    w_field+00(13) = 'RSTXT-TXLINE('.&lt;/P&gt;&lt;P&gt;    w_field+13(02) = p.&lt;/P&gt;&lt;P&gt;    w_field+15(01) = ')'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field USING w_field t_itemtext-txline .&lt;/P&gt;&lt;P&gt;    l_ext_line_save = t_itemtext-ext_line.&lt;/P&gt;&lt;P&gt;    l_ext_linno_save = t_itemtext-ext_linno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro USING 'SAPLMLSP' '0210'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field USING 'BDC_OKCODE'  '=SAV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'ML81' USING bdcdata MODE p_dismod UPDATE c_update&lt;/P&gt;&lt;P&gt;     MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;    IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 text-002,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write at: /1 'Log for text uploads of entry sheet ',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                                           37 l_lblni, 48 ':'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check bdcmsgcoll-msgtyp = 'E' or bdcmsgcoll-msgtyp = 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_messg.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_TEXTS&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  SPLIT_HEADERTEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_headertext.&lt;/P&gt;&lt;P&gt;  DATA:  l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  CLEAR: t_headertext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_headertext-ext_number&lt;/P&gt;&lt;P&gt;        t_headertext-linno&lt;/P&gt;&lt;P&gt;        t_headertext-tcode&lt;/P&gt;&lt;P&gt;        t_headertext-recordname&lt;/P&gt;&lt;P&gt;        t_headertext-txpargraph&lt;/P&gt;&lt;P&gt;        t_headertext-txline&lt;/P&gt;&lt;P&gt;        t_headertext-text_mark.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_headertext-linno&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_headertext-linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_headertext-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF t_headertext-linno = 1.&lt;/P&gt;&lt;P&gt;        WRITE:/ 'External SES', t_headertext-ext_number,&lt;/P&gt;&lt;P&gt;                'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;P&gt;        WRITE: / 'No update of this sheet-texts was accomplished!'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT cb_serv IS INITIAL.&lt;/P&gt;&lt;P&gt;    " check&lt;/P&gt;&lt;P&gt;    READ TABLE t_bapiessrc WITH KEY ext_number = t_headertext-ext_number&lt;/P&gt;&lt;P&gt;                           BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                       &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND t_headertext.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_HEADERTEXT&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  SPLIT_ITEMTEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM split_itemtext.&lt;/P&gt;&lt;P&gt;  DATA: l_essr_lblni LIKE essr-lblni.&lt;/P&gt;&lt;P&gt;  CLEAR: t_itemtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE doc_content-line USING '#;'.   ZBAPIESSRC_CHARS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SPLIT  AT '§' INTO&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_number&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_line&lt;/P&gt;&lt;P&gt;        t_itemtext-linno&lt;/P&gt;&lt;P&gt;        t_itemtext-tcode&lt;/P&gt;&lt;P&gt;        t_itemtext-recordname&lt;/P&gt;&lt;P&gt;        t_itemtext-txpargraph&lt;/P&gt;&lt;P&gt;        t_itemtext-txline&lt;/P&gt;&lt;P&gt;        t_itemtext-text_mark&lt;/P&gt;&lt;P&gt;        t_itemtext-ext_linno.            &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert  &amp;gt;&amp;gt;&amp;gt;                                     &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = t_itemtext-ext_linno&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = t_itemtext-ext_linno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                       &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_chck = 'X'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE lblni FROM essr INTO l_essr_lblni&lt;/P&gt;&lt;P&gt;                                  WHERE loekz = ' '&lt;/P&gt;&lt;P&gt;                                  AND   user1 = t_itemtext-ext_number.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write:/ 'External SES', t_itemtext-ext_number,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             'is already uploaded. SES-Number: ', l_essr_lblni.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write: / 'No update of this sheet was accomplished!'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXIT.&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;  APPEND t_itemtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SPLIT_ITEMTEXT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of delete &amp;gt;&amp;gt;&amp;gt;                                      &lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  SPOOL_SETTINGS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM spool_settings.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE p_spnam TO list_text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING  " destination = 'dest'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     copies         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     list_name      = p_spnam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     list_text      = list_text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     immediately    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     release        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     new_list_id    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     expiration     = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_size      = 125&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_count     = 23&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     layout         = 'X_65_132'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     sap_cover_page = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     receiver       = 'SAP*'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     department     = 'System'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     no_dialog      = 'X'&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;     out_parameters = params&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     valid          = valid.&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; IF valid &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NEW-PAGE PRINT ON PARAMETERS params NO DIALOG.&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;*ENDFORM.                    " SPOOL_SETTINGS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of delete &amp;lt;&amp;lt;&amp;lt;                                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  DELETE_FILES&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 delete_files.&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: l_return.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_return TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: fname TYPE string.&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   move space to i_directory_sel-text(1).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE 'X' TO i_directory_sel-text(1).&lt;/P&gt;&lt;P&gt;    MODIFY i_directory_sel.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*{ REPLACE                                                  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE'Xdir_file.bat' TO i_directory_sel-text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND i_directory_sel.&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; CLEAR i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE'Xdir_file.txt' TO i_directory_sel-text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND i_directory_sel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_directory_list LIKE rlgrap-filename OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KCD_FRONT_END_DIRECTORY_READ'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_path      = p_path&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      e_directory = l_directory_list&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS      = 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    LOOP AT l_directory_list.&lt;/P&gt;&lt;P&gt;      IF l_directory_list CS 'dir_file.bat'.&lt;/P&gt;&lt;P&gt;        CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;        MOVE'Xdir_file.bat' TO i_directory_sel-text.&lt;/P&gt;&lt;P&gt;        APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;      ELSEIF l_directory_list CS 'dir_file.txt'.&lt;/P&gt;&lt;P&gt;        CLEAR i_directory_sel.&lt;/P&gt;&lt;P&gt;        MOVE'Xdir_file.txt' TO i_directory_sel-text.&lt;/P&gt;&lt;P&gt;        APPEND i_directory_sel.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*}&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_SL018_POPUP_WITH_TEXT_TO_SEL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      popup_title  = 'Select Files for DELETION'&lt;/P&gt;&lt;P&gt;      start_column = 10&lt;/P&gt;&lt;P&gt;      start_row    = 1&lt;/P&gt;&lt;P&gt;      end_column   = 50&lt;/P&gt;&lt;P&gt;      end_row      = 16&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sy_ucomm     = sy-ucomm&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      x_popuptext  = i_directory_sel.&lt;/P&gt;&lt;P&gt;*Check which Files shall be uploaded:&lt;/P&gt;&lt;P&gt;  CHECK sy-ucomm = 'OK'.&lt;/P&gt;&lt;P&gt;  LOOP AT  i_directory_sel.&lt;/P&gt;&lt;P&gt;    CHECK i_directory_sel-text(1) = 'Y'.&lt;/P&gt;&lt;P&gt;    CLEAR file.&lt;/P&gt;&lt;P&gt;    CONCATENATE p_path i_directory_sel-text+1(31) INTO file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{ REPLACE PS010306UPGR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'WS_FILE_DELETE'&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;             FILE   = FILE&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;             RETURN = L_RETURN.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fname = file.&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_frontend_services=&amp;gt;file_delete&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename = fname&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        rc       = l_return&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS   = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*} REPLACE&lt;/P&gt;&lt;P&gt;    IF NOT l_return = '0'.&lt;/P&gt;&lt;P&gt;      MESSAGE ID 'ZV' TYPE 'I' NUMBER '011'&lt;/P&gt;&lt;P&gt;           WITH text-201 i_directory_sel-text+1(31).&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.                    " DELETE_FILES&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  INCLUDE_ITALY&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM include_italy.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$- Start of INCLUDE ZXMLUU24                                --$&lt;STRONG&gt;$&lt;/STRONG&gt;&lt;/P&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;  INCLUDE ZXMLUU24                                                   *&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;*Data structure in DOC_CONTENT:&lt;/P&gt;&lt;P&gt;*1st letter: type - K header / P lines&lt;/P&gt;&lt;P&gt;*2nd letter: line number in DOC_CONTENT which belong to one data line&lt;/P&gt;&lt;P&gt;*3rd letter: if 'E': last line indicator for one data line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA doc_id LIKE  sofolenti1-doc_id.&lt;/P&gt;&lt;P&gt;  DATA l_offset TYPE i.&lt;/P&gt;&lt;P&gt;  DATA lt_bapi_essr LIKE bapiessrc OCCURS 0.&lt;/P&gt;&lt;P&gt;  DATA lt_bapi_esll LIKE bapiesllc OCCURS 0.&lt;/P&gt;&lt;P&gt;  DATA lwa_bapi_essr LIKE bapiessrc.&lt;/P&gt;&lt;P&gt;  DATA lwa_bapi_esll LIKE bapiesllc.&lt;/P&gt;&lt;P&gt;  DATA l_zbapiesllc_chars LIKE zbapiesllc_chars.&lt;/P&gt;&lt;P&gt;  DATA l_zbapiessrc_chars LIKE zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;*field-symbols .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_offset.&lt;/P&gt;&lt;P&gt;  CLEAR sy-uname.&lt;/P&gt;&lt;P&gt;  LOOP AT clbp_content.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF clbp_content(15) CO ' 0123456789'.  "Italy File Structure&lt;/P&gt;&lt;P&gt;      READ TABLE lt_bapi_essr INDEX 1 INTO lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CHECK lwa_bapi_essr-po_number = clbp_content(10).&lt;/P&gt;&lt;P&gt;        CHECK lwa_bapi_essr-po_item   = clbp_content+10(5).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  -&amp;gt; move fields to interface structures:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR: lwa_bapi_essr, lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;      MOVE space TO: l_zbapiesllc_chars, l_zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;      READ TABLE lt_bapi_essr WITH KEY po_number = clbp_content(10)&lt;/P&gt;&lt;P&gt;                                       po_item   = clbp_content+10(5)&lt;/P&gt;&lt;P&gt;                              INTO lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;      IF NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_bapi_essr.&lt;/P&gt;&lt;P&gt;        MOVE: clbp_content(10)      TO l_zbapiessrc_chars-po_number,&lt;/P&gt;&lt;P&gt;              clbp_content+10(5)    TO l_zbapiessrc_chars-po_item,&lt;/P&gt;&lt;P&gt;              clbp_content+15(40)   TO l_zbapiessrc_chars-short_text,&lt;/P&gt;&lt;P&gt;              clbp_content+71(8)    TO l_zbapiessrc_chars-ref_date.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING l_zbapiessrc_chars TO lwa_bapi_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      start of insert &amp;gt;&amp;gt;&amp;gt;                                &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF l_zbapiessrc_chars-final EQ 'X'.&lt;/P&gt;&lt;P&gt;          lwa_bapi_essr-fin_entry = l_zbapiessrc_chars-final.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      end of insert &amp;lt;&amp;lt;&amp;lt;                                  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        APPEND lwa_bapi_essr TO lt_bapi_essr.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE: clbp_content+79(18)   TO l_zbapiesllc_chars-service,&lt;/P&gt;&lt;P&gt;            clbp_content+98(13)   TO l_zbapiesllc_chars-quantity.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING l_zbapiesllc_chars TO lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;      APPEND lwa_bapi_esll TO lt_bapi_esll.&lt;/P&gt;&lt;P&gt;    ELSE.                                 "SES for Germany&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; clear l_offset.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; case clbp_content(1).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when 'K'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lt_bapi_essr to &amp;lt;bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lwa_bapi_essr to &amp;lt;wa_bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when 'P'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lt_bapi_esll to &amp;lt;bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     assign lwa_bapi_esll to &amp;lt;wa_bapi_struc&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   when others.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endcase.&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;Daten erst in die Struktur des Programms ZPLX0009 überführen und dann&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  je nach Typ move oder write in die einzelnen Felder&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF clbp_content(1) = 'K'.&lt;/P&gt;&lt;P&gt;        MOVE clbp_content+1(246) TO l_zbapiessrc_chars.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'P'.&lt;/P&gt;&lt;P&gt;        CASE clbp_content+1(1).&lt;/P&gt;&lt;P&gt;          WHEN 1.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;16(245).&lt;/P&gt;&lt;P&gt;          WHEN 2.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;261(245).&lt;/P&gt;&lt;P&gt;          WHEN 3.&lt;/P&gt;&lt;P&gt;            MOVE clbp_content&lt;EM&gt;3(243) TO l_zbapiesllc_chars&lt;/EM&gt;506(96).&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'L'.&lt;/P&gt;&lt;P&gt;      ELSEIF clbp_content(1) = 'T'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_offset = ( clbp_content+1(1) - 1 ) * 245.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF clbp_content+2(1) = 'E' OR clbp_content(1) = 'K'.&lt;/P&gt;&lt;P&gt;        CASE clbp_content(1).&lt;/P&gt;&lt;P&gt;          WHEN 'K'.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING l_zbapiessrc_chars TO lwa_bapi_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          start of insert &amp;gt;&amp;gt;&amp;gt;                            "AP13022006i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            IF l_zbapiessrc_chars-final EQ 'X'.&lt;/P&gt;&lt;P&gt;              lwa_bapi_essr-fin_entry = l_zbapiessrc_chars-final.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          end of insert &amp;lt;&amp;lt;&amp;lt;                              "AP13022006i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            APPEND lwa_bapi_essr TO lt_bapi_essr.&lt;/P&gt;&lt;P&gt;          WHEN 'P'.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING l_zbapiesllc_chars TO lwa_bapi_esll.&lt;/P&gt;&lt;P&gt;            APPEND lwa_bapi_esll TO lt_bapi_esll.&lt;/P&gt;&lt;P&gt;          WHEN 'L'.&lt;/P&gt;&lt;P&gt;          WHEN 'T'.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.  "Country determination&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;  MOVE: lt_bapi_essr[] TO t_bapi_essr[],&lt;/P&gt;&lt;P&gt;        lt_bapi_esll[] TO t_bapi_esll[].&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$--- End of INCLUDE ZXMLUU24                                --$&lt;STRONG&gt;$&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INCLUDE_ITALY&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  WRITE_PROT_TO_SPOOL&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 write_prot_to_spool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_message LIKE message.&lt;/P&gt;&lt;P&gt;  DATA: l_msgno(3) TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: l_wa_sgcses_struc LIKE i_sgcses_struc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE output_prot WITH KEY msgid = 'SE'&lt;/P&gt;&lt;P&gt;                                  msgnr = '212'.&lt;/P&gt;&lt;P&gt;*if t_headertext-ext_number ne t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;  IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_bapi_essr TO t_bapi_essr_log.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_bapi_esll TO t_bapi_esll_log.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CHECK NOT sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;No Text Upload if SES Upload was not successful:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DELETE t_headertext WHERE ext_number = t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_bapiesllc[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'Ext. Communic. Num',&lt;/P&gt;&lt;P&gt;              20 'Purchase Order', 35 'Item', 46 'Entry Sheet Text',&lt;/P&gt;&lt;P&gt;              87 'Service Number',&lt;/P&gt;&lt;P&gt;             111 'Quantity'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 2 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  LOOP AT t_bapiesllc.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 t_bapiessrc-ext_number,&lt;/P&gt;&lt;P&gt;              20 t_bapiessrc-po_number,&lt;/P&gt;&lt;P&gt;              35 t_bapiessrc-po_item,&lt;/P&gt;&lt;P&gt;              46 t_bapiesllc-short_text,&lt;/P&gt;&lt;P&gt;              87 t_bapiesllc-service,&lt;/P&gt;&lt;P&gt;             106 t_bapiesllc-quantity RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;  WRITE AT /1 'Error Messages:'.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  LOOP AT output_prot.&lt;/P&gt;&lt;P&gt;    CLEAR: l_message, l_msgno.&lt;/P&gt;&lt;P&gt;    MOVE output_prot-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = output_prot-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = output_prot-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = output_prot-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = output_prot-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = output_prot-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = output_prot-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_message.&lt;/P&gt;&lt;P&gt;    IF NOT output_prot-lblni IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 'Entry Sheet Number:', 22 l_message-msgtx.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 output_prot-msgid(5),&lt;/P&gt;&lt;P&gt;                 6 output_prot-msgtyp,&lt;/P&gt;&lt;P&gt;                 8 l_msgno,&lt;/P&gt;&lt;P&gt;                12 l_message-msgtx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 3.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " WRITE_PROT_TO_SPOOL&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  LOG_UPLOAD_SUCCESS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM log_upload_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_i_ekpo OCCURS 0,&lt;/P&gt;&lt;P&gt;          werks LIKE ekpo-werks,&lt;/P&gt;&lt;P&gt;          konnr LIKE ekpo-konnr,&lt;/P&gt;&lt;P&gt;          ktpnr LIKE ekpo-ktpnr,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          txz01 LIKE ekpo-txz01,&lt;/P&gt;&lt;P&gt;          user1 LIKE essr-user1,&lt;/P&gt;&lt;P&gt;          lwert LIKE essr-lwert,&lt;/P&gt;&lt;P&gt;          waers LIKE essr-waers,                            &lt;/P&gt;&lt;P&gt;        END OF l_i_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_i_kontr OCCURS 0,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          txz01 LIKE ekpo-txz01,&lt;/P&gt;&lt;P&gt;        END OF l_i_kontr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_i_ekpo_2 LIKE l_i_ekpo OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF l_essr,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          ebelp LIKE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          lblni LIKE essr-lblni,&lt;/P&gt;&lt;P&gt;          lwert LIKE essr-lwert,&lt;/P&gt;&lt;P&gt;          user1 LIKE essr-user1,&lt;/P&gt;&lt;P&gt;          waers LIKE essr-waers,                             &lt;/P&gt;&lt;P&gt;        END OF l_essr.&lt;/P&gt;&lt;P&gt;  DATA: l_t_essr LIKE l_essr OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_sy_datum LIKE sy-datum.&lt;/P&gt;&lt;P&gt;  DATA: l_sy_uname LIKE sy-uname.&lt;/P&gt;&lt;P&gt;  MOVE sy-datum TO l_sy_datum.&lt;/P&gt;&lt;P&gt;  MOVE sy-uname TO l_sy_uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_bapi_essr_log[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT werks konnr ktpnr ebeln ebelp FROM ekpo&lt;/P&gt;&lt;P&gt;               INTO TABLE l_i_ekpo&lt;/P&gt;&lt;P&gt;               FOR ALL ENTRIES IN t_bapi_essr_log&lt;/P&gt;&lt;P&gt;               WHERE ebeln = t_bapi_essr_log-po_number&lt;/P&gt;&lt;P&gt;               AND   ebelp = t_bapi_essr_log-po_item.&lt;/P&gt;&lt;P&gt;    IF NOT l_i_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT ebeln ebelp txz01 FROM ekpo&lt;/P&gt;&lt;P&gt;        INTO TABLE l_i_kontr&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN l_i_ekpo&lt;/P&gt;&lt;P&gt;        WHERE ebeln = l_i_ekpo-konnr&lt;/P&gt;&lt;P&gt;        AND   ebelp = l_i_ekpo-ktpnr.&lt;/P&gt;&lt;P&gt;      SORT l_i_kontr.&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;&lt;/P&gt;&lt;P&gt;  LOOP AT l_i_ekpo.&lt;/P&gt;&lt;P&gt;    CLEAR: l_essr, l_t_essr, l_i_kontr. REFRESH l_t_essr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select single ebeln ebelp max( lblni ) lwert xblnr from essr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            into l_essr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            where ebeln = l_i_ekpo-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   ebelp = l_i_ekpo-ebelp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   erdat = sy-datum&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            and   ernam = sy-uname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            group by ebeln ebelp  "no lblni!!&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     lwert xblnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT ebeln ebelp lblni lwert user1 FROM essr         &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT ebeln ebelp lblni lwert user1 waers FROM essr   &lt;/P&gt;&lt;P&gt;            INTO TABLE l_t_essr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;            AND   ebelp = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;            AND   erdat = l_sy_datum&lt;/P&gt;&lt;P&gt;            AND   ernam = l_sy_uname.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      SORT l_t_essr BY lblni DESCENDING.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     read table l_t_essr index 1 into l_essr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT l_t_essr.&lt;/P&gt;&lt;P&gt;        READ TABLE t_bapi_essr_log WITH KEY po_number = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                                            po_item   = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                                            ext_number = l_t_essr-user1.&lt;/P&gt;&lt;P&gt;        IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;          MOVE: l_t_essr-lwert TO l_i_ekpo-lwert,&lt;/P&gt;&lt;P&gt;                l_t_essr-waers TO l_i_ekpo-waers,           &lt;/P&gt;&lt;P&gt;                l_t_essr-user1 TO l_i_ekpo-user1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    modify l_i_ekpo.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          DELETE t_bapi_essr_log WHERE  po_number   = l_i_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                                 AND    po_item     = l_i_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                                 AND    ext_number  = l_t_essr-user1.&lt;/P&gt;&lt;P&gt;          APPEND l_i_ekpo TO l_i_ekpo_2.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DELETE l_i_ekpo.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLEAR l_i_ekpo.&lt;/P&gt;&lt;P&gt;  REFRESH l_i_ekpo.&lt;/P&gt;&lt;P&gt;  MOVE l_i_ekpo_2[] TO l_i_ekpo[].&lt;/P&gt;&lt;P&gt;  IF l_i_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'No data uploaded.'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;    WRITE AT: /1 'Plant', 7 'Contract', 18 'Item',&lt;/P&gt;&lt;P&gt;              29 'Contract Item Description',&lt;/P&gt;&lt;P&gt;              69 'Purch.Ord.',&lt;/P&gt;&lt;P&gt;              81 'Item', 87 'Reference', 113 'Value '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************************&lt;/P&gt;&lt;P&gt;    SDN -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;          This is the final Internal table Here u have to add field after 105&lt;/P&gt;&lt;P&gt;**********************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT l_i_ekpo.&lt;/P&gt;&lt;P&gt;      READ TABLE l_i_kontr WITH KEY ebeln = l_i_ekpo-konnr&lt;/P&gt;&lt;P&gt;                                    ebelp = l_i_ekpo-ktpnr&lt;/P&gt;&lt;P&gt;                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR 2 INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      WRITE AT: /1 l_i_ekpo-werks, 7 l_i_ekpo-konnr, 18 l_i_ekpo-ktpnr,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               29 l_i_ekpo-txz01,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                29 l_i_kontr-txz01,&lt;/P&gt;&lt;P&gt;                69 l_i_ekpo-ebeln,  81 l_i_ekpo-ebelp,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               87 l_i_ekpo-user1, 105  l_i_ekpo-lwert.    "SG24082007d&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                87 l_i_ekpo-user1.                          "SG24082007i&lt;/P&gt;&lt;P&gt;      WRITE AT: 105 l_i_ekpo-lwert CURRENCY l_i_ekpo-waers. "SG24082007i&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " LOG_UPLOAD_SUCCESS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of insert &amp;gt;&amp;gt;&amp;gt;                                      "AP13022007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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  release_ses&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM release_ses.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_frgce LIKE zpl_ses_relcodes-frgce,&lt;/P&gt;&lt;P&gt;        s_ekpo TYPE t_ekpo,&lt;/P&gt;&lt;P&gt;        l_msgno TYPE sy-msgno,&lt;/P&gt;&lt;P&gt;        l_messg LIKE message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT l_ses_no IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / text-206.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekpo INTO s_ekpo WITH KEY ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                                         ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-204.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE frgce&lt;/P&gt;&lt;P&gt;    INTO l_frgce&lt;/P&gt;&lt;P&gt;    FROM zpl_ses_relcodes&lt;/P&gt;&lt;P&gt;    WHERE bname EQ sy-uname&lt;/P&gt;&lt;P&gt;      AND werks EQ s_ekpo-werks.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0 OR l_frgce IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-204.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 text-205.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=SELP'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0340'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11R-LBLNI'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11R-LBLNI' l_ses_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=AKCH'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'ESSR-TXZ01'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=RSET'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0120'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11R-FRGCE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11R-FRGCE' l_frgce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0400'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=SAVE'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM11P-NEW_ROW' '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMLSR' '0110'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR' 'IMKPF-BLDAT'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE' '=ENTE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'ML81N' USING bdcdata&lt;/P&gt;&lt;P&gt;                   MODE   w_mode&lt;/P&gt;&lt;P&gt;                   UPDATE c_update&lt;/P&gt;&lt;P&gt;                   MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;    CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;    MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;        msgno = l_msgno&lt;/P&gt;&lt;P&gt;        msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;        msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;        msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;        msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;        msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        messg = l_messg.&lt;/P&gt;&lt;P&gt;    WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " release_ses&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  find_ses_number&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM find_ses_number .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_ses_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_ses_no&lt;/P&gt;&lt;P&gt;                WHERE user1 = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    WRITE: / text-206.&lt;/P&gt;&lt;P&gt;    WRITE: / text-204.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " find_ses_number&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  select_additional_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM select_additional_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lines TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_bapiessrc LINES lines.&lt;/P&gt;&lt;P&gt;  CHECK lines NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT ebeln ebelp werks packno&lt;/P&gt;&lt;P&gt;    INTO TABLE i_ekpo&lt;/P&gt;&lt;P&gt;    FROM ekpo&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_bapiessrc&lt;/P&gt;&lt;P&gt;    WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;      AND ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " select_additional_data&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  check_estimated_value&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM check_estimated_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: s_ekpo TYPE t_ekpo,&lt;/P&gt;&lt;P&gt;        l_mesg(200),&lt;/P&gt;&lt;P&gt;        l_commitment LIKE esuh-commitment,&lt;/P&gt;&lt;P&gt;        l_actvalue LIKE esuh-actvalue,&lt;/P&gt;&lt;P&gt;        l_exc_value LIKE esuh-commitment,&lt;/P&gt;&lt;P&gt;        l_tmptext1(30),&lt;/P&gt;&lt;P&gt;        l_tmptext2(30),&lt;/P&gt;&lt;P&gt;        l_waers LIKE esuh-waers.                            &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_ekpo INTO s_ekpo WITH KEY ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                                         ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  " check estimated value&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT SINGLE commitment actvalue                        &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INTO (l_commitment, l_actvalue)                        &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE commitment actvalue waers                   &lt;/P&gt;&lt;P&gt;    INTO (l_commitment, l_actvalue, l_waers)                &lt;/P&gt;&lt;P&gt;    FROM esuh&lt;/P&gt;&lt;P&gt;    WHERE packno = s_ekpo-packno.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_actvalue &amp;gt; l_commitment.&lt;/P&gt;&lt;P&gt;    l_exc_value = l_actvalue - l_commitment.&lt;/P&gt;&lt;P&gt;    WRITE: l_commitment TO l_tmptext1&lt;/P&gt;&lt;P&gt;           CURRENCY l_waers,                                &lt;/P&gt;&lt;P&gt;           l_exc_value TO l_tmptext2&lt;/P&gt;&lt;P&gt;           CURRENCY l_waers.                               &lt;/P&gt;&lt;P&gt;    CONCATENATE text-207 l_tmptext1 text-208&lt;/P&gt;&lt;P&gt;                l_tmptext2 text-209 INTO l_mesg&lt;/P&gt;&lt;P&gt;                SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CONDENSE l_mesg.&lt;/P&gt;&lt;P&gt;    WRITE: / l_mesg.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_estimated_value&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insert &amp;lt;&amp;lt;&amp;lt;                                        &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;begin of insert &amp;gt;&amp;gt; SG24082007i&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM change_account.&lt;/P&gt;&lt;P&gt;  DATA: i_sakto TYPE STANDARD TABLE OF ekkn-sakto,&lt;/P&gt;&lt;P&gt;        l_sakto TYPE ekkn-sakto,&lt;/P&gt;&lt;P&gt;        l_line(10) TYPE c,&lt;/P&gt;&lt;P&gt;        l_msgno TYPE sy-msgno,&lt;/P&gt;&lt;P&gt;        l_messg LIKE message,&lt;/P&gt;&lt;P&gt;        p(2) TYPE c,&lt;/P&gt;&lt;P&gt;        w LIKE sy-index,&lt;/P&gt;&lt;P&gt;        w_field(20) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_ses_no.&lt;/P&gt;&lt;P&gt;  CLEAR: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;  REFRESH: bdcdata, bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( lblni ) FROM essr INTO l_ses_no&lt;/P&gt;&lt;P&gt;                WHERE user1 = t_bapiessrc-ext_number&lt;/P&gt;&lt;P&gt;                AND   loekz = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    SELECT sakto FROM ekkn&lt;/P&gt;&lt;P&gt;                 INTO TABLE i_sakto&lt;/P&gt;&lt;P&gt;                      WHERE ebeln = t_bapiessrc-po_number&lt;/P&gt;&lt;P&gt;                        AND ebelp = t_bapiessrc-po_item.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'RM11RL00'       '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=ONLI'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'S_LBLNI-LOW'    l_ses_no.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_LIST'         ' '.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_DIRECT'       'X'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'P_LISTU'        ' '.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_CURSOR'     'P_DIRECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSR'       '0100'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=SERV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_bapiesllc WHERE ext_number EQ t_bapiessrc-ext_number.&lt;/P&gt;&lt;P&gt;        l_line = t_bapiesllc-line_no.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_dynpro USING 'SAPLMLSP'       '0210'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_CURSOR'     'RM11P-NEW_ROW'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_OKCODE'     '=CONT'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'RM11P-NEW_ROW'  l_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        PERFORM bdc_dynpro USING 'SAPLMLSK'       '0200'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_CURSOR'     'ESKN-SAKTO(01)'.&lt;/P&gt;&lt;P&gt;        PERFORM bdc_field  USING 'BDC_OKCODE'     '=BACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: p, w.&lt;/P&gt;&lt;P&gt;        LOOP AT i_sakto INTO l_sakto.&lt;/P&gt;&lt;P&gt;          ADD 1 TO w.&lt;/P&gt;&lt;P&gt;          CLEAR: w_field, p.&lt;/P&gt;&lt;P&gt;          UNPACK w TO p.&lt;/P&gt;&lt;P&gt;          w_field+00(11) = 'ESKN-SAKTO('.&lt;/P&gt;&lt;P&gt;          w_field+11(02) = p.&lt;/P&gt;&lt;P&gt;          w_field+13(01) = ')'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field USING w_field l_sakto.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro USING 'SAPLMLSP'       '0210'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_CURSOR'     'ESLL-KTEXT1(01)'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'BDC_OKCODE'     '=SAV'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field  USING 'RM11P-NEW_ROW'  l_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'ML81' USING bdcdata MODE p_dismod UPDATE c_update&lt;/P&gt;&lt;P&gt;         MESSAGES INTO bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT bdcmsgcoll.&lt;/P&gt;&lt;P&gt;        IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;          WRITE AT: /1 text-210.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CHECK bdcmsgcoll-msgnr CO ' 0123456789'.&lt;/P&gt;&lt;P&gt;        MOVE  bdcmsgcoll-msgnr TO l_msgno.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            msgid = bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;            msgno = l_msgno&lt;/P&gt;&lt;P&gt;            msgty = bdcmsgcoll-msgtyp&lt;/P&gt;&lt;P&gt;            msgv1 = bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;            msgv2 = bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;            msgv3 = bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;            msgv4 = bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            messg = l_messg.&lt;/P&gt;&lt;P&gt;        WRITE AT: /3 l_messg-msgtx.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "change_account&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;waiting for your reply.&lt;/P&gt;&lt;P&gt;thanking you in anticipation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2007 06:10:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020802#M714166</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-15T06:10:01Z</dc:date>
    </item>
    <item>
      <title>Re: adding a field in a report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020803#M714167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;add that fileds in the all locations where you need it like &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in internal table declaration , write statement , select statement &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these are the main areas where you have to add that 2 fileds&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2007 06:28:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020803#M714167</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-15T06:28:45Z</dc:date>
    </item>
    <item>
      <title>Re: adding a field in a report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020804#M714168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;add two fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;declearstion.&lt;/P&gt;&lt;P&gt;select&lt;/P&gt;&lt;P&gt;write final field cat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2007 06:30:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/adding-a-field-in-a-report/m-p/3020804#M714168</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-15T06:30:32Z</dc:date>
    </item>
  </channel>
</rss>

