<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BDC in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394152#M191220</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;1) When we run the BDC in background the warning messages will be suppressed by the system itself.&lt;/P&gt;&lt;P&gt;No need to supress them seperately.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can catch the errors from the table T100 after calling the transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)READ TABLE it_messtab INDEX sy-tfill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM t100 WHERE sprsl = it_messtab-msgspra AND   arbgb = it_messtab-msgid  AND   msgnr = it_messtab-msgnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Simha.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Jul 2006 09:42:01 GMT</pubDate>
    <dc:creator>Simha_</dc:creator>
    <dc:date>2006-07-05T09:42:01Z</dc:date>
    <item>
      <title>BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394149#M191217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to supress the warning messages when BDC is running in Background? and How we will download the Error log from SM35 to Excel?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Anu.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:36:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394149#M191217</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-05T09:36:05Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394150#M191218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we have structure BDCMSGCOlL where u can handle errors.And loop an that table and then download the error which occured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this help u .Go to structure BDCMSGCOLL and used where used list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:39:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394150#M191218</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-05T09:39:19Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394151#M191219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had developed a program to download the log into EXCEL. You need to provide the session QUEUE ID as input. Please use the code below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZDOWNLOAD_LOG MESSAGE-ID 00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  queue_id LIKE apqi-qid OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE rsbdcil3.   "Read plain log from TemSe&lt;/P&gt;&lt;P&gt;TYPE-POOLS: icon, sdydo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;  apqi, apqd, apql, t100, snap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONTROLS:&lt;/P&gt;&lt;P&gt;  tc_tcodes   TYPE TABLEVIEW USING SCREEN 200,&lt;/P&gt;&lt;P&gt;  tc_dynpro   TYPE TABLEVIEW USING SCREEN 300,&lt;/P&gt;&lt;P&gt;  tc_protocol TYPE TABLEVIEW USING SCREEN 400,&lt;/P&gt;&lt;P&gt;  tc_bdcld    TYPE TABLEVIEW USING SCREEN 600,&lt;/P&gt;&lt;P&gt;  tc_q_tcodes TYPE TABLEVIEW USING SCREEN 700,&lt;/P&gt;&lt;P&gt;  tab_dynpro  TYPE TABSTRIP,&lt;/P&gt;&lt;P&gt;  tab_apqi    TYPE TABSTRIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this table keeps those tcodes actually displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BEGIN OF bdc_tcodes OCCURS 0,&lt;/P&gt;&lt;P&gt;    index TYPE i, tcode LIKE sy-tcode, status(1), s_text(16),&lt;/P&gt;&lt;P&gt;  END OF bdc_tcodes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this table keeps all tcodes of the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BEGIN OF all_bdc_tcodes OCCURS 0,&lt;/P&gt;&lt;P&gt;    index TYPE i, tcode LIKE sy-tcode, status(1), s_text(16),&lt;/P&gt;&lt;P&gt;  END OF all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this table keeps those dynpros actually displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BEGIN OF bdc_dynpro OCCURS 0,&lt;/P&gt;&lt;P&gt;    program LIKE sy-cprog, dynpro LIKE sy-dynnr,&lt;/P&gt;&lt;P&gt;    fnam LIKE bdcdata-fnam, fval LIKE bdcdata-fval,&lt;/P&gt;&lt;P&gt;    index TYPE i,&lt;/P&gt;&lt;P&gt;  END OF bdc_dynpro,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this table keeps all dynpros of the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BEGIN OF all_bdc_dynpro OCCURS 0,&lt;/P&gt;&lt;P&gt;    program LIKE sy-cprog, dynpro LIKE sy-dynnr,&lt;/P&gt;&lt;P&gt;    fnam LIKE bdcdata-fnam, fval LIKE bdcdata-fval,&lt;/P&gt;&lt;P&gt;    index TYPE i,&lt;/P&gt;&lt;P&gt;  END OF all_bdc_dynpro,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dynpro_index TYPE i,&lt;/P&gt;&lt;P&gt;  cat_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this table keeps protocol lines to be displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BEGIN OF bdc_protocol OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdclm.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;    longtext TYPE bdc_mpar,&lt;/P&gt;&lt;P&gt;  END OF bdc_protocol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  it_apqd LIKE apqd OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;  udat LIKE apqd-vardata, sdat LIKE apqd-vardata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF tf OCCURS 0,       "interne tabelle mit dynprofeldern&lt;/P&gt;&lt;P&gt;    count TYPE i VALUE 0,     "zum abmischen&lt;/P&gt;&lt;P&gt;    trcd(4),stat(4),&lt;/P&gt;&lt;P&gt;    pgm(8),                   "programmname&lt;/P&gt;&lt;P&gt;    dyn(4) TYPE n,            "dynpronummer&lt;/P&gt;&lt;P&gt;    fname(35), farg(132), fstart(5) TYPE p, fende(5) TYPE p,&lt;/P&gt;&lt;P&gt;  END OF tf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;needed for check if TemSe interface is active:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: protparam(60) VALUE 'bdc/new_protocol',&lt;/P&gt;&lt;P&gt;      newprot(3)    VALUE 'off'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;message header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF bdcmh,&lt;/P&gt;&lt;P&gt;    mtype, state,&lt;/P&gt;&lt;P&gt;    tcode(20),                                              " (4 -&amp;gt; 20)&lt;/P&gt;&lt;P&gt;    prog(40),                                               " (8 -&amp;gt; 40)&lt;/P&gt;&lt;P&gt;    dynr(4), sepc, filler,&lt;/P&gt;&lt;P&gt;  END OF bdcmh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;transaction header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF bdcth,&lt;/P&gt;&lt;P&gt;    mtype, state,&lt;/P&gt;&lt;P&gt;    tcode(20),                                              " (4 -&amp;gt; 20)&lt;/P&gt;&lt;P&gt;    postg, print,&lt;/P&gt;&lt;P&gt;    msgid(20),                                              " (2 -&amp;gt; 20)&lt;/P&gt;&lt;P&gt;  END OF bdcth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  bdcmhlen TYPE i VALUE 68, " (20 -&amp;gt; 68 ) MessageHeaderlaenge&lt;/P&gt;&lt;P&gt;  dcnt TYPE i, tcnt TYPE i, gencnt TYPE i, delcnt TYPE i, wcount TYPE i,&lt;/P&gt;&lt;P&gt;  mfstart TYPE i, mfende TYPE i, mflen TYPE i, mfart(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA BEGIN OF bdclm  OCCURS 0.     " ITabelle der Messageseintraege&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdclm.  " LogTabelle&lt;/P&gt;&lt;P&gt;DATA: counter TYPE i,&lt;/P&gt;&lt;P&gt;      longtext TYPE bdc_mpar,&lt;/P&gt;&lt;P&gt;      isdetail(1) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF bdclm .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lm LIKE bdclm,&lt;/P&gt;&lt;P&gt;      save_mpar TYPE bdc_mpar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA BEGIN OF bdcld  OCCURS 0.     " ITabelle der Verzeichniseintraege&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcld.   " LogTabelle aller Protokolle&lt;/P&gt;&lt;P&gt;DATA: logname(80),                 " protokollpfad&lt;/P&gt;&lt;P&gt;      local_host(12),              " lokaler rechner&lt;/P&gt;&lt;P&gt;      cnt TYPE i,                  " satzzaehler&lt;/P&gt;&lt;P&gt;      active(1) TYPE c,            " active flag&lt;/P&gt;&lt;P&gt;      temseid TYPE rstsoname.      " TemSe ID&lt;/P&gt;&lt;P&gt;DATA END OF bdcld .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;   logtab LIKE bdcld OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;   logtab_temse LIKE apql OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  main_okcode TYPE fcode,&lt;/P&gt;&lt;P&gt;  d0500_fcode TYPE fcode,&lt;/P&gt;&lt;P&gt;  d0600_fcode TYPE fcode,&lt;/P&gt;&lt;P&gt;  d0700_fcode TYPE fcode,&lt;/P&gt;&lt;P&gt;  d0701_fcode TYPE fcode,&lt;/P&gt;&lt;P&gt;  tc_mark(1),&lt;/P&gt;&lt;P&gt;  counter TYPE i,&lt;/P&gt;&lt;P&gt;  status_icon(32),&lt;/P&gt;&lt;P&gt;  dynprotab_subscreen_dynpro LIKE sy-dynnr,&lt;/P&gt;&lt;P&gt;  header_subscreen_dynpro LIKE sy-dynnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  ex_date(12), string(48), tab_proto(48).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Radio buttons and checkbox on screen 0500&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF rb,&lt;/P&gt;&lt;P&gt;     tcodes_all VALUE 'X', tcodes_error,&lt;/P&gt;&lt;P&gt;     fieldlist VALUE ' ',&lt;/P&gt;&lt;P&gt;     pro_all VALUE 'X', pro_tcode, pro_session,&lt;/P&gt;&lt;P&gt;     log_detail,&lt;/P&gt;&lt;P&gt;  END OF rb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Flags for identifying contents of the bdc_... tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  bdc_tcodes_content(1),   "a: all, e: errors&lt;/P&gt;&lt;P&gt;  bdc_dynpro_content(1),   "f: fieldlist, s: screens only&lt;/P&gt;&lt;P&gt;  bdc_protocol_content(1), "a: all, t: for transaction, s: for session&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bdc_lines LIKE sy-index,&lt;/P&gt;&lt;P&gt;  c_field(132),&lt;/P&gt;&lt;P&gt;  c_line TYPE i,&lt;/P&gt;&lt;P&gt;  selected_index LIKE sy-index,&lt;/P&gt;&lt;P&gt;  selected_protocol LIKE sy-index,&lt;/P&gt;&lt;P&gt;  tc_index LIKE sy-index,&lt;/P&gt;&lt;P&gt;  tc_select LIKE sy-index,&lt;/P&gt;&lt;P&gt;  tcode_index LIKE bdc_tcodes-index,&lt;/P&gt;&lt;P&gt;  tcode_index_apqd LIKE bdc_tcodes-index,&lt;/P&gt;&lt;P&gt;  1st_bdc_tcode_index LIKE bdc_tcodes-index,&lt;/P&gt;&lt;P&gt;  i_tcodes TYPE i,&lt;/P&gt;&lt;P&gt;  i_protocols TYPE i,&lt;/P&gt;&lt;P&gt;  tcode LIKE sy-tcode,&lt;/P&gt;&lt;P&gt;  tcode_status(16),&lt;/P&gt;&lt;P&gt;  previous_tab(64).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data needed for CATT simulation of screens&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF bdc_subscreen,&lt;/P&gt;&lt;P&gt;    program LIKE sy-cprog,&lt;/P&gt;&lt;P&gt;    dynpro  LIKE sy-dynnr,&lt;/P&gt;&lt;P&gt;    subscr(64),&lt;/P&gt;&lt;P&gt;  END OF bdc_subscreen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table for keeping fcodes to be excluded from pf-status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF ex_cua OCCURS 2,&lt;/P&gt;&lt;P&gt;    fcode LIKE rsmpe-func,&lt;/P&gt;&lt;P&gt;  END OF ex_cua.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data for keeping scoll infos&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  current_page LIKE sy-tabix VALUE 1,&lt;/P&gt;&lt;P&gt;  new_page     LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;  total_pages  LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;  new_line     LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;  entries      LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;  loopc        LIKE sy-loopc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data for queue dump&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF q,&lt;/P&gt;&lt;P&gt;    tcode_index LIKE all_bdc_tcodes-index,&lt;/P&gt;&lt;P&gt;    itab_index LIKE all_bdc_tcodes-index,&lt;/P&gt;&lt;P&gt;    c_field(132),&lt;/P&gt;&lt;P&gt;    c_line LIKE sy-index,&lt;/P&gt;&lt;P&gt;    c_area(132),&lt;/P&gt;&lt;P&gt;    wa LIKE LINE OF all_bdc_tcodes,&lt;/P&gt;&lt;P&gt;    control_init VALUE 'X',&lt;/P&gt;&lt;P&gt;    reuse_control,&lt;/P&gt;&lt;P&gt;    uc_bytes TYPE i,&lt;/P&gt;&lt;P&gt;    c(1),&lt;/P&gt;&lt;P&gt;    show_hex VALUE ' ',&lt;/P&gt;&lt;P&gt;  END OF q.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  t TYPE sdydo_text_element,&lt;/P&gt;&lt;P&gt;  c(128).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF block,&lt;/P&gt;&lt;P&gt;    dt     TYPE REF TO cl_dd_table_element,&lt;/P&gt;&lt;P&gt;    dta    TYPE REF TO cl_dd_table_area,&lt;/P&gt;&lt;P&gt;  END OF block.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  it_blocks TYPE STANDARD TABLE OF block,&lt;/P&gt;&lt;P&gt;  b_wa TYPE block.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  dd      TYPE REF TO cl_dd_document,&lt;/P&gt;&lt;P&gt;  cust    TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF cx,&lt;/P&gt;&lt;P&gt;    char(1) TYPE c,&lt;/P&gt;&lt;P&gt;    hex(4)  TYPE x,&lt;/P&gt;&lt;P&gt;    xtoc(8) TYPE c,&lt;/P&gt;&lt;P&gt;  END OF cx,&lt;/P&gt;&lt;P&gt;  uc_1(1) TYPE x,&lt;/P&gt;&lt;P&gt;  uc_2(2) TYPE x,&lt;/P&gt;&lt;P&gt;  uc_4(4) TYPE x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  it_cx TYPE STANDARD TABLE OF cx,&lt;/P&gt;&lt;P&gt;  cx TYPE cx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF count,&lt;/P&gt;&lt;P&gt;    start TYPE i,&lt;/P&gt;&lt;P&gt;    index TYPE i,&lt;/P&gt;&lt;P&gt;    part  TYPE i,&lt;/P&gt;&lt;P&gt;    rest  TYPE i,&lt;/P&gt;&lt;P&gt;  END OF count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  cspan TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;  nr_cols TYPE i VALUE 64,&lt;/P&gt;&lt;P&gt;  reload_apqi VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF apqdcnt,&lt;/P&gt;&lt;P&gt;    transcntb TYPE apq_tran,  "neu&lt;/P&gt;&lt;P&gt;    msgcntb   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcnte TYPE apq_tran,  "fehlerhaft&lt;/P&gt;&lt;P&gt;    msgcnte   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcnto TYPE apq_tran,  "noch zu verarbeiten&lt;/P&gt;&lt;P&gt;    msgcnto   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcntf TYPE apq_tran,  "verarbeitet&lt;/P&gt;&lt;P&gt;    msgcntf   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcntd TYPE apq_tran,  "gelöscht&lt;/P&gt;&lt;P&gt;    msgcntd   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcnt  TYPE apq_tran,  "enthält aktuell&lt;/P&gt;&lt;P&gt;    msgcnt    TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcntx TYPE apq_tran,  "entfernt&lt;/P&gt;&lt;P&gt;    msgcntx   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;    transcntp TYPE apq_tran,  "angelegt&lt;/P&gt;&lt;P&gt;    msgcntp   TYPE apq_reco,&lt;/P&gt;&lt;P&gt;  END OF apqdcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  dynpro_cnt TYPE i,&lt;/P&gt;&lt;P&gt;  show_dynpro_cnt VALUE ' ',&lt;/P&gt;&lt;P&gt;  filename  TYPE string,&lt;/P&gt;&lt;P&gt;  lt_string TYPE char4000  OCCURS 0,&lt;/P&gt;&lt;P&gt;  wa_string TYPE char4000,&lt;/P&gt;&lt;P&gt;  p_cnt(8).&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM prepare USING queue_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&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  prepare&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM prepare USING qid TYPE apqi-qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: bdc_tcodes_content, bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM apqi WHERE qid = qid.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i307(00) WITH 'Lesen'(010) 'mit Queue-ID'(011) qid.&lt;/P&gt;&lt;P&gt;    LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM fill_all_bdc_tcodes.        " find all transactions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM get_logfiles_for_qid.       " logfiles -&amp;gt; bdcld&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM get_log USING 1.          " most recent log -&amp;gt; bdclm&lt;/P&gt;&lt;P&gt;  selected_protocol = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PARAMETER ID 'RSBDC_ANALYSE_RB' FIELD rb.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    rb-tcodes_all = 'X'. rb-pro_all = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ex_cua-fcode = 'FL_ON'.  APPEND ex_cua.&lt;/P&gt;&lt;P&gt;  ex_cua-fcode = 'FL_OFF'. APPEND ex_cua.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "prepare&lt;/P&gt;&lt;P&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;      Module loopc&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;&lt;/P&gt;&lt;P&gt;MODULE loopc OUTPUT.&lt;/P&gt;&lt;P&gt;  loopc = sy-loopc.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "loopc OUTPUT&lt;/P&gt;&lt;P&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;      Module status_main&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;&lt;/P&gt;&lt;P&gt;MODULE status_main OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR main_okcode.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR '0100' WITH apqi-groupid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set text of tabstrip tab for protocol display or set tab invisible if&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;no protocol was found for the qid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF screen-name = 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;      IF selected_protocol IS INITIAL.&lt;/P&gt;&lt;P&gt;        screen-invisible = 1. MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        WRITE bdcld-edate TO ex_date.&lt;/P&gt;&lt;P&gt;        CONCATENATE '@96@' 'Protokoll vom'(020) ex_date    "ICON_HISTORY&lt;/P&gt;&lt;P&gt;                    INTO tab_proto SEPARATED BY ' '.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set header and subscreen dynpro depending on active tab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;      SET PF-STATUS 'PF_MAIN' EXCLUDING ex_cua.&lt;/P&gt;&lt;P&gt;      dynprotab_subscreen_dynpro = '0200'.&lt;/P&gt;&lt;P&gt;      header_subscreen_dynpro    = '0201'.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;      IF rb-fieldlist = 'X'.&lt;/P&gt;&lt;P&gt;        SET PF-STATUS 'PF_MAIN_NAVI' EXCLUDING 'FL_ON'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SET PF-STATUS 'PF_MAIN_NAVI' EXCLUDING 'FL_OFF'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      dynprotab_subscreen_dynpro = '0300'.&lt;/P&gt;&lt;P&gt;      header_subscreen_dynpro    = '0301'.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;      IF rb-pro_tcode = 'X'.&lt;/P&gt;&lt;P&gt;        SET PF-STATUS 'PF_MAIN_NAVI' EXCLUDING ex_cua.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SET PF-STATUS 'PF_MAIN' EXCLUDING ex_cua.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      dynprotab_subscreen_dynpro = '0400'.&lt;/P&gt;&lt;P&gt;      header_subscreen_dynpro    = '0401'.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      SET PF-STATUS 'PF_MAIN' EXCLUDING ex_cua.&lt;/P&gt;&lt;P&gt;      tab_dynpro-activetab = 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;      dynprotab_subscreen_dynpro = '0200'.&lt;/P&gt;&lt;P&gt;      header_subscreen_dynpro    = '0201'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is this the first call?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF tcode_index IS INITIAL.&lt;/P&gt;&lt;P&gt;    tcode_index  = 1.&lt;/P&gt;&lt;P&gt;    tcode        = all_bdc_tcodes-tcode.&lt;/P&gt;&lt;P&gt;    tcode_status = all_bdc_tcodes-s_text.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  tcode_index was already set in PAI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tcode        = bdc_tcodes-tcode.&lt;/P&gt;&lt;P&gt;    tcode_status = bdc_tcodes-s_text.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "status_main OUTPUT&lt;/P&gt;&lt;P&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;      Module exit_main&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;&lt;/P&gt;&lt;P&gt;MODULE exit_main INPUT.&lt;/P&gt;&lt;P&gt;  SET PARAMETER ID 'RSBDC_ANALYSE_RB' FIELD rb.&lt;/P&gt;&lt;P&gt;  LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "exit_main INPUT&lt;/P&gt;&lt;P&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;      Module user_command_main&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;&lt;/P&gt;&lt;P&gt;MODULE user_command_main INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF tab_dynpro-activetab &amp;lt;&amp;gt; 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;    previous_tab = tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE main_okcode.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  change the active tab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;      tab_dynpro-activetab = 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;      tab_dynpro-activetab = 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;      tab_dynpro-activetab = 'TAB_PROTO'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  select entry for display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'DISPLAY'.&lt;/P&gt;&lt;P&gt;      PERFORM set_new_display.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  change the viewing options&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'VIEW_OPT'.&lt;/P&gt;&lt;P&gt;      CALL SCREEN 500 STARTING AT 5 5.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  show list of protocols&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'PROTO'.&lt;/P&gt;&lt;P&gt;      IF selected_protocol &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        CALL SCREEN 600 STARTING AT 5 5.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE s324(00).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    WHEN 'PROTO_REFRESH'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; reload protocol file (while watching running sessions)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          text = 'Protokoll wird erneut gelesen ...'(006).&lt;/P&gt;&lt;P&gt;      PERFORM get_log USING selected_protocol.&lt;/P&gt;&lt;P&gt;      PERFORM extend_message_texts.&lt;/P&gt;&lt;P&gt;      CLEAR bdc_protocol_content.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  switch field list on or off&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'FL_ON'. rb-fieldlist = 'X'.&lt;/P&gt;&lt;P&gt;    WHEN 'FL_OFF'. rb-fieldlist = ' '.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  go to first transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'FIRST'.&lt;/P&gt;&lt;P&gt;      IF tcode_index &amp;gt; 1.&lt;/P&gt;&lt;P&gt;        READ TABLE bdc_tcodes INDEX 1.&lt;/P&gt;&lt;P&gt;        tcode_index = 1.&lt;/P&gt;&lt;P&gt;        PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;        CLEAR: bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  go to next transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'NEXT'.&lt;/P&gt;&lt;P&gt;      IF tcode_index &amp;lt; i_tcodes.&lt;/P&gt;&lt;P&gt;        tcode_index = tcode_index + 1.&lt;/P&gt;&lt;P&gt;        READ TABLE bdc_tcodes INDEX tcode_index.&lt;/P&gt;&lt;P&gt;        PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;        CLEAR: bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  go to previous transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'PREV'.&lt;/P&gt;&lt;P&gt;      IF tcode_index &amp;gt; 1.&lt;/P&gt;&lt;P&gt;        tcode_index = tcode_index - 1.&lt;/P&gt;&lt;P&gt;        READ TABLE bdc_tcodes INDEX tcode_index.&lt;/P&gt;&lt;P&gt;        PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;        CLEAR: bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  go to last transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'LAST'.&lt;/P&gt;&lt;P&gt;      IF tcode_index &amp;lt; i_tcodes.&lt;/P&gt;&lt;P&gt;        tcode_index = i_tcodes.&lt;/P&gt;&lt;P&gt;        READ TABLE bdc_tcodes INDEX i_tcodes.&lt;/P&gt;&lt;P&gt;        PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;        CLEAR: bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  scrolling in table controls&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'P-' OR 'P--' OR 'P&lt;EM&gt;' OR 'P&lt;/EM&gt;+'.&lt;/P&gt;&lt;P&gt;      PERFORM scrolling.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  display queue dump&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'QUEUE'.&lt;/P&gt;&lt;P&gt;      CALL SCREEN '0700'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  display header (APQI)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'APQI'.&lt;/P&gt;&lt;P&gt;      CALL SCREEN '0701'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  recalculate dynpro counters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'DISP_CNT'.&lt;/P&gt;&lt;P&gt;      PERFORM recalculate_counters.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  leave this nice program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN 'BACK' OR 'END'.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'RSBDC_ANALYSE_RB' FIELD rb.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      "&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if field list or protocol chosen, but no transaction has been&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;scanned yet, it's now time to read the first transaction from APQD&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF ( main_okcode = 'TAB_LIST' OR&lt;/P&gt;&lt;P&gt;       main_okcode = 'TAB_PROTO' ) AND&lt;/P&gt;&lt;P&gt;     tcode_index_apqd IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE bdc_tcodes INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;      tcode_index_apqd = bdc_tcodes-index.&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;ENDMODULE.                    "user_command_main INPUT&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;       Module fill_bdc_tcodes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         copy transactions from all_bdc_tcodes to bdc_tcodes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         according to rb-settings&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;MODULE fill_bdc_tcodes OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check whether contents are already up to date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF show_dynpro_cnt = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      IF screen-group1 = 'DCT'.&lt;/P&gt;&lt;P&gt;        screen-invisible = 0.&lt;/P&gt;&lt;P&gt;        screen-active = 1.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF screen-name = 'CMD_DISP_CNT'.&lt;/P&gt;&lt;P&gt;        screen-invisible = 1.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF bdc_tcodes_content = 'A' AND rb-tcodes_all = 'X'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF bdc_tcodes_content = 'E' AND rb-tcodes_error = 'X'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill bdc_tcodes according to the settings in screen 500&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR bdc_tcodes. REFRESH bdc_tcodes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rb-tcodes_all ='X'.&lt;/P&gt;&lt;P&gt;    LOOP AT all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;      bdc_tcodes = all_bdc_tcodes. APPEND bdc_tcodes.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_tcodes_content = 'A'.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-tcodes_error = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT all_bdc_tcodes WHERE status = 'E'.&lt;/P&gt;&lt;P&gt;      bdc_tcodes = all_bdc_tcodes. APPEND bdc_tcodes.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_tcodes_content = 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE bdc_tcodes LINES bdc_lines.&lt;/P&gt;&lt;P&gt;  i_tcodes = bdc_lines.&lt;/P&gt;&lt;P&gt;  tc_tcodes-lines = bdc_lines.&lt;/P&gt;&lt;P&gt;  CLEAR tcode_index_apqd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE bdc_tcodes INDEX 1.&lt;/P&gt;&lt;P&gt;  1st_bdc_tcode_index = bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;  tcode_index = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "fill_bdc_tcodes OUTPUT&lt;/P&gt;&lt;P&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;       Module fill_bdc_dynpro&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         copy dynpro data from all_bdc_dynpro to bdc_bdc_dynpro&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         according to rb-settings&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;MODULE fill_bdc_dynpro OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: wa LIKE LINE OF tc_dynpro-cols,&lt;/P&gt;&lt;P&gt;        tline LIKE sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tline = tc_dynpro-top_line.&lt;/P&gt;&lt;P&gt;  tc_dynpro-top_line = tline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;hide fields if no detailed field list shall be displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT tc_dynpro-cols INTO wa.&lt;/P&gt;&lt;P&gt;    IF sy-tabix = 3 OR sy-tabix = 4.&lt;/P&gt;&lt;P&gt;      IF rb-fieldlist = 'X'.&lt;/P&gt;&lt;P&gt;        CLEAR wa-invisible.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        wa-invisible = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY tc_dynpro-cols FROM wa.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is bdc_dynpro_content already correctly filled ?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF rb-fieldlist = ' ' AND bdc_dynpro_content = 'S'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-fieldlist = 'X' AND bdc_dynpro_content = 'F'.&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 bdc_dynpro. REFRESH bdc_dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rb-fieldlist = ' '.&lt;/P&gt;&lt;P&gt;    LOOP AT all_bdc_dynpro WHERE NOT program IS INITIAL.&lt;/P&gt;&lt;P&gt;      bdc_dynpro = all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;      APPEND bdc_dynpro.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_dynpro_content = 'S'.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-fieldlist = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;      bdc_dynpro = all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;      APPEND bdc_dynpro.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_dynpro_content = 'F'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE bdc_dynpro LINES bdc_lines.&lt;/P&gt;&lt;P&gt;  tc_dynpro-lines = bdc_lines.&lt;/P&gt;&lt;P&gt;  tc_dynpro-top_line = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "fill_bdc_dynpro OUTPUT&lt;/P&gt;&lt;P&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;       Module fill_bdc_protocol&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         copy messages from bdclm to bdc_protocol&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         according to rb-settings&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;MODULE fill_bdc_protocol OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rb-pro_all = 'X' AND bdc_protocol_content = 'A'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-pro_tcode = 'X' AND bdc_protocol_content = 'T'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-pro_session = 'X' AND bdc_protocol_content = 'S'.&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 bdc_protocol. REFRESH bdc_protocol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rb-pro_all = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT bdclm.&lt;/P&gt;&lt;P&gt;      IF rb-log_detail  = ' ' AND bdclm-isdetail = 'X'.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING bdclm TO bdc_protocol.&lt;/P&gt;&lt;P&gt;      APPEND bdc_protocol.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_protocol_content = 'A'.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-pro_tcode = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT bdclm WHERE tcnt = tcode_index_apqd.&lt;/P&gt;&lt;P&gt;      IF rb-log_detail  = ' ' AND bdclm-isdetail = 'X'.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING bdclm TO bdc_protocol.&lt;/P&gt;&lt;P&gt;      APPEND bdc_protocol.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_protocol_content = 'T'.&lt;/P&gt;&lt;P&gt;  ELSEIF rb-pro_session = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT bdclm WHERE tcnt = ' '.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING bdclm TO bdc_protocol.&lt;/P&gt;&lt;P&gt;      APPEND bdc_protocol.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    bdc_protocol_content = 'S'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE bdc_protocol LINES bdc_lines.&lt;/P&gt;&lt;P&gt;  tc_protocol-lines = bdc_lines.&lt;/P&gt;&lt;P&gt;  tc_protocol-top_line = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "fill_bdc_protocol OUTPUT&lt;/P&gt;&lt;P&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;       Module check_bdc_tcodes&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;&lt;/P&gt;&lt;P&gt;MODULE check_bdc_protocol OUTPUT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display lines intensified if they contain e- or a-messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF bdc_protocol-mart = 'E'&lt;/P&gt;&lt;P&gt;  OR bdc_protocol-mart = 'A'.&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      screen-intensified = 1. MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;skip empty lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF bdc_protocol-indate IS INITIAL.&lt;/P&gt;&lt;P&gt;    EXIT FROM STEP-LOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "check_bdc_protocol OUTPUT&lt;/P&gt;&lt;P&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;       Module get_cursor_position&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;&lt;/P&gt;&lt;P&gt;MODULE get_cursor_position INPUT.&lt;/P&gt;&lt;P&gt;  GET CURSOR FIELD c_field LINE c_line.&lt;/P&gt;&lt;P&gt;  IF c_line &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CASE tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;      WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;        selected_index = tc_tcodes-top_line + c_line - 1.&lt;/P&gt;&lt;P&gt;      WHEN 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;        selected_index = tc_dynpro-top_line + c_line - 1.&lt;/P&gt;&lt;P&gt;      WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;        selected_index = tc_protocol-top_line + c_line - 1.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    selected_index = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "get_cursor_position INPUT&lt;/P&gt;&lt;P&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;        Module d0500_init&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;&lt;/P&gt;&lt;P&gt;MODULE d0500_init OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'POPUP'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR  '0500'.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "d0500_init OUTPUT&lt;/P&gt;&lt;P&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;        Module d0500_fcode&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;MODULE d0500_fcode INPUT.&lt;/P&gt;&lt;P&gt;  LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "d0500_fcode INPUT&lt;/P&gt;&lt;P&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;        Module d0600_init&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;&lt;/P&gt;&lt;P&gt;MODULE d0600_init OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'POPUP'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR  '0600'.&lt;/P&gt;&lt;P&gt;  CLEAR d0600_fcode.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE bdcld LINES i_protocols.&lt;/P&gt;&lt;P&gt;  tc_bdcld-lines = i_protocols.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "d0600_init OUTPUT&lt;/P&gt;&lt;P&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;        Module d0500_fcode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          read and process another protocol which was selected on&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          popup dynpro 500&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;MODULE d0600_fcode INPUT.&lt;/P&gt;&lt;P&gt;  CASE d0600_fcode.&lt;/P&gt;&lt;P&gt;    WHEN 'POP_CANCEL'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'POP_OKAY'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  read selected protocol&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF tc_select &amp;lt;&amp;gt; selected_protocol.&lt;/P&gt;&lt;P&gt;        CLEAR bdclm. REFRESH bdclm.&lt;/P&gt;&lt;P&gt;        CLEAR bdc_protocol_content.&lt;/P&gt;&lt;P&gt;        PERFORM get_log USING tc_select.&lt;/P&gt;&lt;P&gt;        PERFORM extend_message_texts.&lt;/P&gt;&lt;P&gt;        selected_protocol = tc_select.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  scroll in table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "d0600_fcode INPUT&lt;/P&gt;&lt;P&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;     Module set_mark&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       set table view marker for the actual selected protocol&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       (dynpro 500)&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;MODULE set_mark OUTPUT.&lt;/P&gt;&lt;P&gt;  tc_index = tc_bdcld-top_line + tc_bdcld-current_line - 1.&lt;/P&gt;&lt;P&gt;  IF tc_index = selected_protocol.&lt;/P&gt;&lt;P&gt;    tc_mark = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "set_mark OUTPUT&lt;/P&gt;&lt;P&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;     Module get_mark&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       get index of selected protocol on popup 500&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;MODULE get_mark INPUT.&lt;/P&gt;&lt;P&gt;  IF tc_mark = 'X'.&lt;/P&gt;&lt;P&gt;    tc_select = tc_bdcld-top_line + tc_bdcld-current_line - 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "get_mark INPUT&lt;/P&gt;&lt;P&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;FORM: fill_bdc_tcodes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Read all transaction codes from apqd and fill internal table&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 fill_all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read APQD blocks 1 for QID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR all_bdc_tcodes. REFRESH all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;  SELECT * FROM apqd WHERE qid = queue_id AND block = 1&lt;/P&gt;&lt;P&gt;         ORDER BY PRIMARY KEY.&lt;/P&gt;&lt;P&gt;    MOVE apqd-vardata TO bdcth.&lt;/P&gt;&lt;P&gt;    all_bdc_tcodes-index = apqd-trans.&lt;/P&gt;&lt;P&gt;    all_bdc_tcodes-tcode = bdcth-tcode.&lt;/P&gt;&lt;P&gt;    all_bdc_tcodes-status = bdcth-state.&lt;/P&gt;&lt;P&gt;    APPEND all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;convert status flag to long text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;calculate transaction counters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR apqdcnt.&lt;/P&gt;&lt;P&gt;  LOOP AT all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;    ADD 1 TO apqdcnt-transcnt.&lt;/P&gt;&lt;P&gt;    CASE all_bdc_tcodes-status.&lt;/P&gt;&lt;P&gt;      WHEN 'D' OR 'G'.&lt;/P&gt;&lt;P&gt;        all_bdc_tcodes-s_text = 'gelöscht'(005).&lt;/P&gt;&lt;P&gt;        ADD 1 TO apqdcnt-transcntd.&lt;/P&gt;&lt;P&gt;      WHEN 'F'.&lt;/P&gt;&lt;P&gt;        all_bdc_tcodes-s_text = 'verarbeitet'(002).&lt;/P&gt;&lt;P&gt;        ADD 1 TO apqdcnt-transcntf.&lt;/P&gt;&lt;P&gt;      WHEN 'E'.&lt;/P&gt;&lt;P&gt;        all_bdc_tcodes-s_text = 'fehlerhaft'(001).&lt;/P&gt;&lt;P&gt;        ADD 1 TO apqdcnt-transcnte.&lt;/P&gt;&lt;P&gt;      WHEN 'B'.&lt;/P&gt;&lt;P&gt;        all_bdc_tcodes-s_text = ' '.  "neu&lt;/P&gt;&lt;P&gt;        ADD 1 TO apqdcnt-transcntb.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS.&lt;/P&gt;&lt;P&gt;        all_bdc_tcodes-s_text = ' '.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    MODIFY all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-transcnto =   apqdcnt-transcntb&lt;/P&gt;&lt;P&gt;                      + apqdcnt-transcnte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-transcntd =   apqdcnt-transcnt&lt;/P&gt;&lt;P&gt;                      - apqdcnt-transcntf&lt;/P&gt;&lt;P&gt;                      - apqdcnt-transcnte&lt;/P&gt;&lt;P&gt;                      - apqdcnt-transcntb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-transcntp =   apqi-puttrans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-transcntx =   apqdcnt-transcntp&lt;/P&gt;&lt;P&gt;                      - apqdcnt-transcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF apqi-msgcnt &amp;lt; 1000.&lt;/P&gt;&lt;P&gt;    PERFORM recalculate_counters.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "fill_all_bdc_tcodes&lt;/P&gt;&lt;P&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;FORM scan_transaction&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Read all APQD data for a selected transaction&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 scan_transaction USING tcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_apqd. REFRESH it_apqd.&lt;/P&gt;&lt;P&gt;  CLEAR all_bdc_dynpro. REFRESH all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;  SELECT * FROM apqd INTO TABLE it_apqd&lt;/P&gt;&lt;P&gt;         WHERE qid = queue_id AND trans = tcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tcode_index_apqd = tcnt. "Display correct index in header screens&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR dynpro_index.&lt;/P&gt;&lt;P&gt;  LOOP AT it_apqd.&lt;/P&gt;&lt;P&gt;    IF it_apqd-vardata(1) = 'M'.     "it's a message header&lt;/P&gt;&lt;P&gt;      dynpro_index = dynpro_index + 1.&lt;/P&gt;&lt;P&gt;      PERFORM scan_dynpro.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "scan_transaction&lt;/P&gt;&lt;P&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;FORM: scan_dynpro&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Scan APQD data for a single dynpro screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and put it into a BDCDATA table&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 scan_dynpro.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  MOVE it_apqd-vardata TO bdcmh.&lt;/P&gt;&lt;P&gt;  TRANSLATE bdcmh TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get program name and screen number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;  all_bdc_dynpro-index   = dynpro_index.&lt;/P&gt;&lt;P&gt;  all_bdc_dynpro-program = bdcmh-prog.&lt;/P&gt;&lt;P&gt;  all_bdc_dynpro-dynpro  = bdcmh-dynr.&lt;/P&gt;&lt;P&gt;  APPEND all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get all the fnam/fval pairs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE it_apqd-vardata TO sdat.&lt;/P&gt;&lt;P&gt;  SHIFT sdat BY bdcmhlen PLACES.&lt;/P&gt;&lt;P&gt;  wcount = bdcmhlen.&lt;/P&gt;&lt;P&gt;  mfstart = wcount.&lt;/P&gt;&lt;P&gt;  mfart = 'FN'.&lt;/P&gt;&lt;P&gt;  WHILE wcount LE it_apqd-varlen.&lt;/P&gt;&lt;P&gt;    IF sdat(1) = bdcmh-sepc.&lt;/P&gt;&lt;P&gt;      mfende  = wcount.&lt;/P&gt;&lt;P&gt;      PERFORM move_tf.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SHIFT sdat.&lt;/P&gt;&lt;P&gt;    wcount = wcount + 1.&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "scan_dynpro&lt;/P&gt;&lt;P&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;Parse the apqd-vardata field for FNAM/FVAL pairs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM: move_tf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fills TF-FNAME and TF-FARG&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 move_tf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  mflen = mfende  - mfstart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE mfart.&lt;/P&gt;&lt;P&gt;    WHEN 'FN'.&lt;/P&gt;&lt;P&gt;      CLEAR: tf-fname,  udat.&lt;/P&gt;&lt;P&gt;      tf-fstart = mfstart.&lt;/P&gt;&lt;P&gt;      MOVE it_apqd-vardata TO udat.&lt;/P&gt;&lt;P&gt;      SHIFT udat BY mfstart PLACES.&lt;/P&gt;&lt;P&gt;      WRITE udat TO tf-fname+0(mflen).&lt;/P&gt;&lt;P&gt;      TRANSLATE tf-fname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      mfstart   = mfende + 1.&lt;/P&gt;&lt;P&gt;      mfende    = 0.&lt;/P&gt;&lt;P&gt;      MOVE 'FA' TO mfart.&lt;/P&gt;&lt;P&gt;    WHEN 'FA'.&lt;/P&gt;&lt;P&gt;      CLEAR: tf-farg,  udat.&lt;/P&gt;&lt;P&gt;      tf-fende  = mfende.&lt;/P&gt;&lt;P&gt;      MOVE it_apqd-vardata TO udat.&lt;/P&gt;&lt;P&gt;      SHIFT udat BY mfstart PLACES.&lt;/P&gt;&lt;P&gt;      WRITE udat TO tf-farg+0(mflen).&lt;/P&gt;&lt;P&gt;      APPEND tf.&lt;/P&gt;&lt;P&gt;      tf-stat = space.&lt;/P&gt;&lt;P&gt;      mfstart   = mfende + 1.&lt;/P&gt;&lt;P&gt;      mfende = 0.&lt;/P&gt;&lt;P&gt;      MOVE 'FN' TO mfart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        copy to bdcdata table if fname/fval is not empty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CHECK NOT tf-fname IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        CHECK NOT TF-FARG IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;      all_bdc_dynpro-index = dynpro_index.&lt;/P&gt;&lt;P&gt;      all_bdc_dynpro-fnam  = tf-fname.&lt;/P&gt;&lt;P&gt;      all_bdc_dynpro-fval  = tf-farg.&lt;/P&gt;&lt;P&gt;      APPEND all_bdc_dynpro.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "move_tf&lt;/P&gt;&lt;P&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;    Form: get_logfiles_for_qid&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:&lt;/P&gt;&lt;P&gt;  paramname(11) VALUE 'bdc/logfile',&lt;/P&gt;&lt;P&gt;  logname(80),&lt;/P&gt;&lt;P&gt;  logname1(80),&lt;/P&gt;&lt;P&gt;  old_logfile(06) VALUE 'bdclog',&lt;/P&gt;&lt;P&gt;  new_logfile(04) VALUE 'BI* ',&lt;/P&gt;&lt;P&gt;  shiftlen TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;  protflen TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;  protfoff TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;  rlen     TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;  bdcld# TYPE i, one TYPE i, ec TYPE i, return TYPE i,&lt;/P&gt;&lt;P&gt;  protcnt TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF prot_list OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE     rstr0112.&lt;/P&gt;&lt;P&gt;DATA: seen(1), to_be_deleted(1), has_changed(1), local_host(24),&lt;/P&gt;&lt;P&gt;END OF prot_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF file.&lt;/P&gt;&lt;P&gt;INCLUDE rstr0112.&lt;/P&gt;&lt;P&gt;DATA END OF file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF bdclda  OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bdcld.&lt;/P&gt;&lt;P&gt;DATA END OF bdclda .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  digits(10) TYPE c VALUE '0123456789',&lt;/P&gt;&lt;P&gt;  mtext(124) TYPE c,                  "Messagetext&lt;/P&gt;&lt;P&gt;  mtext1(124) TYPE c,                 "Messagetext&lt;/P&gt;&lt;P&gt;  mtext2(273) TYPE c,                 "Messagetext&lt;/P&gt;&lt;P&gt;  do_condense TYPE c,&lt;/P&gt;&lt;P&gt;  mtvaroff TYPE i,&lt;/P&gt;&lt;P&gt;  showtyp(05) TYPE c,                 "showtyp&lt;/P&gt;&lt;P&gt;  lmapn(12) TYPE c,                  "Hilfsfeld log-mapn&lt;/P&gt;&lt;P&gt;  date1  TYPE d,&lt;/P&gt;&lt;P&gt;  linct0      LIKE sy-linct,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  parcnt  TYPE i,&lt;/P&gt;&lt;P&gt;  sp_len  TYPE i,&lt;/P&gt;&lt;P&gt;  charcnt TYPE i,&lt;/P&gt;&lt;P&gt;  wcnt TYPE i,&lt;/P&gt;&lt;P&gt;  mparcnt TYPE i,&lt;/P&gt;&lt;P&gt;  qfound(04) TYPE n,&lt;/P&gt;&lt;P&gt;  x(1) VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:                                "Aufbereitung Messagetext&lt;/P&gt;&lt;P&gt;  BEGIN OF mt,&lt;/P&gt;&lt;P&gt;   off(02) TYPE n,&lt;/P&gt;&lt;P&gt;   len(02) TYPE n,&lt;/P&gt;&lt;P&gt;   text(80),&lt;/P&gt;&lt;P&gt; END OF mt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:                                "Aufbereitung Messagetext&lt;/P&gt;&lt;P&gt;  BEGIN OF mttab  OCCURS 4,&lt;/P&gt;&lt;P&gt;   off(02) TYPE n,&lt;/P&gt;&lt;P&gt;   len(02) TYPE n,&lt;/P&gt;&lt;P&gt;   text(80),&lt;/P&gt;&lt;P&gt; END OF mttab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:                                "Hilfsfelder&lt;/P&gt;&lt;P&gt;  BEGIN OF old,&lt;/P&gt;&lt;P&gt;   tcnt LIKE bdclm-tcnt,&lt;/P&gt;&lt;P&gt;   mcnt LIKE bdclm-mcnt,&lt;/P&gt;&lt;P&gt; END OF old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:                                "ParameterAufbereitung&lt;/P&gt;&lt;P&gt;  BEGIN OF par,&lt;/P&gt;&lt;P&gt;   len(02) TYPE n,&lt;/P&gt;&lt;P&gt;   text(254),&lt;/P&gt;&lt;P&gt; END OF par.&lt;/P&gt;&lt;P&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;Form get_logfiles_for_qid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  find all log files for the session in analysis,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  either in common log or in TemSe&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;&lt;/P&gt;&lt;P&gt;FORM get_logfiles_for_qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; get logs from TemSe&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_logfiles_from_temse.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; now bdcld contains the log files for the given qid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT bdcld BY edate DESCENDING etime DESCENDING.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE bdcld LINES selected_protocol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_logfiles_for_qid&lt;/P&gt;&lt;P&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;    Form: log_dir&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;&lt;/P&gt;&lt;P&gt;FORM log_dir.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR bdclda. REFRESH bdclda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'ReadLogDirA'       ID 'LOGN'  FIELD logname&lt;/P&gt;&lt;P&gt;                           ID 'DTAB'  FIELD bdclda-&lt;STRONG&gt;sys&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;                           ID 'AINF'  FIELD one&lt;/P&gt;&lt;P&gt;                           ID 'ECNT'  FIELD ec.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0 OR ec = 0.&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;  LOOP AT bdclda WHERE lmand = sy-mandt AND quid = queue_id.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING bdclda TO bdcld.&lt;/P&gt;&lt;P&gt;    MOVE logname TO bdcld-logname.&lt;/P&gt;&lt;P&gt;    MOVE prot_list-local_host TO bdcld-local_host.&lt;/P&gt;&lt;P&gt;    APPEND bdcld.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " log_dir.&lt;/P&gt;&lt;P&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;     Form: list_protocol_files&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Suche nach allen aktiven Protokolldateien -&amp;gt; Tabelle prot_list&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 list_protocol_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:   logname1, prot_list, protcnt.&lt;/P&gt;&lt;P&gt;  REFRESH: prot_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  protflen = STRLEN( logname ).&lt;/P&gt;&lt;P&gt;  MOVE logname TO logname1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WHILE shiftlen LE protflen.&lt;/P&gt;&lt;P&gt;    IF  logname1 CP '&lt;STRONG&gt;#B#I&lt;/STRONG&gt;'.          "suchen nach muster &lt;STRONG&gt;#B#I&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;      IF sy-fdpos EQ 0.                "nur großbuchstaben&lt;/P&gt;&lt;P&gt;        shiftlen = 2.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        shiftlen = sy-fdpos.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      protfoff = protfoff + shiftlen.&lt;/P&gt;&lt;P&gt;      SHIFT logname1 BY shiftlen PLACES.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      shiftlen = protflen + 1.&lt;/P&gt;&lt;P&gt;      protfoff = protfoff - 2.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF protfoff LE 0.&lt;/P&gt;&lt;P&gt;    protfoff = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  rlen = 80 - protfoff.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  WRITE space       TO logname+protfoff(rlen).&lt;/P&gt;&lt;P&gt;  WRITE new_logfile TO logname+protfoff(4).&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  PERFORM search_prot USING logname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " FILL_PROT_LIST&lt;/P&gt;&lt;P&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;FORM : search_prot                                                  *&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 search_prot    USING prot_files.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: errcnt(2) TYPE p VALUE 0.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_START' ID 'FILE'   FIELD prot_files&lt;/P&gt;&lt;P&gt;     ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;     ID 'ERRMSG' FIELD file-errmsg.&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;    MESSAGE i398(00)&lt;/P&gt;&lt;P&gt;            WITH sy-subrc 'C_DIR_READ_START' ' ' prot_files.&lt;/P&gt;&lt;P&gt;    MESSAGE i398(00)&lt;/P&gt;&lt;P&gt;            WITH sy-subrc 'C_DIR_READ_START...'&lt;/P&gt;&lt;P&gt;                 file-errno file-errmsg.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.                 "aufbau der internen tabelle fuer alle&lt;/P&gt;&lt;P&gt;    "BI-Protokolle&lt;/P&gt;&lt;P&gt;    CLEAR file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL 'C_DIR_READ_NEXT'&lt;/P&gt;&lt;P&gt;      ID 'TYPE'   FIELD file-type&lt;/P&gt;&lt;P&gt;      ID 'NAME'   FIELD file-name&lt;/P&gt;&lt;P&gt;      ID 'LEN'    FIELD file-len&lt;/P&gt;&lt;P&gt;      ID 'OWNER'  FIELD file-owner&lt;/P&gt;&lt;P&gt;      ID 'MTIME'  FIELD file-mtime&lt;/P&gt;&lt;P&gt;      ID 'MODE'   FIELD file-mode&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE sy-subrc TO    file-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE sy-subrc.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        CASE file-type(1).&lt;/P&gt;&lt;P&gt;          WHEN 'F'.                    " normal file.&lt;/P&gt;&lt;P&gt;            MOVE 1       TO file-useable.&lt;/P&gt;&lt;P&gt;          WHEN 'f'.                    " normal file.&lt;/P&gt;&lt;P&gt;            MOVE 1       TO file-useable.&lt;/P&gt;&lt;P&gt;          WHEN OTHERS. " Directory, device, fifo, socket,...&lt;/P&gt;&lt;P&gt;            MOVE 0       TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;        IF file-len = 0.&lt;/P&gt;&lt;P&gt;          MOVE 0      TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS.                     " SY-SUBRC &amp;gt;= 2&lt;/P&gt;&lt;P&gt;        ADD 1 TO errcnt.&lt;/P&gt;&lt;P&gt;        IF errcnt &amp;gt; 10.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 5.&lt;/P&gt;&lt;P&gt;          MOVE: '???' TO file-type,&lt;/P&gt;&lt;P&gt;                '???' TO file-owner,&lt;/P&gt;&lt;P&gt;                '???' TO file-mode.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        file-useable = 0.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING file TO prot_list.&lt;/P&gt;&lt;P&gt;    SHIFT file-name BY protfoff PLACES.&lt;/P&gt;&lt;P&gt;    prot_list-local_host = file-name.&lt;/P&gt;&lt;P&gt;    protcnt = protcnt + 1.&lt;/P&gt;&lt;P&gt;    APPEND prot_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_FINISH'&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WRITE: / 'C_DIR_READ_FINISH'(999), 'SUBRC', SY-SUBRC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " search_prot&lt;/P&gt;&lt;P&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;     Form: get_log&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_log USING log_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF logtable OCCURS 50,  " plain log information in TemSe&lt;/P&gt;&lt;P&gt;          enterdate LIKE btctle-enterdate,&lt;/P&gt;&lt;P&gt;          entertime LIKE btctle-entertime,&lt;/P&gt;&lt;P&gt;          logmessage(400) TYPE c,&lt;/P&gt;&lt;P&gt;        END OF logtable.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;        external_date(10),&lt;/P&gt;&lt;P&gt;        internal_date TYPE d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT bdcld.&lt;/P&gt;&lt;P&gt;    logname = bdcld-logname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF newprot = 'OFF'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get logfile contents from common log file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL 'ReadLogPartitionA'     ID 'LOGN'    FIELD logname&lt;/P&gt;&lt;P&gt;                                   ID 'ETAB'    FIELD bdclm-&lt;STRONG&gt;sys&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;                                   ID 'PART'    FIELD bdcld&lt;/P&gt;&lt;P&gt;                                   ID 'ECNT'    FIELD ec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0. MESSAGE s325(00). ENDIF.&lt;/P&gt;&lt;P&gt;      IF ec = 0.        MESSAGE s324(00). ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get logfile contents from TemSe&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM read_bdc_log_plain&lt;/P&gt;&lt;P&gt;        TABLES logtable&lt;/P&gt;&lt;P&gt;        USING  bdcld-temseid bdcld-lmand.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.                    " Fehler beim Lesen&lt;/P&gt;&lt;P&gt;        MESSAGE s004(ts).&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 bdclm[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT logtable.&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;      Es wird geprüft, ob von TEMSE das Datum korrekt geliefert wurde&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      wenn nicht wird einfach der Satz ignoriert und nicht gelesen&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;        CALL 'DATE_CONV_INT_TO_EXT'&lt;/P&gt;&lt;P&gt;             ID 'DATINT' FIELD logtable-enterdate&lt;/P&gt;&lt;P&gt;             ID 'DATEXT' FIELD external_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CALL 'DATE_CONV_EXT_TO_INT'&lt;/P&gt;&lt;P&gt;             ID 'DATEXT' FIELD external_date&lt;/P&gt;&lt;P&gt;             ID 'DATINT' FIELD internal_date.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.         " Datum ist nicht gültig&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR bdclm.&lt;/P&gt;&lt;P&gt;        bdclm-indate  = logtable-enterdate.&lt;/P&gt;&lt;P&gt;        bdclm-intime  = logtable-entertime.&lt;/P&gt;&lt;P&gt;        bdclm+14(352) = logtable-logmessage.&lt;/P&gt;&lt;P&gt;        IF bdclm-mcnt &amp;gt; 0.&lt;/P&gt;&lt;P&gt;          bdclm-mcnt = bdclm-mcnt - 1.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF bdclm-mid EQ '00'.&lt;/P&gt;&lt;P&gt;          IF   ( bdclm-mnr EQ '162' )&lt;/P&gt;&lt;P&gt;            OR ( bdclm-mnr EQ '368' ).&lt;/P&gt;&lt;P&gt;            bdclm-isdetail = 'X'.&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 bdclm.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      PERFORM extend_message_texts.     " extended texts -&amp;gt; bdclm&lt;/P&gt;&lt;P&gt;      PERFORM download.&lt;/P&gt;&lt;P&gt;&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.                    "get_log&lt;/P&gt;&lt;P&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;    Form: get_logfiles_from_temse&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_logfiles_from_temse.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;are there any logs in the TemSe for this QID ?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR logtab_temse[].&lt;/P&gt;&lt;P&gt;  CLEAR bdcld[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM apql INTO TABLE logtab_temse&lt;/P&gt;&lt;P&gt;           WHERE qid = apqi-qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;some logs were found: now put this info into table bdcld.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: wa_log LIKE LINE OF logtab_temse,&lt;/P&gt;&lt;P&gt;        wa_ld  LIKE LINE OF bdcld.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT logtab_temse INTO wa_log.&lt;/P&gt;&lt;P&gt;    CLEAR wa_ld.&lt;/P&gt;&lt;P&gt;    wa_ld-temseid = wa_log-temseid.&lt;/P&gt;&lt;P&gt;    wa_ld-lmand   = wa_log-mandant.&lt;/P&gt;&lt;P&gt;    wa_ld-edate   = wa_log-credate.&lt;/P&gt;&lt;P&gt;    wa_ld-etime   = wa_log-cretime.&lt;/P&gt;&lt;P&gt;    wa_ld-luser   = wa_log-creator.&lt;/P&gt;&lt;P&gt;    wa_ld-grpn    = wa_log-groupid.&lt;/P&gt;&lt;P&gt;    wa_ld-quid    = wa_log-qid.&lt;/P&gt;&lt;P&gt;    wa_ld-local_host = wa_log-destsys(8).&lt;/P&gt;&lt;P&gt;    APPEND wa_ld TO bdcld.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_logfiles_from_temse&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;    Form: extend_message_texts&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 extend_message_texts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT bdclm.&lt;/P&gt;&lt;P&gt;    lm = bdclm. save_mpar = bdclm-mpar.&lt;/P&gt;&lt;P&gt;    PERFORM get_text.&lt;/P&gt;&lt;P&gt;    bdclm-longtext = mtext.&lt;/P&gt;&lt;P&gt;    bdclm-mpar = save_mpar.&lt;/P&gt;&lt;P&gt;    MODIFY bdclm.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "extend_message_texts&lt;/P&gt;&lt;P&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;FORM : get_text                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_text.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Aufbereiten des Messagetextes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: shiftln TYPE i,&lt;/P&gt;&lt;P&gt;        vartcnt TYPE i,&lt;/P&gt;&lt;P&gt;        fdpos LIKE sy-fdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF bdclm-mparcnt CN digits.        "Korrupter Datensatz:&lt;/P&gt;&lt;P&gt;    bdclm-mparcnt = 0.               "z.B. Hexnullen&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM t100&lt;/P&gt;&lt;P&gt;   WHERE sprsl = sy-langu&lt;/P&gt;&lt;P&gt;   AND  arbgb  = bdclm-mid&lt;/P&gt;&lt;P&gt;   AND  msgnr  = bdclm-mnr.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    CLEAR: mtext,&lt;/P&gt;&lt;P&gt;           parcnt,&lt;/P&gt;&lt;P&gt;           mparcnt,&lt;/P&gt;&lt;P&gt;           charcnt,&lt;/P&gt;&lt;P&gt;           wcnt,&lt;/P&gt;&lt;P&gt;           mt,&lt;/P&gt;&lt;P&gt;           sp_len,&lt;/P&gt;&lt;P&gt;           sy-fdpos.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    MOVE bdclm-mparcnt TO mparcnt.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    IF t100-text CA '$&amp;amp;'.            "Kennung fuer parameter:&lt;/P&gt;&lt;P&gt;      MOVE t100-text TO mtext1.      " alt '$' --- neu '&amp;amp;'&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MOVE t100-text TO mtext.&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;variable teile aus batch-input protokoll in mttab bringen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    REFRESH mttab.&lt;/P&gt;&lt;P&gt;    CLEAR shiftln.&lt;/P&gt;&lt;P&gt;    DO mparcnt TIMES.&lt;/P&gt;&lt;P&gt;      CLEAR: par, mttab.&lt;/P&gt;&lt;P&gt;      MOVE bdclm-mpar TO par.&lt;/P&gt;&lt;P&gt;      IF par-len CN digits OR par-len EQ 0.       "convert_no_number&lt;/P&gt;&lt;P&gt;        par-len  = 1.                             "entschärfen&lt;/P&gt;&lt;P&gt;        par-text = ' '.&lt;/P&gt;&lt;P&gt;        shiftln  = 2.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        shiftln = par-len + 2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE par-text TO mttab-text(par-len).&lt;/P&gt;&lt;P&gt;      MOVE par-len  TO mttab-len.&lt;/P&gt;&lt;P&gt;      MOVE mparcnt  TO mttab-off.&lt;/P&gt;&lt;P&gt;      APPEND mttab.&lt;/P&gt;&lt;P&gt;      SHIFT bdclm-mpar BY shiftln PLACES.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    mtext2 = mtext1.&lt;/P&gt;&lt;P&gt;    IF bdclm-mid EQ  '00' AND    " sonderbehandlung s00368&lt;/P&gt;&lt;P&gt;       bdclm-mnr EQ '368' AND&lt;/P&gt;&lt;P&gt;       bdclm-mart EQ 'S'.&lt;/P&gt;&lt;P&gt;      CLEAR mtext2.&lt;/P&gt;&lt;P&gt;      CLEAR mttab.&lt;/P&gt;&lt;P&gt;      READ TABLE mttab INDEX 1.&lt;/P&gt;&lt;P&gt;      WRITE mttab-text TO mtext2+0(mttab-len).&lt;/P&gt;&lt;P&gt;      CLEAR mttab.&lt;/P&gt;&lt;P&gt;      READ TABLE mttab INDEX 2.&lt;/P&gt;&lt;P&gt;      WRITE mttab-text TO mtext2+35(mttab-len).&lt;/P&gt;&lt;P&gt;      mtext = mtext2.&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;    do_condense = x.&lt;/P&gt;&lt;P&gt;    CLEAR: mt, vartcnt, mtvaroff.&lt;/P&gt;&lt;P&gt;    WHILE vartcnt LE 3.&lt;/P&gt;&lt;P&gt;      vartcnt = vartcnt + 1.&lt;/P&gt;&lt;P&gt;      IF mtext1 CA '$&amp;amp;'.&lt;/P&gt;&lt;P&gt;        parcnt = parcnt + 1.&lt;/P&gt;&lt;P&gt;        IF sy-fdpos GT 0.&lt;/P&gt;&lt;P&gt;          fdpos = sy-fdpos - 1.                    " neu sy-fdpos -1&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          fdpos = sy-fdpos.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        SHIFT mtext1 BY sy-fdpos PLACES.&lt;/P&gt;&lt;P&gt;        IF mtext1(1) EQ '&amp;amp;'.&lt;/P&gt;&lt;P&gt;          SHIFT mtext1 BY 1 PLACES.&lt;/P&gt;&lt;P&gt;          CASE mtext1(1).&lt;/P&gt;&lt;P&gt;            WHEN ' '.                              "'&amp;amp; '&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp; ' parcnt fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '$'.                              "'&amp;amp;&amp;amp;'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;&amp;amp;' 0      fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '1'.                                       "'&amp;amp;1'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;1' 1      fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '2'.                                       "'&amp;amp;2'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;2' 2      fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '3'.                                       "'&amp;amp;3'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;3' 3      fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '4'.                                       "'&amp;amp;4'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;4' 4      fdpos.&lt;/P&gt;&lt;P&gt;            WHEN OTHERS.                           "'&amp;amp;'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '&amp;amp;&amp;lt;' parcnt fdpos.&lt;/P&gt;&lt;P&gt;          ENDCASE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF mtext1(1) EQ '$'.&lt;/P&gt;&lt;P&gt;          SHIFT mtext1 BY 1 PLACES.&lt;/P&gt;&lt;P&gt;          CASE mtext1(1).&lt;/P&gt;&lt;P&gt;            WHEN ' '.                              "'$ '&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$ ' parcnt  fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '$'.                              "'$$'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$$' 0       fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '1'.                                       "'$1'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$1' 1       fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '2'.                                       "'$2'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$2' 2       fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '3'.                                       "'$3'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$3' 3       fdpos.&lt;/P&gt;&lt;P&gt;            WHEN '4'.                                       "'$4'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$4' 4       fdpos.&lt;/P&gt;&lt;P&gt;            WHEN OTHERS.                           "'$'&lt;/P&gt;&lt;P&gt;              PERFORM replace_var USING '$&amp;lt;' parcnt  fdpos.&lt;/P&gt;&lt;P&gt;          ENDCASE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDWHILE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    IF mtext2 CA '%%_D_%%'.&lt;/P&gt;&lt;P&gt;      REPLACE '%%_D_%%' WITH '$' INTO mtext2.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF mtext2 CA '%%_A_%%'.&lt;/P&gt;&lt;P&gt;      REPLACE '%%_A_%%' WITH '&amp;amp;' INTO mtext2.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF do_condense EQ space.&lt;/P&gt;&lt;P&gt;      mtext = mtext2.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CONDENSE mtext2 .&lt;/P&gt;&lt;P&gt;      mtext = mtext2.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    mtext = '???????????????????????????????????????????????????'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " get_text1&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;FORM : replace_var                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                                    *&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 replace_var USING vark vari varpos.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ersetzen der variablen teile einer fehlermeldung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: var(02),&lt;/P&gt;&lt;P&gt;        var1,&lt;/P&gt;&lt;P&gt;        moff TYPE i.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR: mttab , moff.&lt;/P&gt;&lt;P&gt;  var = vark.&lt;/P&gt;&lt;P&gt;  SHIFT var BY 1 PLACES.&lt;/P&gt;&lt;P&gt;  CASE var.&lt;/P&gt;&lt;P&gt;    WHEN ' '.                              "'&amp;amp; '&lt;/P&gt;&lt;P&gt;      READ TABLE mttab INDEX vari.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        moff = varpos + mtvaroff.&lt;/P&gt;&lt;P&gt;        ASSIGN mtext2+moff(*) TO .     "neu&lt;/P&gt;&lt;P&gt;          mtvaroff = 7.                   "neu&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;  ENDCASE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  do_condense = space.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                                     "replace_var&lt;/P&gt;&lt;P&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;          Form: set_new_display&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 set_new_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    F2 in tcodes list: choose new transaction:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CHECK selected_index &amp;gt; 0.&lt;/P&gt;&lt;P&gt;      READ TABLE bdc_tcodes INDEX selected_index.&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      PERFORM scan_transaction USING bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;      CLEAR: bdc_dynpro_content, bdc_protocol_content.&lt;/P&gt;&lt;P&gt;      tcode_index  = selected_index.&lt;/P&gt;&lt;P&gt;      tcode_status = bdc_tcodes-s_text.&lt;/P&gt;&lt;P&gt;      tcode        = bdc_tcodes-tcode.&lt;/P&gt;&lt;P&gt;      IF previous_tab IS INITIAL.&lt;/P&gt;&lt;P&gt;        tab_dynpro-activetab = 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        tab_dynpro-activetab = previous_tab.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_LIST'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    F2 in screens list: simulate screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CHECK selected_index &amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    simulate screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM simulate_dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    F2 in protocol list: show message long text:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CHECK selected_index &amp;gt; 0.&lt;/P&gt;&lt;P&gt;      READ TABLE bdc_protocol INDEX selected_index.&lt;/P&gt;&lt;P&gt;      CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      PERFORM show_ltext.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "set_new_display&lt;/P&gt;&lt;P&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;FORM : show_ltext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; display long text for a log message&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 show_ltext.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    docnt TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    BEGIN OF my,&lt;/P&gt;&lt;P&gt;      msgv1 LIKE sy-msgv1,&lt;/P&gt;&lt;P&gt;      msgv2 LIKE sy-msgv2,&lt;/P&gt;&lt;P&gt;      msgv3 LIKE sy-msgv3,&lt;/P&gt;&lt;P&gt;      msgv4 LIKE sy-msgv4,&lt;/P&gt;&lt;P&gt;    END OF my.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    msg_text  LIKE shkontext-meldung,&lt;/P&gt;&lt;P&gt;    msg_arbgb LIKE shkontext-meld_id,&lt;/P&gt;&lt;P&gt;    msg_nr    LIKE shkontext-meld_nr,&lt;/P&gt;&lt;P&gt;    msg_title LIKE shkontext-titel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RABAX- or T100 message ?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF bdc_protocol-mid EQ '00' AND      "Rabax&lt;/P&gt;&lt;P&gt;    bdc_protocol-mnr EQ '341'.&lt;/P&gt;&lt;P&gt;    CLEAR: par.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;extract Rabax-ID and key fields from message string&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    par = bdc_protocol-mpar.&lt;/P&gt;&lt;P&gt;    IF par-len CN digits. EXIT. ENDIF. "corrupt string"&lt;/P&gt;&lt;P&gt;    my-msgv1 = par-text(par-len).&lt;/P&gt;&lt;P&gt;    SHIFT par LEFT BY par-len PLACES.&lt;/P&gt;&lt;P&gt;    SHIFT par LEFT BY 2 PLACES.&lt;/P&gt;&lt;P&gt;    IF par-len CN digits. EXIT. ENDIF. "corrupt string"&lt;/P&gt;&lt;P&gt;    snap = par-text(par-len).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rabax display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL DIALOG 'RS_RUN_TIME_ERROR'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        snap-mandt&lt;/P&gt;&lt;P&gt;        snap-datum&lt;/P&gt;&lt;P&gt;        snap-uzeit&lt;/P&gt;&lt;P&gt;        snap-ahost&lt;/P&gt;&lt;P&gt;        snap-uname&lt;/P&gt;&lt;P&gt;        snap-modno.&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;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;no RABAX&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  docnt = 0.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR: my.&lt;/P&gt;&lt;P&gt;  IF bdc_protocol-mparcnt CN digits.        "Korrupter Datensatz:&lt;/P&gt;&lt;P&gt;    bdc_protocol-mparcnt = 0.               "z.B. Hexnullen&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO bdc_protocol-mparcnt TIMES.&lt;/P&gt;&lt;P&gt;    IF bdc_protocol-mpar(1) EQ space.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    docnt = docnt + 1.&lt;/P&gt;&lt;P&gt;    CLEAR par.&lt;/P&gt;&lt;P&gt;    MOVE bdc_protocol-mpar TO par.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    IF par-len CN digits.              "convert_no_number&lt;/P&gt;&lt;P&gt;      par-len = 1.                     "entschärfen&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    CASE docnt.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        WRITE par-text TO my-msgv1(par-len).&lt;/P&gt;&lt;P&gt;      WHEN 2.&lt;/P&gt;&lt;P&gt;        WRITE par-text TO my-msgv2(par-len).&lt;/P&gt;&lt;P&gt;      WHEN 3.&lt;/P&gt;&lt;P&gt;        WRITE par-text TO my-msgv3(par-len).&lt;/P&gt;&lt;P&gt;      WHEN 4.&lt;/P&gt;&lt;P&gt;        WRITE par-text TO my-msgv4(par-len).&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    par-len = par-len + 2.&lt;/P&gt;&lt;P&gt;    SHIFT bdc_protocol-mpar BY par-len PLACES.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  msg_arbgb = bdc_protocol-mid.&lt;/P&gt;&lt;P&gt;  msg_nr    = bdc_protocol-mnr.&lt;/P&gt;&lt;P&gt;  msg_text =  mtext.&lt;/P&gt;&lt;P&gt;  msg_title = sy-title.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'HELPSCREEN_NA_CREATE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      meldung = msg_text&lt;/P&gt;&lt;P&gt;      meld_id = msg_arbgb&lt;/P&gt;&lt;P&gt;      meld_nr = msg_nr&lt;/P&gt;&lt;P&gt;      msgv1   = my-msgv1&lt;/P&gt;&lt;P&gt;      msgv2   = my-msgv2&lt;/P&gt;&lt;P&gt;      msgv3   = my-msgv3&lt;/P&gt;&lt;P&gt;      msgv4   = my-msgv4&lt;/P&gt;&lt;P&gt;      titel   = msg_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " show_ltext.&lt;/P&gt;&lt;P&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; FORM: simulate_dynpro&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   use function module CAT_SIMULATE_DYNPRO to simulate a dynpro&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   with contents according to APQD data of session&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 simulate_dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    cat_okcode LIKE sy-ucomm,&lt;/P&gt;&lt;P&gt;    cat_params LIKE catp OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;    on_subscreen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR cat_bdcdata. REFRESH cat_bdcdata.&lt;/P&gt;&lt;P&gt;  READ TABLE bdc_dynpro INDEX selected_index.&lt;/P&gt;&lt;P&gt;  LOOP AT all_bdc_dynpro WHERE index = bdc_dynpro-index.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING all_bdc_dynpro TO cat_bdcdata.&lt;/P&gt;&lt;P&gt;    APPEND cat_bdcdata.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  READ TABLE cat_bdcdata INDEX 1.&lt;/P&gt;&lt;P&gt;  cat_bdcdata-dynbegin = 'X'. MODIFY cat_bdcdata INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;now we need some extra work to generate the correct input data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;format for FUNCTION 'CAT_SIMULATE_DYNPRO' for subscreen fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR on_subscreen.&lt;/P&gt;&lt;P&gt;  LOOP AT cat_bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check if there is a new subscreen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF cat_bdcdata-fnam = 'BDC_SUBSCR'.&lt;/P&gt;&lt;P&gt;      MOVE cat_bdcdata-fval TO bdc_subscreen.&lt;/P&gt;&lt;P&gt;      CLEAR cat_bdcdata-fval.&lt;/P&gt;&lt;P&gt;      CONCATENATE bdc_subscreen-program&lt;/P&gt;&lt;P&gt;                  bdc_subscreen-dynpro&lt;/P&gt;&lt;P&gt;                  bdc_subscreen-subscr&lt;/P&gt;&lt;P&gt;                  INTO cat_bdcdata-fval SEPARATED BY ' '.&lt;/P&gt;&lt;P&gt;      MODIFY cat_bdcdata.&lt;/P&gt;&lt;P&gt;      on_subscreen = 'X'.&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;  READ TABLE cat_bdcdata INDEX 1.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'CSIM'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR '0300' WITH cat_bdcdata-program cat_bdcdata-dynpro.&lt;/P&gt;&lt;P&gt;  MESSAGE s223(tt).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CAT_SIMULATE_DYNPRO'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      mpool            = cat_bdcdata-program&lt;/P&gt;&lt;P&gt;      dynnr            = cat_bdcdata-dynpro&lt;/P&gt;&lt;P&gt;      display_only     = 'X'&lt;/P&gt;&lt;P&gt;      own_status_title = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      fielddata        = cat_bdcdata&lt;/P&gt;&lt;P&gt;      paramlist        = cat_params&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_dynpro        = 1&lt;/P&gt;&lt;P&gt;      dynpro_not_found = 2&lt;/P&gt;&lt;P&gt;      gen_error        = 3&lt;/P&gt;&lt;P&gt;      enq_error        = 4&lt;/P&gt;&lt;P&gt;      subscr_error     = 5&lt;/P&gt;&lt;P&gt;      OTHERS           = 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE sy-subrc.&lt;/P&gt;&lt;P&gt;    WHEN 1. MESSAGE s221(tt).&lt;/P&gt;&lt;P&gt;    WHEN 2.&lt;/P&gt;&lt;P&gt;      MESSAGE s219(tt)&lt;/P&gt;&lt;P&gt;      WITH cat_bdcdata-program cat_bdcdata-dynpro.&lt;/P&gt;&lt;P&gt;    WHEN 3. MESSAGE s236(tt) WITH ' ' ' '.&lt;/P&gt;&lt;P&gt;    WHEN 4. MESSAGE s215(tt).&lt;/P&gt;&lt;P&gt;    WHEN 5. MESSAGE s238(tt) WITH ' ' ' '.&lt;/P&gt;&lt;P&gt;    WHEN 6. MESSAGE s258(00).&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "simulate_dynpro&lt;/P&gt;&lt;P&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; Form: scrolling&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   scrolling in table controls according to SAP style guide&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 scrolling.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    top_line  LIKE sy-index,&lt;/P&gt;&lt;P&gt;    last_line LIKE sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;      top_line = tc_tcodes-top_line.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE bdc_tcodes LINES last_line.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;      top_line = tc_dynpro-top_line.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE bdc_dynpro LINES last_line.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;      top_line = tc_protocol-top_line.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE bdc_protocol LINES last_line.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SCROLLING_IN_TABLE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      entry_act             = top_line&lt;/P&gt;&lt;P&gt;      entry_from            = 1&lt;/P&gt;&lt;P&gt;      entry_to              = last_line&lt;/P&gt;&lt;P&gt;      ok_code               = main_okcode&lt;/P&gt;&lt;P&gt;      last_page_full        = ' '&lt;/P&gt;&lt;P&gt;      overlapping           = ' '&lt;/P&gt;&lt;P&gt;      loops                 = loopc&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      entries_sum           = entries&lt;/P&gt;&lt;P&gt;      entry_new             = new_line&lt;/P&gt;&lt;P&gt;      pages_sum             = total_pages&lt;/P&gt;&lt;P&gt;      page_new              = new_page&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_entry_or_page_act  = 01&lt;/P&gt;&lt;P&gt;      no_entry_to           = 02&lt;/P&gt;&lt;P&gt;      no_ok_code_or_page_go = 03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE tab_dynpro-activetab.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_TCODES'.&lt;/P&gt;&lt;P&gt;      tc_tcodes-top_line = new_line.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_LIST'.&lt;/P&gt;&lt;P&gt;      tc_dynpro-top_line = new_line.&lt;/P&gt;&lt;P&gt;    WHEN 'TAB_PROTO'.&lt;/P&gt;&lt;P&gt;      tc_protocol-top_line = new_line.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "scrolling&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;      Module  d0700_init  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_init OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR d0700_fcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'QUEUE_DUMP' WITH apqi-groupid.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'PF_QUEUE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF q-tcode_index IS INITIAL.&lt;/P&gt;&lt;P&gt;    IF NOT tcode_index_apqd IS INITIAL.&lt;/P&gt;&lt;P&gt;      q-tcode_index = tcode_index_apqd.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE all_bdc_tcodes INTO q-wa INDEX 1.&lt;/P&gt;&lt;P&gt;      q-tcode_index = q-wa-index.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check for unicode; how many byte's a character?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE FIELD q-c LENGTH q-uc_bytes IN BYTE MODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read all blocks (dynpros) of the currently selected transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT * FROM apqd INTO TABLE it_apqd&lt;/P&gt;&lt;P&gt;         WHERE qid = queue_id AND trans = q-tcode_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0700_init  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module d0700_fcode  INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_fcode INPUT.&lt;/P&gt;&lt;P&gt;  CASE d0700_fcode.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      CLEAR q-tcode_index.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'END'.&lt;/P&gt;&lt;P&gt;      CLEAR q-tcode_index.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'TOGGLE'.&lt;/P&gt;&lt;P&gt;      IF q-show_hex IS INITIAL.&lt;/P&gt;&lt;P&gt;        q-show_hex = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CLEAR q-show_hex.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    WHEN 'APQI'.&lt;/P&gt;&lt;P&gt;      CALL SCREEN '0701'.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      "nop&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " ok_700  INPUT&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;      Module  exit_700  INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_exit INPUT.&lt;/P&gt;&lt;P&gt;  LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " exit_700  INPUT&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;      Module  set_status_icon  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE set_status_icon OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: icon_name(4),&lt;/P&gt;&lt;P&gt;        icon_info(32).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE all_bdc_tcodes-status.&lt;/P&gt;&lt;P&gt;    WHEN 'F'.&lt;/P&gt;&lt;P&gt;      icon_name = icon_status_ok.&lt;/P&gt;&lt;P&gt;      icon_info = 'verarbeitet'(002).&lt;/P&gt;&lt;P&gt;    WHEN 'E'.&lt;/P&gt;&lt;P&gt;      icon_name = icon_status_critical.&lt;/P&gt;&lt;P&gt;      icon_info = 'fehlerhaft'(001).&lt;/P&gt;&lt;P&gt;    WHEN 'D'.&lt;/P&gt;&lt;P&gt;      icon_name = icon_delete.&lt;/P&gt;&lt;P&gt;      icon_info = 'gelöscht'(005).&lt;/P&gt;&lt;P&gt;    WHEN ' ' OR 'B'.&lt;/P&gt;&lt;P&gt;      icon_name = icon_create.&lt;/P&gt;&lt;P&gt;      icon_info = 'neu'(034).&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      icon_name = all_bdc_tcodes-status.&lt;/P&gt;&lt;P&gt;      icon_info = '???'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ICON_CREATE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      name   = icon_name&lt;/P&gt;&lt;P&gt;      info   = icon_info&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      RESULT = status_icon&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS = 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    status_icon = icon_name.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF all_bdc_tcodes-index = q-tcode_index.&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      screen-intensified = 1.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&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;ENDMODULE.                 " set_status_icon  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  d0700_get_cursor  INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_get_cursor INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET CURSOR FIELD q-c_field LINE q-c_line AREA q-c_area.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CHECK q-c_area = 'TC_Q_TCODES'.&lt;/P&gt;&lt;P&gt;    CHECK q-c_line &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    q-itab_index = tc_q_tcodes-top_line + q-c_line - 1.&lt;/P&gt;&lt;P&gt;    READ TABLE all_bdc_tcodes INTO q-wa INDEX q-itab_index.&lt;/P&gt;&lt;P&gt;    q-tcode_index = q-wa-index.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0700_get_cursor  INPUT&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;      Module  d0700_control_init  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_control_init OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK q-control_init = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create custom container and dynamic document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT cust&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      container_name = 'CUSTOM_CONTAINER'&lt;/P&gt;&lt;P&gt;      dynnr = '0700'&lt;/P&gt;&lt;P&gt;      repid = 'RSBDC_ANALYSE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      lifetime = cntl_lifetime_dynpro&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT dd&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      background_color = cl_dd_area=&amp;gt;col_textarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR q-control_init.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0700_control_init  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  d0700_display  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0700_display OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD dd-&amp;gt;initialize_document&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      background_color = cl_dd_area=&amp;gt;col_textarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_blocks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;loop at all apqd blocks for the current transaction and built up the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;dynamic document for each block&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_apqd.&lt;/P&gt;&lt;P&gt;    PERFORM build_queue_dd.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD dd-&amp;gt;merge_document.&lt;/P&gt;&lt;P&gt;  CALL METHOD dd-&amp;gt;display_document&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      parent             = cust&lt;/P&gt;&lt;P&gt;      reuse_control      = q-reuse_control&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      html_display_error = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the HTML control for the DD is already created, we can re-use it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF q-reuse_control IS INITIAL.&lt;/P&gt;&lt;P&gt;    q-reuse_control = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0700_display  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_queue_dd&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 build_queue_dd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: off LIKE sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write the most important apqd header fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;new_line( ).&lt;/P&gt;&lt;P&gt;  WRITE it_apqd-qid TO c.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Queue-ID:'(030) c INTO t SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;new_line( ).&lt;/P&gt;&lt;P&gt;  WRITE it_apqd-trans TO c.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Transaktion:'(031) c INTO t SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;new_line( ).&lt;/P&gt;&lt;P&gt;  WRITE it_apqd-block TO c.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Block:'(032) c INTO t SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;add_text( text = t&lt;/P&gt;&lt;P&gt;                sap_color = cl_dd_table_area=&amp;gt;list_positive ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;new_line( ).&lt;/P&gt;&lt;P&gt;  WRITE it_apqd-varlen TO c.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'VARDATA-Länge:'(033) c INTO t SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  dd-&amp;gt;new_line( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;now add a DD table to it_blocks for the current APQD block&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR b_wa.&lt;/P&gt;&lt;P&gt;  REFRESH it_cx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD dd-&amp;gt;add_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      no_of_columns               = nr_cols&lt;/P&gt;&lt;P&gt;      cell_background_transparent = space&lt;/P&gt;&lt;P&gt;      border                      = '0'&lt;/P&gt;&lt;P&gt;      width                       = '100%'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      tablearea                   = b_wa-dta&lt;/P&gt;&lt;P&gt;      table                       = b_wa-dt&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS                      = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND b_wa TO it_blocks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prepare ascii/hex table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO it_apqd-varlen TIMES.&lt;/P&gt;&lt;P&gt;    off = sy-index - 1.&lt;/P&gt;&lt;P&gt;    ASSIGN it_apqd-vardata+off(1) TO .&lt;/P&gt;&lt;P&gt;    WRITE cx-hex TO cx-xtoc.&lt;/P&gt;&lt;P&gt;    APPEND cx TO it_cx.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write apqd-vardata (as prepared in it_cx ) to the DD list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM vardata_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_queue_dd&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  vardata_lines&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 vardata_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  count-start = 0.&lt;/P&gt;&lt;P&gt;  count-rest  = it_apqd-varlen.&lt;/P&gt;&lt;P&gt;  IF it_apqd-varlen &amp;lt; nr_cols.&lt;/P&gt;&lt;P&gt;    count-part = it_apqd-varlen.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    count-part = nr_cols.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    cspan = nr_cols - count-part.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  1. the ASCII - Value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    b_wa-dta-&amp;gt;new_row( sap_color = cl_dd_table_area=&amp;gt;list_heading ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO count-part TIMES.&lt;/P&gt;&lt;P&gt;      count-index = count-start + sy-index.&lt;/P&gt;&lt;P&gt;      READ TABLE it_cx INTO cx INDEX count-index.&lt;/P&gt;&lt;P&gt;      IF NOT cx-hex IS INITIAL.&lt;/P&gt;&lt;P&gt;        t = cx-char.&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        t = space.&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;add_text( text = t&lt;/P&gt;&lt;P&gt;                          sap_color = cl_dd_table_area=&amp;gt;list_negative ).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    IF count-rest &amp;lt; nr_cols.&lt;/P&gt;&lt;P&gt;      t = space.&lt;/P&gt;&lt;P&gt;      DO cspan TIMES.&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;add_text( text = t&lt;/P&gt;&lt;P&gt;                            sap_color =&lt;/P&gt;&lt;P&gt;                              cl_dd_table_area=&amp;gt;list_background ).&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF q-show_hex = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    2. at least one Byte hex-code for non-unicode systems&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;      PERFORM hex_line USING cx-xtoc+0(1).&lt;/P&gt;&lt;P&gt;      b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;      PERFORM hex_line USING cx-xtoc+1(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    3. two-byte unicode:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF ( q-uc_bytes = 2 OR q-uc_bytes = 4 ).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+2(1).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+3(1).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    3. four-byte unicode:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF ( q-uc_bytes = 4 ).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+4(1).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+5(1).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+6(1).&lt;/P&gt;&lt;P&gt;        b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;        PERFORM hex_line USING cx-xtoc+7(1).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    b_wa-dta-&amp;gt;new_row( sap_style = cl_dd_table_area=&amp;gt;list_normal ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  calculate new counter values for next line(s)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    count-rest  = count-rest - nr_cols.&lt;/P&gt;&lt;P&gt;    IF count-rest &amp;lt; 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      count-start = count-start + nr_cols.&lt;/P&gt;&lt;P&gt;      IF count-rest &amp;lt; nr_cols.&lt;/P&gt;&lt;P&gt;        count-part = count-rest.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        count-part = nr_cols.&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;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " vardata_lines&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  hex_line&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;     --&amp;gt;P_T  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 hex_line USING p_t.&lt;/P&gt;&lt;P&gt;  DO count-part TIMES.&lt;/P&gt;&lt;P&gt;    count-index = count-start + sy-index.&lt;/P&gt;&lt;P&gt;    READ TABLE it_cx INTO cx INDEX count-index.&lt;/P&gt;&lt;P&gt;    t = p_t.&lt;/P&gt;&lt;P&gt;    b_wa-dta-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;  IF count-rest &amp;lt; nr_cols.&lt;/P&gt;&lt;P&gt;    DO cspan TIMES.&lt;/P&gt;&lt;P&gt;      t = space.&lt;/P&gt;&lt;P&gt;      b_wa-dta-&amp;gt;add_text( text = t ).&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " hex_line&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;      Module  d0701_init  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0701_init OUTPUT.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    extab TYPE STANDARD TABLE OF fcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH extab.&lt;/P&gt;&lt;P&gt;  APPEND 'TOGGLE' TO extab.&lt;/P&gt;&lt;P&gt;  APPEND 'APQI'   TO extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'PF_QUEUE' EXCLUDING extab.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'APQI_DUMP' WITH apqi-groupid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0701_init  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  d0701_fcode  INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0701_fcode INPUT.&lt;/P&gt;&lt;P&gt;  CASE d0701_fcode.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'END'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'UNLOCK'.&lt;/P&gt;&lt;P&gt;      PERFORM session_unlock.&lt;/P&gt;&lt;P&gt;    WHEN 'TOGGLE_KEEP'.&lt;/P&gt;&lt;P&gt;      PERFORM session_toggle_keep_flag.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      "nop&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0701_fcode  INPUT&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  session_unlock&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 session_unlock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: user LIKE sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  AUTHORITY-CHECK OBJECT 'S_BDC_MONI'&lt;/P&gt;&lt;P&gt;              ID 'BDCAKTI'     FIELD 'LOCK'&lt;/P&gt;&lt;P&gt;              ID 'BDCGROUPID'  FIELD apqi-groupid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0. MESSAGE i394 WITH apqi-groupid. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ENQUEUE_BDC_QID'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      datatyp        = 'BDC'&lt;/P&gt;&lt;P&gt;      groupid        = apqi-groupid&lt;/P&gt;&lt;P&gt;      qid            = apqi-qid&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      foreign_lock   = 1&lt;/P&gt;&lt;P&gt;      system_failure = 99.&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;    CASE sy-subrc.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        user = sy-msgv1.&lt;/P&gt;&lt;P&gt;        MESSAGE i322 WITH apqi-groupid apqi-qid user.&lt;/P&gt;&lt;P&gt;      WHEN 99. MESSAGE i353 WITH apqi-groupid.&lt;/P&gt;&lt;P&gt;    ENDCASE.&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 apqi-startdate. UPDATE apqi. COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DEQUEUE_BDC_QID'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      datatyp = 'BDC'&lt;/P&gt;&lt;P&gt;      groupid = apqi-groupid&lt;/P&gt;&lt;P&gt;      qid     = apqi-qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;tell SM35 to reload table APQI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EXPORT reload_apqi TO MEMORY ID 'RELOAD_APQI'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " session_unlock&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  session_toggle_keep_flag&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 session_toggle_keep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: user LIKE sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;since setting or deleting the apqi-qerase flag can be considered of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;being equal to deleting a session, we check for the corresponding&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;authorization. There's no special 'KEEP' activity for S_BDC_MONI &lt;SPAN __jive_emoticon_name="sad"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  AUTHORITY-CHECK OBJECT 'S_BDC_MONI'&lt;/P&gt;&lt;P&gt;              ID 'BDCAKTI'     FIELD 'DELE'&lt;/P&gt;&lt;P&gt;              ID 'BDCGROUPID'  FIELD apqi-groupid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0. MESSAGE i395 WITH apqi-groupid. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ENQUEUE_BDC_QID'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      datatyp        = 'BDC'&lt;/P&gt;&lt;P&gt;      groupid        = apqi-groupid&lt;/P&gt;&lt;P&gt;      qid            = apqi-qid&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      foreign_lock   = 1&lt;/P&gt;&lt;P&gt;      system_failure = 99.&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;    CASE sy-subrc.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        user = sy-msgv1.&lt;/P&gt;&lt;P&gt;        MESSAGE i322 WITH apqi-groupid apqi-qid user.&lt;/P&gt;&lt;P&gt;      WHEN 99.&lt;/P&gt;&lt;P&gt;        MESSAGE i353 WITH apqi-groupid.&lt;/P&gt;&lt;P&gt;    ENDCASE.&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;  IF apqi-qerase = 'X'.&lt;/P&gt;&lt;P&gt;    CLEAR apqi-qerase.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    apqi-qerase = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  UPDATE apqi. COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DEQUEUE_BDC_QID'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      datatyp = 'BDC'&lt;/P&gt;&lt;P&gt;      groupid = apqi-groupid&lt;/P&gt;&lt;P&gt;      qid     = apqi-qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;tell SM35 to reload table APQI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EXPORT reload_apqi TO MEMORY ID 'RELOAD_APQI'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " session_toggle_keep_flag&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;      Module  d0702_init  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE d0702_init OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF apqi-startdate IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      IF screen-name = 'PB_UNLOCK'.&lt;/P&gt;&lt;P&gt;        screen-invisible = 1.&lt;/P&gt;&lt;P&gt;        MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " d0702_init  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  MARK_TCODE  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE mark_tcode OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF (      ( tcode_index_apqd = 0 )&lt;/P&gt;&lt;P&gt;        AND ( bdc_tcodes-index =  1st_bdc_tcode_index ) )&lt;/P&gt;&lt;P&gt;    OR ( bdc_tcodes-index = tcode_index_apqd ).&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      screen-intensified = 1. MODIFY SCREEN.&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;ENDMODULE.                 " mark_tcode output&lt;/P&gt;&lt;P&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;FORM count_dynpros&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Count dynpros for a selected transaction&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 count_dynpros USING tcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_apqd. REFRESH it_apqd.&lt;/P&gt;&lt;P&gt;  SELECT * FROM apqd INTO TABLE it_apqd&lt;/P&gt;&lt;P&gt;         WHERE qid = queue_id AND trans = tcnt.&lt;/P&gt;&lt;P&gt;  CLEAR dynpro_cnt.&lt;/P&gt;&lt;P&gt;  LOOP AT it_apqd.&lt;/P&gt;&lt;P&gt;    IF it_apqd-vardata(1) = 'M'.     "it's a message header&lt;/P&gt;&lt;P&gt;      dynpro_cnt = dynpro_cnt + 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "count_dynpros&lt;/P&gt;&lt;P&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;FORM recalculate_counters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  recalculate dynpro counters&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 recalculate_counters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: apqdcnt-msgcntb,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcnte,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcnto,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcntf,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcntd,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcnt,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcntx,&lt;/P&gt;&lt;P&gt;         apqdcnt-msgcntp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT all_bdc_tcodes.&lt;/P&gt;&lt;P&gt;    PERFORM count_dynpros USING all_bdc_tcodes-index.&lt;/P&gt;&lt;P&gt;    ADD dynpro_cnt TO apqdcnt-msgcnt.&lt;/P&gt;&lt;P&gt;    CASE all_bdc_tcodes-status.&lt;/P&gt;&lt;P&gt;      WHEN 'D' OR 'G'.&lt;/P&gt;&lt;P&gt;        ADD dynpro_cnt TO apqdcnt-msgcntd.&lt;/P&gt;&lt;P&gt;      WHEN 'F'.&lt;/P&gt;&lt;P&gt;        ADD dynpro_cnt TO apqdcnt-msgcntf.&lt;/P&gt;&lt;P&gt;      WHEN 'E'.&lt;/P&gt;&lt;P&gt;        ADD dynpro_cnt TO apqdcnt-msgcnte.&lt;/P&gt;&lt;P&gt;      WHEN 'B'.&lt;/P&gt;&lt;P&gt;        ADD dynpro_cnt TO apqdcnt-msgcntb.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-msgcnto   =   apqdcnt-msgcntb&lt;/P&gt;&lt;P&gt;                      + apqdcnt-msgcnte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-msgcntd   =   apqdcnt-msgcnt&lt;/P&gt;&lt;P&gt;                      - apqdcnt-msgcntf&lt;/P&gt;&lt;P&gt;                      - apqdcnt-msgcnte&lt;/P&gt;&lt;P&gt;                      - apqdcnt-msgcntb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-msgcntp   =   apqi-putblock&lt;/P&gt;&lt;P&gt;                      - apqi-puttrans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  apqdcnt-msgcntx   =   apqdcnt-msgcntp&lt;/P&gt;&lt;P&gt;                      - apqdcnt-msgcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  show_dynpro_cnt = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.    "recalculate_counters&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  download&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM download .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH lt_string.&lt;/P&gt;&lt;P&gt;  LOOP AT bdclm.&lt;/P&gt;&lt;P&gt;    CONCATENATE bdclm-tcnt bdclm-longtext INTO wa_string SEPARATED BY '|'.&lt;/P&gt;&lt;P&gt;    APPEND wa_string TO lt_string.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'C:Logs' bdcld-temseid '_' sy-datum '_' sy-uzeit '.xls' INTO filename.&lt;/P&gt;&lt;P&gt;  CONDENSE filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;gui_download&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = filename&lt;/P&gt;&lt;P&gt;      filetype                = 'DAT'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      data_tab                = lt_string&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_write_error        = 1&lt;/P&gt;&lt;P&gt;      no_batch                = 2&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 3&lt;/P&gt;&lt;P&gt;      invalid_type            = 4&lt;/P&gt;&lt;P&gt;      no_authority            = 5&lt;/P&gt;&lt;P&gt;      unknown_error           = 6&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 7&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 8&lt;/P&gt;&lt;P&gt;      filesize_not_allowed    = 9&lt;/P&gt;&lt;P&gt;      header_too_long         = 10&lt;/P&gt;&lt;P&gt;      dp_error_create         = 11&lt;/P&gt;&lt;P&gt;      dp_error_send           = 12&lt;/P&gt;&lt;P&gt;      dp_error_write          = 13&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 14&lt;/P&gt;&lt;P&gt;      access_denied           = 15&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 16&lt;/P&gt;&lt;P&gt;      disk_full               = 17&lt;/P&gt;&lt;P&gt;      dp_timeout              = 18&lt;/P&gt;&lt;P&gt;      file_not_found          = 19&lt;/P&gt;&lt;P&gt;      dataprovider_exception  = 20&lt;/P&gt;&lt;P&gt;      control_flush_error     = 21&lt;/P&gt;&lt;P&gt;      not_supported_by_gui    = 22&lt;/P&gt;&lt;P&gt;      error_no_gui            = 23&lt;/P&gt;&lt;P&gt;      OTHERS                  = 24.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(vz) WITH 'Error while'&lt;/P&gt;&lt;P&gt;                          'downloading'&lt;/P&gt;&lt;P&gt;                          'BDC log to'&lt;/P&gt;&lt;P&gt;                          filename.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s000(vz) WITH 'Log'&lt;/P&gt;&lt;P&gt;                          'downloaded'&lt;/P&gt;&lt;P&gt;                          'to'&lt;/P&gt;&lt;P&gt;                          filename.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " download&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:41:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394151#M191219</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-05T09:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394152#M191220</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;1) When we run the BDC in background the warning messages will be suppressed by the system itself.&lt;/P&gt;&lt;P&gt;No need to supress them seperately.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can catch the errors from the table T100 after calling the transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)READ TABLE it_messtab INDEX sy-tfill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM t100 WHERE sprsl = it_messtab-msgspra AND   arbgb = it_messtab-msgid  AND   msgnr = it_messtab-msgnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Simha.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:42:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394152#M191220</guid>
      <dc:creator>Simha_</dc:creator>
      <dc:date>2006-07-05T09:42:01Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394153#M191221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi anu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;warning messages are automatically handled by bdc program you need not worry abt that and regarding error log you can use the structure BDCMSGCOLL to store the error messages and then you can download this data to external file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sumit Bhutani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:42:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394153#M191221</guid>
      <dc:creator>sbhutani1</dc:creator>
      <dc:date>2006-07-05T09:42:11Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394154#M191222</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;look program &amp;lt;b&amp;gt;RSBDCLOG&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:46:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394154#M191222</guid>
      <dc:creator>andreas_mann3</dc:creator>
      <dc:date>2006-07-05T09:46:03Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394155#M191223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai Anu Raadha&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the following Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report Z_CALLTRANS_VENDOR_01&lt;/P&gt;&lt;P&gt;no standard page heading line-size 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Generated data section with specific formatting - DO NOT CHANGE ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of it_lfa1 occurs 0,&lt;/P&gt;&lt;P&gt;KTOKK like lfa1-ktokk,&lt;/P&gt;&lt;P&gt;NAME1 like lfa1-name1,&lt;/P&gt;&lt;P&gt;SORTL like lfa1-sortl,&lt;/P&gt;&lt;P&gt;LAND1 like lfa1-land1,&lt;/P&gt;&lt;P&gt;end of it_lfa1.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End generated data section ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data : it_bdc like bdcdata occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA: IT_MESSAGES TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;*DATA: LV_MESSAGE(255).&lt;/P&gt;&lt;P&gt;data : it_messages like bdcmsgcoll occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : V_message(255).&lt;/P&gt;&lt;P&gt;data : V_flag.&lt;/P&gt;&lt;P&gt;data : V_datum1 type sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of it_mesg occurs 0,&lt;/P&gt;&lt;P&gt;message(100),&lt;/P&gt;&lt;P&gt;end of it_mesg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*V_datum1 = sy-datum-1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters : P_Sess like APQI-GROUPID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;perform Get_data.&lt;/P&gt;&lt;P&gt;*perform open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_lfa1.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro using 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'RF02K-KTOKK'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;it_lfa1-KTOKK.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro using 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'LFA1-LAND1'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=UPDA'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;it_lfa1-name1.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;it_lfa1-sortl.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;it_lfa1-land1.&lt;/P&gt;&lt;P&gt;call transaction 'XK01' using it_bdc&lt;/P&gt;&lt;P&gt;mode 'N'&lt;/P&gt;&lt;P&gt;update 'S'&lt;/P&gt;&lt;P&gt;messages into it_messages.&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;if V_flag &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;perform open_group.&lt;/P&gt;&lt;P&gt;V_flag = 'X'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;perform bdc_transaction. "using 'XK01'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;perform format_messages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh : it_bdc,it_messages.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;if V_flag = 'X'.&lt;/P&gt;&lt;P&gt;perform close_group.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form Get_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM Get_data .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = 'C:\srinu_vendor.txt'&lt;/P&gt;&lt;P&gt;FILETYPE = 'DAT'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DATA_TAB = it_lfa1&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;CONVERSION_ERROR = 1&lt;/P&gt;&lt;P&gt;INVALID_TABLE_WIDTH = 2&lt;/P&gt;&lt;P&gt;INVALID_TYPE = 3&lt;/P&gt;&lt;P&gt;NO_BATCH = 4&lt;/P&gt;&lt;P&gt;UNKNOWN_ERROR = 5&lt;/P&gt;&lt;P&gt;GUI_REFUSE_FILETRANSFER = 6&lt;/P&gt;&lt;P&gt;OTHERS = 7&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " Get_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0061 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0062 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;CLEAR it_BDC.&lt;/P&gt;&lt;P&gt;it_BDC-PROGRAM = PROGRAM.&lt;/P&gt;&lt;P&gt;it_BDC-DYNPRO = DYNPRO.&lt;/P&gt;&lt;P&gt;it_BDC-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;APPEND it_BDC.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert field *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;CLEAR it_BDC.&lt;/P&gt;&lt;P&gt;it_BDC-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;it_BDC-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;APPEND it_BDC.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form format_messages&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM format_messages .&lt;/P&gt;&lt;P&gt;loop at it_messages.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ID = it_messages-MSGID&lt;/P&gt;&lt;P&gt;LANG = 'EN'&lt;/P&gt;&lt;P&gt;NO = it_messages-MSGNR&lt;/P&gt;&lt;P&gt;V1 = it_messages-MSGV1&lt;/P&gt;&lt;P&gt;V2 = it_messages-MSGV2&lt;/P&gt;&lt;P&gt;V3 = it_messages-MSGV3&lt;/P&gt;&lt;P&gt;V4 = it_messages-MSGV4&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;MSG = V_message&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;write : / V_message.&lt;/P&gt;&lt;P&gt;clear : V_message.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;ENDFORM. " format_messages&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_group .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;CLIENT = SY-MANDT&lt;/P&gt;&lt;P&gt;GROUP = P_Sess&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOLDDATE = V_datum1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;KEEP = 'X'&lt;/P&gt;&lt;P&gt;USER = SY-UNAME&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;write : / 'Session Creating wit Name : ',P_Sess.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_group .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;ENDFORM. " close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form bdc_transaction&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0132 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_transaction. "USING VALUE(P_0132).&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;TCODE = 'XK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POST_LOCAL = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINTING = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIMUBATCH = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CTUPARAMS = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DYNPROTAB = it_bdc&lt;/P&gt;&lt;UL&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;INTERNAL_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOT_OPEN = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;QUEUE_ERROR = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TCODE_INVALID = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINTING_INVALID = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POSTING_INVALID = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " bdc_transaction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; regards&lt;/P&gt;&lt;P&gt;Sreeni&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 09:50:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394155#M191223</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-05T09:50:17Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394156#M191224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please be kind enough to award points and close the thread if your query was resolved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Kiran&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2006 19:11:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394156#M191224</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-05T19:11:54Z</dc:date>
    </item>
    <item>
      <title>Re: BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394157#M191225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kiran -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do i use your code posted in this thread? when i copy it to a program it is not formatted correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a way to convert this code to program (ABAP Editor) format .&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Shiva.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jul 2010 20:52:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/1394157#M191225</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2010-07-14T20:52:40Z</dc:date>
    </item>
  </channel>
</rss>

