<?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: Session errors in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742001#M322303</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;normally when the LSMW is created finally it creates a session which will be processed...goto SM35 and check for the session which will display all items...check for error items and u can correct them...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 01 Dec 2006 15:38:08 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-12-01T15:38:08Z</dc:date>
    <item>
      <title>Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1741999#M322301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi friends,&lt;/P&gt;&lt;P&gt;I have created a session with lsmw, and executed the session in background.&lt;/P&gt;&lt;P&gt;now the problem is out of 2500 records there are 500 records with errors?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so how to correct these errors?? is it manually you have to identify each error transaction?? or is there any way in LSMW or session to download the error records in a file???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks a lot.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 15:27:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1741999#M322301</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T15:27:50Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742000#M322302</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Take a look at the log ( may be also on SM35 ), I guees most of errors are the same error.&lt;/P&gt;&lt;P&gt;If you can identify it, your just have to correct your file and then relaunch !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erwan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 15:32:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742000#M322302</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T15:32:22Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742001#M322303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;normally when the LSMW is created finally it creates a session which will be processed...goto SM35 and check for the session which will display all items...check for error items and u can correct them...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 15:38:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742001#M322303</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T15:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742002#M322304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That means we have to identify the errored records manually???&lt;/P&gt;&lt;P&gt;is there any option to move the error records from session to a file??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 16:36:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742002#M322304</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T16:36:56Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742003#M322305</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;There is a way but it is a bit complicated you will have to do it in debugging the SM35 screen. I hope that I am clear enough below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I do to get the Log of the SM35 session is take it from the internal table storing the log&lt;/P&gt;&lt;P&gt;in debug mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)First goto SM35 &lt;/P&gt;&lt;P&gt;2)Select the log&lt;/P&gt;&lt;P&gt;3)Click on Log&lt;/P&gt;&lt;P&gt;4)Click on the Session&lt;/P&gt;&lt;P&gt;5)Go into debugging mode /h&lt;/P&gt;&lt;P&gt;6)Click on Display&lt;/P&gt;&lt;P&gt;7)Create a Breakpoint on Subroutine 'extend_message_texts'&lt;/P&gt;&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt; You will find a internal table bdclm, let the subroutine process completely&lt;/P&gt;&lt;P&gt;9)then save the internal table as excel sheet by clicking on the button next to the find button  at the top which comes when you see the contents of bdclm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thus the errors are saved in a file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 16:55:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742003#M322305</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T16:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742004#M322306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;u can use the below program to get the logfile into excel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;P&gt;If u find it useful mark the points&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 17:25:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742004#M322306</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T17:25:25Z</dc:date>
    </item>
    <item>
      <title>Re: Session errors</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742005#M322307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Although the log contains all transactions, you don't have to identify the errors manually. If you simnply process the error session, it will only process the errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2006 18:40:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/session-errors/m-p/1742005#M322307</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-01T18:40:20Z</dc:date>
    </item>
  </channel>
</rss>

