<?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: Display changes problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225200#M137683</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi sverker,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. using the concept / FMs&lt;/P&gt;&lt;P&gt;   for change documents,&lt;/P&gt;&lt;P&gt;   we can get the &lt;/P&gt;&lt;P&gt;   old / new data (field values)&lt;/P&gt;&lt;P&gt;    in internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. i have already done this &lt;/P&gt;&lt;P&gt;   kind of requirement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. just copy paste this program .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. U may have to modify&lt;/P&gt;&lt;P&gt;   the required logic ,&lt;/P&gt;&lt;P&gt;   but the BASE will be the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. It display all MODIFIED FIELD VALUE&lt;/P&gt;&lt;P&gt;   (only selected field it displays,&lt;/P&gt;&lt;P&gt;   however we get all the fields)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ymmr_matmas_log_mail                    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INCLUDE&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;INCLUDE yhri_inclfor_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA&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;DATA : cdhdr_itab LIKE TABLE OF cdhdr WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       cdshw LIKE TABLE OF cdshw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      cdred LIKE TABLE OF cdred WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : tcdshw LIKE TABLE OF cdshw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       tcdred LIKE TABLE OF cdred WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : mara LIKE TABLE OF mara WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------" /&gt;&lt;P&gt;DATA : fromdate TYPE sy-datum.&lt;/P&gt;&lt;P&gt;DATA : tabkey LIKE  cdshw-tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mtab OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       chngind LIKE cdshw-chngind,&lt;/P&gt;&lt;P&gt;       END OF mtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA : mcdshw LIKE TABLE OF cdshw WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mcdshw OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       werks LIKE marc-werks,&lt;/P&gt;&lt;P&gt;       tabname LIKE cdshw-tabname,&lt;/P&gt;&lt;P&gt;       tabkey LIKE cdshw-tabkey,&lt;/P&gt;&lt;P&gt;       fname LIKE cdshw-fname,&lt;/P&gt;&lt;P&gt;       f_new(25) TYPE c,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;       END OF mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mlog OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       maktx LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;       werks LIKE marc-werks,&lt;/P&gt;&lt;P&gt;       fname LIKE cdshw-fname,&lt;/P&gt;&lt;P&gt;       f_new(25) TYPE c,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       END OF mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : marc LIKE TABLE OF marc WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : qmat LIKE TABLE OF qmat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : updatelog TYPE c.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;init&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear Fields&lt;/P&gt;&lt;P&gt;  CLEAR updatelog.&lt;/P&gt;&lt;P&gt;  CLEAR fromdate.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Import Flag&lt;/P&gt;&lt;P&gt;  IMPORT updatelog FROM MEMORY ID 'UPDATELOG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Max Aedat&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( aedat ) INTO fromdate FROM ymmt_matmas_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Hardcode Date Bcos 1 Initial Start Date Reqd&lt;/P&gt;&lt;P&gt;  IF fromdate IS INITIAL.&lt;/P&gt;&lt;P&gt;    fromdate = '20050628'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Matnr&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_matnr USING fromdate. "-- Get Distinct Mat&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_matnr_details. "-- Fill All Detail Tables&lt;/P&gt;&lt;P&gt;  PERFORM matmas_fill_field_info. "--- Fill Reqd Fields Info SERNP,ART&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Change Doc&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_changes USING fromdate. "--- Get Change Docum&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Filter&lt;/P&gt;&lt;P&gt;  PERFORM matmas_filterfrom_changedoc . "-- Filter From ChangeDoc&lt;/P&gt;&lt;P&gt;  PERFORM matmas_field_user_values. "---- Filter User Values YPM0&lt;/P&gt;&lt;P&gt;  PERFORM matmas_fill_show_itab. "---- Put info to display itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_get_changes USING stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear Internal Tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH cdhdr_itab.&lt;/P&gt;&lt;P&gt;  CLEAR cdhdr_itab.&lt;/P&gt;&lt;P&gt;  REFRESH cdshw.&lt;/P&gt;&lt;P&gt;  CLEAR cdshw.&lt;/P&gt;&lt;P&gt;  REFRESH cdred.&lt;/P&gt;&lt;P&gt;  CLEAR cdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_HANDLE                   = 0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     date_of_change                   =  stdate&lt;/P&gt;&lt;P&gt;      objectclass                      = 'MATERIAL'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OBJECTID                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TIME_OF_CHANGE                   = '000000'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;25.07.2005 Uname passed as '' so that all records are returned&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;01.08.2005 Comment removed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    USERNAME                         = ''&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LOCAL_TIME                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DATE_UNTIL                       = '99991231'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TIME_UNTIL                       = '235959'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOPLUS_ASWILDCARD_INOBJID        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      i_cdhdr                          = cdhdr_itab&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   no_position_found                = 1&lt;/P&gt;&lt;P&gt;   wrong_access_to_archive          = 2&lt;/P&gt;&lt;P&gt;   time_zone_conversion_error       = 3&lt;/P&gt;&lt;P&gt;   OTHERS                           = 4&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- Loop And Get Detail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT cdhdr_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH tcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tcdshw.&lt;/P&gt;&lt;P&gt;    REFRESH tcdred.&lt;/P&gt;&lt;P&gt;    CLEAR tcdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_HANDLE                = 0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        changenumber                  = cdhdr_itab-changenr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLEKEY                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLENAME                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLEKEY254                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  KEYGUID                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      editpos                       = tcdshw&lt;/P&gt;&lt;P&gt;   editpos_with_header           =    tcdred&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_position_found             = 1&lt;/P&gt;&lt;P&gt;      wrong_access_to_archive       = 2&lt;/P&gt;&lt;P&gt;      OTHERS                        = 3&lt;/P&gt;&lt;P&gt;       .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Append&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tcdshw TO cdshw.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tcdred TO cdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; End Loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "MATMAS_GET_CHANGES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_get_matnr USING stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mara.&lt;/P&gt;&lt;P&gt;  CLEAR mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Get Modified/Created Material&lt;/P&gt;&lt;P&gt;  SELECT * FROM mara&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE mtab&lt;/P&gt;&lt;P&gt;  WHERE ersda &amp;gt;= stdate&lt;/P&gt;&lt;P&gt;  OR laeda &amp;gt;= stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Change Indicator&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;    IF mtab-ersda &amp;gt;= fromdate.&lt;/P&gt;&lt;P&gt;      mtab-chngind = 'I'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF mtab-laeda &amp;gt;= fromdate.&lt;/P&gt;&lt;P&gt;      mtab-chngind = 'U'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY mtab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_get_matnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_get_matnr_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Data&lt;/P&gt;&lt;P&gt;  DATA : tmarc LIKE TABLE OF marc WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA : tqmat LIKE TABLE OF qmat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mcdshw .&lt;/P&gt;&lt;P&gt;  CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;  REFRESH marc.&lt;/P&gt;&lt;P&gt;  CLEAR marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Get From Marc&lt;/P&gt;&lt;P&gt;    REFRESH tmarc.&lt;/P&gt;&lt;P&gt;    CLEAR tmarc.&lt;/P&gt;&lt;P&gt;    SELECT * FROM marc&lt;/P&gt;&lt;P&gt;    INTO TABLE tmarc&lt;/P&gt;&lt;P&gt;    WHERE matnr = mtab-matnr.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tmarc TO marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Get From QMat&lt;/P&gt;&lt;P&gt;    REFRESH tqmat.&lt;/P&gt;&lt;P&gt;    CLEAR tqmat.&lt;/P&gt;&lt;P&gt;    SELECT * FROM qmat&lt;/P&gt;&lt;P&gt;    INTO TABLE tqmat&lt;/P&gt;&lt;P&gt;    WHERE matnr = mtab-matnr.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tqmat TO qmat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Endloop&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_getfield_info&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_fill_field_info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Clear&lt;/P&gt;&lt;P&gt;  REFRESH mcdshw.&lt;/P&gt;&lt;P&gt;  CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill For Marc&lt;/P&gt;&lt;P&gt;  LOOP AT marc.&lt;/P&gt;&lt;P&gt;    CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tabkey.&lt;/P&gt;&lt;P&gt;    CONCATENATE sy-mandt marc-matnr marc-werks INTO tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-matnr = marc-matnr.&lt;/P&gt;&lt;P&gt;    mcdshw-werks = marc-werks.&lt;/P&gt;&lt;P&gt;    mcdshw-tabkey = tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-tabname = 'MARC'.&lt;/P&gt;&lt;P&gt;    mcdshw-fname = 'SERNP'.&lt;/P&gt;&lt;P&gt;    mcdshw-f_new = marc-sernp.&lt;/P&gt;&lt;P&gt;    APPEND mcdshw.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill For QMat&lt;/P&gt;&lt;P&gt;  LOOP AT qmat.&lt;/P&gt;&lt;P&gt;    CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tabkey.&lt;/P&gt;&lt;P&gt;    CONCATENATE  qmat-werks qmat-art INTO tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-matnr = qmat-matnr.&lt;/P&gt;&lt;P&gt;    mcdshw-werks = qmat-werks.&lt;/P&gt;&lt;P&gt;    mcdshw-tabkey = tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-tabname = 'DQMAT'.&lt;/P&gt;&lt;P&gt;    mcdshw-fname = 'ART'.&lt;/P&gt;&lt;P&gt;    mcdshw-f_new = qmat-art.&lt;/P&gt;&lt;P&gt;    APPEND mcdshw.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill Dates From Mtab&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;    READ TABLE mtab WITH KEY matnr = mcdshw-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      mcdshw-ersda = mtab-ersda.&lt;/P&gt;&lt;P&gt;      mcdshw-laeda = mtab-laeda.&lt;/P&gt;&lt;P&gt;      MODIFY mcdshw.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_fill_field_info&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_field_user_values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mcdshw-fname = 'SERNP'.&lt;/P&gt;&lt;P&gt;      IF NOT ( mcdshw-f_new = 'YPM0' ).&lt;/P&gt;&lt;P&gt;        DELETE mcdshw.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mcdshw-fname = 'ART'.&lt;/P&gt;&lt;P&gt;      IF NOT ( mcdshw-f_new = '01' OR mcdshw-f_new = '04'&lt;/P&gt;&lt;P&gt;      OR mcdshw-f_new = '08' OR mcdshw-f_new = '1401' OR mcdshw-f_new =&lt;/P&gt;&lt;P&gt;'Q501').&lt;/P&gt;&lt;P&gt;        DELETE mcdshw.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_field_user_values&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_fill_show_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mlog.&lt;/P&gt;&lt;P&gt;  CLEAR mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR mlog.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING mcdshw TO mlog.&lt;/P&gt;&lt;P&gt;    APPEND mlog.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Get Other Fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE maktx FROM&lt;/P&gt;&lt;P&gt;    makt&lt;/P&gt;&lt;P&gt;    INTO mlog-maktx&lt;/P&gt;&lt;P&gt;    WHERE matnr = mlog-matnr&lt;/P&gt;&lt;P&gt;    AND spras = sy-langu.&lt;/P&gt;&lt;P&gt;    MODIFY mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Check For Update&lt;/P&gt;&lt;P&gt;  IF updatelog = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM matmas_updatelog.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Show&lt;/P&gt;&lt;P&gt;  SORT mlog BY laeda matnr werks.&lt;/P&gt;&lt;P&gt;  PERFORM alv_customize USING sy-repid 'MLOG'.&lt;/P&gt;&lt;P&gt;  PERFORM alv_setcolumn USING 'FNAME' 'ln=10'.&lt;/P&gt;&lt;P&gt;  PERFORM alv_setcolumn USING 'F_NEW' 'ln=10;lt=Value'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_display USING mlog[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_fill_show_itab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_filterfrom_changedoc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Filter From Change Doc&lt;/P&gt;&lt;P&gt;*------- Keep Only Those Fields Which Have Been Changed&lt;/P&gt;&lt;P&gt;*------- Eg. Sernp will come in our records&lt;/P&gt;&lt;P&gt;*------- But If Not in ChngDoc, Then It mean it is not modified&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----- Check Add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE cdshw WITH KEY&lt;/P&gt;&lt;P&gt;    tabname = mcdshw-tabname&lt;/P&gt;&lt;P&gt;    tabkey = mcdshw-tabkey&lt;/P&gt;&lt;P&gt;    chngind = 'I'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&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;*------- Check Modify&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE cdshw WITH KEY&lt;/P&gt;&lt;P&gt;    tabname = mcdshw-tabname&lt;/P&gt;&lt;P&gt;    tabkey = mcdshw-tabkey&lt;/P&gt;&lt;P&gt;    fname = mcdshw-fname.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      DELETE mcdshw.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_filterfrom_changedoc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM updatelog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_updatelog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Update Log Table&lt;/P&gt;&lt;P&gt;  DATA : maxaedat TYPE sy-datum.&lt;/P&gt;&lt;P&gt;  DATA : mmtlog TYPE ymmt_matmas_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;    IF mtab-laeda &amp;gt; maxaedat.&lt;/P&gt;&lt;P&gt;      maxaedat = mtab-laeda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mtab-ersda &amp;gt; maxaedat.&lt;/P&gt;&lt;P&gt;      maxaedat = mtab-ersda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Check Blank Aedat&lt;/P&gt;&lt;P&gt;  IF maxaedat IS INITIAL.&lt;/P&gt;&lt;P&gt;    maxaedat = fromdate.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Rec, If Exits So That +1 Can Be Done&lt;/P&gt;&lt;P&gt;  CLEAR mmtlog.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM ymmt_matmas_log&lt;/P&gt;&lt;P&gt;  INTO mmtlog&lt;/P&gt;&lt;P&gt;  WHERE aedat = maxaedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  mmtlog-aedat = maxaedat.&lt;/P&gt;&lt;P&gt;  mmtlog-mlflag = 'X'.&lt;/P&gt;&lt;P&gt;  mmtlog-mlnam = sy-uname.&lt;/P&gt;&lt;P&gt;  mmtlog-mldat = sy-datum.&lt;/P&gt;&lt;P&gt;  mmtlog-mlzet = sy-uzeit.&lt;/P&gt;&lt;P&gt;  mmtlog-mlcnt = mmtlog-mlcnt + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MODIFY ymmt_matmas_log FROM mmtlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_updatelog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;amit m.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 20 Mar 2006 13:45:26 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-03-20T13:45:26Z</dc:date>
    <item>
      <title>Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225199#M137682</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a program that insert new material and update existing materials in the material master. I made changes in this program that got serious errors. I removed data in some fields that i shouldn't remove on about 500 materials. In display changes I can see the old values and the new values per material. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I need help to reverse these changes. Do you know an easy way to do this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If not. Do you know how I can get a list on my changes so I can update the materials manually?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you VERY much for all help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;Sverker&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 13:40:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225199#M137682</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T13:40:50Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225200#M137683</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi sverker,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. using the concept / FMs&lt;/P&gt;&lt;P&gt;   for change documents,&lt;/P&gt;&lt;P&gt;   we can get the &lt;/P&gt;&lt;P&gt;   old / new data (field values)&lt;/P&gt;&lt;P&gt;    in internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. i have already done this &lt;/P&gt;&lt;P&gt;   kind of requirement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. just copy paste this program .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. U may have to modify&lt;/P&gt;&lt;P&gt;   the required logic ,&lt;/P&gt;&lt;P&gt;   but the BASE will be the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. It display all MODIFIED FIELD VALUE&lt;/P&gt;&lt;P&gt;   (only selected field it displays,&lt;/P&gt;&lt;P&gt;   however we get all the fields)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ymmr_matmas_log_mail                    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INCLUDE&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;INCLUDE yhri_inclfor_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA&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;DATA : cdhdr_itab LIKE TABLE OF cdhdr WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       cdshw LIKE TABLE OF cdshw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      cdred LIKE TABLE OF cdred WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : tcdshw LIKE TABLE OF cdshw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       tcdred LIKE TABLE OF cdred WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : mara LIKE TABLE OF mara WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------" /&gt;&lt;P&gt;DATA : fromdate TYPE sy-datum.&lt;/P&gt;&lt;P&gt;DATA : tabkey LIKE  cdshw-tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mtab OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       chngind LIKE cdshw-chngind,&lt;/P&gt;&lt;P&gt;       END OF mtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA : mcdshw LIKE TABLE OF cdshw WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mcdshw OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       werks LIKE marc-werks,&lt;/P&gt;&lt;P&gt;       tabname LIKE cdshw-tabname,&lt;/P&gt;&lt;P&gt;       tabkey LIKE cdshw-tabkey,&lt;/P&gt;&lt;P&gt;       fname LIKE cdshw-fname,&lt;/P&gt;&lt;P&gt;       f_new(25) TYPE c,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;       END OF mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF mlog OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;       maktx LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;       werks LIKE marc-werks,&lt;/P&gt;&lt;P&gt;       fname LIKE cdshw-fname,&lt;/P&gt;&lt;P&gt;       f_new(25) TYPE c,&lt;/P&gt;&lt;P&gt;       laeda LIKE mara-laeda,&lt;/P&gt;&lt;P&gt;       ersda LIKE mara-ersda,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       END OF mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : marc LIKE TABLE OF marc WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : qmat LIKE TABLE OF qmat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : updatelog TYPE c.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;init&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear Fields&lt;/P&gt;&lt;P&gt;  CLEAR updatelog.&lt;/P&gt;&lt;P&gt;  CLEAR fromdate.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Import Flag&lt;/P&gt;&lt;P&gt;  IMPORT updatelog FROM MEMORY ID 'UPDATELOG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Max Aedat&lt;/P&gt;&lt;P&gt;  SELECT SINGLE MAX( aedat ) INTO fromdate FROM ymmt_matmas_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Hardcode Date Bcos 1 Initial Start Date Reqd&lt;/P&gt;&lt;P&gt;  IF fromdate IS INITIAL.&lt;/P&gt;&lt;P&gt;    fromdate = '20050628'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Matnr&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_matnr USING fromdate. "-- Get Distinct Mat&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_matnr_details. "-- Fill All Detail Tables&lt;/P&gt;&lt;P&gt;  PERFORM matmas_fill_field_info. "--- Fill Reqd Fields Info SERNP,ART&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Change Doc&lt;/P&gt;&lt;P&gt;  PERFORM matmas_get_changes USING fromdate. "--- Get Change Docum&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Filter&lt;/P&gt;&lt;P&gt;  PERFORM matmas_filterfrom_changedoc . "-- Filter From ChangeDoc&lt;/P&gt;&lt;P&gt;  PERFORM matmas_field_user_values. "---- Filter User Values YPM0&lt;/P&gt;&lt;P&gt;  PERFORM matmas_fill_show_itab. "---- Put info to display itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_get_changes USING stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear Internal Tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH cdhdr_itab.&lt;/P&gt;&lt;P&gt;  CLEAR cdhdr_itab.&lt;/P&gt;&lt;P&gt;  REFRESH cdshw.&lt;/P&gt;&lt;P&gt;  CLEAR cdshw.&lt;/P&gt;&lt;P&gt;  REFRESH cdred.&lt;/P&gt;&lt;P&gt;  CLEAR cdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_HANDLE                   = 0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     date_of_change                   =  stdate&lt;/P&gt;&lt;P&gt;      objectclass                      = 'MATERIAL'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OBJECTID                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TIME_OF_CHANGE                   = '000000'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;25.07.2005 Uname passed as '' so that all records are returned&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;01.08.2005 Comment removed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    USERNAME                         = ''&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LOCAL_TIME                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DATE_UNTIL                       = '99991231'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TIME_UNTIL                       = '235959'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOPLUS_ASWILDCARD_INOBJID        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      i_cdhdr                          = cdhdr_itab&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   no_position_found                = 1&lt;/P&gt;&lt;P&gt;   wrong_access_to_archive          = 2&lt;/P&gt;&lt;P&gt;   time_zone_conversion_error       = 3&lt;/P&gt;&lt;P&gt;   OTHERS                           = 4&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- Loop And Get Detail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT cdhdr_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH tcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tcdshw.&lt;/P&gt;&lt;P&gt;    REFRESH tcdred.&lt;/P&gt;&lt;P&gt;    CLEAR tcdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_HANDLE                = 0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        changenumber                  = cdhdr_itab-changenr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLEKEY                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLENAME                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TABLEKEY254                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  KEYGUID                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      editpos                       = tcdshw&lt;/P&gt;&lt;P&gt;   editpos_with_header           =    tcdred&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_position_found             = 1&lt;/P&gt;&lt;P&gt;      wrong_access_to_archive       = 2&lt;/P&gt;&lt;P&gt;      OTHERS                        = 3&lt;/P&gt;&lt;P&gt;       .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Append&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tcdshw TO cdshw.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tcdred TO cdred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; End Loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "MATMAS_GET_CHANGES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_get_matnr USING stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mara.&lt;/P&gt;&lt;P&gt;  CLEAR mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Get Modified/Created Material&lt;/P&gt;&lt;P&gt;  SELECT * FROM mara&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE mtab&lt;/P&gt;&lt;P&gt;  WHERE ersda &amp;gt;= stdate&lt;/P&gt;&lt;P&gt;  OR laeda &amp;gt;= stdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Change Indicator&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;    IF mtab-ersda &amp;gt;= fromdate.&lt;/P&gt;&lt;P&gt;      mtab-chngind = 'I'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF mtab-laeda &amp;gt;= fromdate.&lt;/P&gt;&lt;P&gt;      mtab-chngind = 'U'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY mtab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_get_matnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_get_matnr_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Data&lt;/P&gt;&lt;P&gt;  DATA : tmarc LIKE TABLE OF marc WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA : tqmat LIKE TABLE OF qmat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Clear&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mcdshw .&lt;/P&gt;&lt;P&gt;  CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;  REFRESH marc.&lt;/P&gt;&lt;P&gt;  CLEAR marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Get From Marc&lt;/P&gt;&lt;P&gt;    REFRESH tmarc.&lt;/P&gt;&lt;P&gt;    CLEAR tmarc.&lt;/P&gt;&lt;P&gt;    SELECT * FROM marc&lt;/P&gt;&lt;P&gt;    INTO TABLE tmarc&lt;/P&gt;&lt;P&gt;    WHERE matnr = mtab-matnr.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tmarc TO marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Get From QMat&lt;/P&gt;&lt;P&gt;    REFRESH tqmat.&lt;/P&gt;&lt;P&gt;    CLEAR tqmat.&lt;/P&gt;&lt;P&gt;    SELECT * FROM qmat&lt;/P&gt;&lt;P&gt;    INTO TABLE tqmat&lt;/P&gt;&lt;P&gt;    WHERE matnr = mtab-matnr.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF tqmat TO qmat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Endloop&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_getfield_info&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_fill_field_info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Clear&lt;/P&gt;&lt;P&gt;  REFRESH mcdshw.&lt;/P&gt;&lt;P&gt;  CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill For Marc&lt;/P&gt;&lt;P&gt;  LOOP AT marc.&lt;/P&gt;&lt;P&gt;    CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tabkey.&lt;/P&gt;&lt;P&gt;    CONCATENATE sy-mandt marc-matnr marc-werks INTO tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-matnr = marc-matnr.&lt;/P&gt;&lt;P&gt;    mcdshw-werks = marc-werks.&lt;/P&gt;&lt;P&gt;    mcdshw-tabkey = tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-tabname = 'MARC'.&lt;/P&gt;&lt;P&gt;    mcdshw-fname = 'SERNP'.&lt;/P&gt;&lt;P&gt;    mcdshw-f_new = marc-sernp.&lt;/P&gt;&lt;P&gt;    APPEND mcdshw.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill For QMat&lt;/P&gt;&lt;P&gt;  LOOP AT qmat.&lt;/P&gt;&lt;P&gt;    CLEAR mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR tabkey.&lt;/P&gt;&lt;P&gt;    CONCATENATE  qmat-werks qmat-art INTO tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-matnr = qmat-matnr.&lt;/P&gt;&lt;P&gt;    mcdshw-werks = qmat-werks.&lt;/P&gt;&lt;P&gt;    mcdshw-tabkey = tabkey.&lt;/P&gt;&lt;P&gt;    mcdshw-tabname = 'DQMAT'.&lt;/P&gt;&lt;P&gt;    mcdshw-fname = 'ART'.&lt;/P&gt;&lt;P&gt;    mcdshw-f_new = qmat-art.&lt;/P&gt;&lt;P&gt;    APPEND mcdshw.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; Fill Dates From Mtab&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;    READ TABLE mtab WITH KEY matnr = mcdshw-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      mcdshw-ersda = mtab-ersda.&lt;/P&gt;&lt;P&gt;      mcdshw-laeda = mtab-laeda.&lt;/P&gt;&lt;P&gt;      MODIFY mcdshw.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_fill_field_info&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_field_user_values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mcdshw-fname = 'SERNP'.&lt;/P&gt;&lt;P&gt;      IF NOT ( mcdshw-f_new = 'YPM0' ).&lt;/P&gt;&lt;P&gt;        DELETE mcdshw.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mcdshw-fname = 'ART'.&lt;/P&gt;&lt;P&gt;      IF NOT ( mcdshw-f_new = '01' OR mcdshw-f_new = '04'&lt;/P&gt;&lt;P&gt;      OR mcdshw-f_new = '08' OR mcdshw-f_new = '1401' OR mcdshw-f_new =&lt;/P&gt;&lt;P&gt;'Q501').&lt;/P&gt;&lt;P&gt;        DELETE mcdshw.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_field_user_values&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_fill_show_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH mlog.&lt;/P&gt;&lt;P&gt;  CLEAR mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;    CLEAR mlog.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING mcdshw TO mlog.&lt;/P&gt;&lt;P&gt;    APPEND mlog.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Get Other Fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE maktx FROM&lt;/P&gt;&lt;P&gt;    makt&lt;/P&gt;&lt;P&gt;    INTO mlog-maktx&lt;/P&gt;&lt;P&gt;    WHERE matnr = mlog-matnr&lt;/P&gt;&lt;P&gt;    AND spras = sy-langu.&lt;/P&gt;&lt;P&gt;    MODIFY mlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Check For Update&lt;/P&gt;&lt;P&gt;  IF updatelog = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM matmas_updatelog.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Show&lt;/P&gt;&lt;P&gt;  SORT mlog BY laeda matnr werks.&lt;/P&gt;&lt;P&gt;  PERFORM alv_customize USING sy-repid 'MLOG'.&lt;/P&gt;&lt;P&gt;  PERFORM alv_setcolumn USING 'FNAME' 'ln=10'.&lt;/P&gt;&lt;P&gt;  PERFORM alv_setcolumn USING 'F_NEW' 'ln=10;lt=Value'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_display USING mlog[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_fill_show_itab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM&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 matmas_filterfrom_changedoc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Filter From Change Doc&lt;/P&gt;&lt;P&gt;*------- Keep Only Those Fields Which Have Been Changed&lt;/P&gt;&lt;P&gt;*------- Eg. Sernp will come in our records&lt;/P&gt;&lt;P&gt;*------- But If Not in ChngDoc, Then It mean it is not modified&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mcdshw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----- Check Add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE cdshw WITH KEY&lt;/P&gt;&lt;P&gt;    tabname = mcdshw-tabname&lt;/P&gt;&lt;P&gt;    tabkey = mcdshw-tabkey&lt;/P&gt;&lt;P&gt;    chngind = 'I'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&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;*------- Check Modify&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE cdshw WITH KEY&lt;/P&gt;&lt;P&gt;    tabname = mcdshw-tabname&lt;/P&gt;&lt;P&gt;    tabkey = mcdshw-tabkey&lt;/P&gt;&lt;P&gt;    fname = mcdshw-fname.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      DELETE mcdshw.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_filterfrom_changedoc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM updatelog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;FORM matmas_updatelog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Update Log Table&lt;/P&gt;&lt;P&gt;  DATA : maxaedat TYPE sy-datum.&lt;/P&gt;&lt;P&gt;  DATA : mmtlog TYPE ymmt_matmas_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT mtab.&lt;/P&gt;&lt;P&gt;    IF mtab-laeda &amp;gt; maxaedat.&lt;/P&gt;&lt;P&gt;      maxaedat = mtab-laeda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF mtab-ersda &amp;gt; maxaedat.&lt;/P&gt;&lt;P&gt;      maxaedat = mtab-ersda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Check Blank Aedat&lt;/P&gt;&lt;P&gt;  IF maxaedat IS INITIAL.&lt;/P&gt;&lt;P&gt;    maxaedat = fromdate.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Get Rec, If Exits So That +1 Can Be Done&lt;/P&gt;&lt;P&gt;  CLEAR mmtlog.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM ymmt_matmas_log&lt;/P&gt;&lt;P&gt;  INTO mmtlog&lt;/P&gt;&lt;P&gt;  WHERE aedat = maxaedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  mmtlog-aedat = maxaedat.&lt;/P&gt;&lt;P&gt;  mmtlog-mlflag = 'X'.&lt;/P&gt;&lt;P&gt;  mmtlog-mlnam = sy-uname.&lt;/P&gt;&lt;P&gt;  mmtlog-mldat = sy-datum.&lt;/P&gt;&lt;P&gt;  mmtlog-mlzet = sy-uzeit.&lt;/P&gt;&lt;P&gt;  mmtlog-mlcnt = mmtlog-mlcnt + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MODIFY ymmt_matmas_log FROM mmtlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "matmas_updatelog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;amit m.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 13:45:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225200#M137683</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T13:45:26Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225201#M137684</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can also use standard transaction MM04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 13:50:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225201#M137684</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T13:50:58Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225202#M137685</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;Thanks for your help. But I get stuck because an error becuse I miss your include yhri_inclfor_alv and ymmt_matmas_log is not defined. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Plese help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Sverker&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 14:50:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225202#M137685</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T14:50:32Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225203#M137686</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi sverker,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. sorry i forgot that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. this is the code :&lt;/P&gt;&lt;P&gt;   (but this include is for alv purpose only,&lt;/P&gt;&lt;P&gt;   not for change documents)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------" /&gt;&lt;P&gt; Common Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:varname(30) TYPE c.&lt;/P&gt;&lt;P&gt;DATA:varvalue(30) TYPE c.&lt;/P&gt;&lt;P&gt;DATA:hasvar TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;&lt;P&gt; General Variables&lt;/P&gt;&lt;P&gt;DATA : progid TYPE sy-repid.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;&lt;P&gt; Variables  For Alv&lt;/P&gt;&lt;P&gt;DATA : alvfc TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;DATA : alvly TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;DATA : alvev TYPE slis_t_event .&lt;/P&gt;&lt;P&gt;DATA : alvfc_done TYPE c.&lt;/P&gt;&lt;P&gt;DATA : alvitabname(30) TYPE c.&lt;/P&gt;&lt;P&gt;DATA : alvcallback_formname(30) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------" /&gt;&lt;P&gt; split qs&lt;/P&gt;&lt;P&gt;FORM qs_has_varname USING value(whatqs) value(whatvarname)&lt;/P&gt;&lt;P&gt;CHANGING hasvar varvalue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Variables&lt;/P&gt;&lt;P&gt;  DATA : BEGIN OF qs OCCURS 0,&lt;/P&gt;&lt;P&gt;      varname(35) TYPE c,&lt;/P&gt;&lt;P&gt;      varvalue(35) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF qs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : BEGIN OF qs1 OCCURS 0,&lt;/P&gt;&lt;P&gt;      var(35) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF qs1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : BEGIN OF finalqs OCCURS 0,&lt;/P&gt;&lt;P&gt;      varname(35) TYPE c,&lt;/P&gt;&lt;P&gt;      varvalue(35) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF finalqs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : myctr TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Check Parameters&lt;/P&gt;&lt;P&gt;  TRANSLATE whatvarname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Do&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SPLIT whatqs  AT ';' INTO TABLE qs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT qs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SPLIT qs-varname AT '=' INTO TABLE qs1.&lt;/P&gt;&lt;P&gt;    myctr = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT qs1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      myctr = myctr + 1.&lt;/P&gt;&lt;P&gt;      IF myctr = 1. qs-varname = qs1-var. ENDIF.&lt;/P&gt;&lt;P&gt;      IF myctr = 2 . qs-varvalue = qs1-var. ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TRANSLATE qs-varname 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;         write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; qs-varname , ' ------ ' , qs-varvalue.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND qs TO finalqs.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt; Now Search&lt;/P&gt;&lt;P&gt;  hasvar = 0.&lt;/P&gt;&lt;P&gt;  varvalue = ''.&lt;/P&gt;&lt;P&gt;  LOOP AT finalqs.&lt;/P&gt;&lt;P&gt;    IF finalqs-varname = whatvarname.&lt;/P&gt;&lt;P&gt;      hasvar = 1.&lt;/P&gt;&lt;P&gt;      varvalue = finalqs-varvalue.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "qs_has_varname&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_customize USING value(whatprogid) value(whatalvitabname).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR alvfc.&lt;/P&gt;&lt;P&gt;  CLEAR alvly.&lt;/P&gt;&lt;P&gt;  CLEAR alvev.&lt;/P&gt;&lt;P&gt;  alvfc_done = ''.&lt;/P&gt;&lt;P&gt;  progid = whatprogid.&lt;/P&gt;&lt;P&gt;  alvitabname = whatalvitabname.&lt;/P&gt;&lt;P&gt;  TRANSLATE alvitabname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  CONCATENATE alvitabname '_USER_COMMAND' INTO alvcallback_formname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_buildev.&lt;/P&gt;&lt;P&gt;  PERFORM alv_setevent USING 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_customize&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;P&gt;FORM alv_display USING itab TYPE table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF alvfc_done &amp;lt;&amp;gt; 'T'.&lt;/P&gt;&lt;P&gt;    PERFORM alv_buildfc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_callback_program      = progid&lt;/P&gt;&lt;P&gt;      i_callback_user_command = alvcallback_formname&lt;/P&gt;&lt;P&gt;      it_fieldcat             = alvfc&lt;/P&gt;&lt;P&gt;      is_layout               = alvly&lt;/P&gt;&lt;P&gt;      i_save                  = 'A'&lt;/P&gt;&lt;P&gt;      it_events               = alvev[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                = itab&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  alv_buildfc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_buildfc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_program_name     = progid&lt;/P&gt;&lt;P&gt;      i_internal_tabname = alvitabname&lt;/P&gt;&lt;P&gt;      i_inclname         = progid&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat        = alvfc.&lt;/P&gt;&lt;P&gt;  alvfc_done = 'T'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_buildfc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*===================================================================&lt;/P&gt;&lt;P&gt;FORM alv_setcolumn USING value(whatfieldname) value(parastr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt; sets the column properties.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : fcl TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  TRANSLATE whatfieldname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  "----&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt; Check&lt;/P&gt;&lt;P&gt;  IF alvfc_done &amp;lt;&amp;gt; 'T'.&lt;/P&gt;&lt;P&gt;    PERFORM alv_buildfc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR fcl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  "----&lt;/P&gt;&lt;HR originaltext="---------" /&gt;&lt;P&gt; Loop Once And Check&lt;/P&gt;&lt;P&gt;  LOOP AT alvfc INTO fcl WHERE fieldname = whatfieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'fn' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-fieldname = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'lt' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-seltext_l  = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'st' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-seltext_s  = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'mt' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-seltext_m  = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'ch' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-reptext_ddic = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'ke' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-key  = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'em' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-emphasize = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'fc' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-fix_column = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'ds' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-do_sum = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'ju' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-just = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'no' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-no_out = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'dd' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-ddictxt = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM qs_has_varname USING parastr 'ln' hasvar varvalue.&lt;/P&gt;&lt;P&gt;    IF hasvar = 1.  fcl-outputlen = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    "----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; Now Modify Original FC&lt;/P&gt;&lt;P&gt;    MODIFY alvfc FROM fcl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;&lt;P&gt; Done&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_setcolumn&lt;/P&gt;&lt;P&gt;&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;P&gt;&lt;/P&gt;&lt;P&gt;*============ This Function Builds The Events&lt;/P&gt;&lt;P&gt;FORM alv_buildev.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events   = alvev.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_buildev&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*=============This Function Links the Event Name To The Specified Form&lt;/P&gt;&lt;P&gt;FORM alv_setevent USING value(eventname) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: tempev TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;  DATA : formname(30) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE eventname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  CONCATENATE alvitabname '_' eventname INTO formname.&lt;/P&gt;&lt;P&gt;  TRANSLATE formname TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT alvev INTO tempev WHERE name = eventname.&lt;/P&gt;&lt;P&gt;    tempev-form = formname.&lt;/P&gt;&lt;P&gt;    MODIFY  alvev FROM tempev.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_setevent&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*================== This Function Sets The Layout&lt;/P&gt;&lt;P&gt;FORM alv_setlayout USING value(parastr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'wo' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-colwidth_optimize = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'zb' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-zebra = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'co' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-info_fieldname = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'bf' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-box_fieldname = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'bt' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-box_tabname = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'gc' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-group_change_edit = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'se' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-get_selinfos = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'tt' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-totals_text = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'st' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-subtotals_text = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM qs_has_varname USING parastr 'NK' hasvar varvalue.&lt;/P&gt;&lt;P&gt;  IF hasvar = 1.  alvly-no_keyfix = varvalue. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_setlayout&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;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_setfc_maxlength USING maxlength .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : alvwa TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; Check Length&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT alvfc INTO alvwa.&lt;/P&gt;&lt;P&gt;    IF alvwa-ddic_outputlen &amp;gt; maxlength.&lt;/P&gt;&lt;P&gt;      alvwa-outputlen = maxlength.&lt;/P&gt;&lt;P&gt;      MODIFY alvfc FROM alvwa.&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.                    "alv_setmaxlength&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV_SHOW_PAGE_HEADINGS&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 alv_show_page_headings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : fname(30) TYPE c.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS : &amp;lt;fv&amp;gt; TYPE ANY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : et_sort TYPE slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;         et_sortwa TYPE slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;  DATA : et_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         et_fieldcatwa TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------" /&gt;&lt;P&gt; Get Info&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_GET'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_fieldcat   = et_fieldcat&lt;/P&gt;&lt;P&gt;      et_sort       = et_sort&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_infos      = 1&lt;/P&gt;&lt;P&gt;      program_error = 2&lt;/P&gt;&lt;P&gt;      OTHERS        = 3.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt;Loop and Check Sort Table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT et_sort INTO et_sortwa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF et_sortwa-group = '*'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE et_fieldcat INTO et_fieldcatwa&lt;/P&gt;&lt;P&gt;      WITH KEY fieldname = et_sortwa-fieldname.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; et_fieldcatwa-seltext_l.&lt;/P&gt;&lt;P&gt;        CONCATENATE et_sortwa-tabname '-' et_sortwa-fieldname&lt;/P&gt;&lt;P&gt;        INTO fname.&lt;/P&gt;&lt;P&gt;        ASSIGN (fname) TO &amp;lt;fv&amp;gt;.&lt;/P&gt;&lt;P&gt;        WRITE : &amp;lt;fv&amp;gt;.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "ALV_SHOW_HEADINGS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV_APPEND_FC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append FC To Existing FC&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create Or Append As Specified&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 alv_append_fc&lt;/P&gt;&lt;P&gt;TABLES orgfc  TYPE slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;appfc TYPE slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;USING&lt;/P&gt;&lt;P&gt;createnew maintabname subtabname&lt;/P&gt;&lt;P&gt;prefix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt; Data&lt;/P&gt;&lt;P&gt;  DATA : subalvfc TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  DATA : subalvfcwa TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  DATA : maxcol_pos TYPE i.&lt;/P&gt;&lt;P&gt;  DATA : ctrcol_pos TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt; Logic&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF createnew = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; First Build FC For SubTable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_program_name     = progid&lt;/P&gt;&lt;P&gt;        i_internal_tabname = subtabname&lt;/P&gt;&lt;P&gt;        i_inclname         = progid&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        ct_fieldcat        = subalvfc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    subalvfc[] = appfc[] .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- Loop At Org Fc And Find Max&lt;/P&gt;&lt;P&gt;  LOOP AT orgfc INTO subalvfcwa.&lt;/P&gt;&lt;P&gt;    IF subalvfcwa-col_pos &amp;gt;  maxcol_pos.&lt;/P&gt;&lt;P&gt;      maxcol_pos =  subalvfcwa-col_pos .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ctrcol_pos = maxcol_pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Loop At Subtable FC And Append To Org FC&lt;/P&gt;&lt;P&gt;  LOOP AT subalvfc INTO subalvfcwa.&lt;/P&gt;&lt;P&gt;    CONCATENATE subtabname '-' subalvfcwa-fieldname&lt;/P&gt;&lt;P&gt;    INTO subalvfcwa-fieldname .&lt;/P&gt;&lt;P&gt;    subalvfcwa-tabname = maintabname.&lt;/P&gt;&lt;P&gt;    ctrcol_pos = ctrcol_pos + 1.&lt;/P&gt;&lt;P&gt;    subalvfcwa-col_pos = ctrcol_pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Prefixes L M S&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF prefix IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      CONCATENATE prefix  subalvfcwa-seltext_l INTO&lt;/P&gt;&lt;P&gt;     subalvfcwa-seltext_l SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      CONCATENATE prefix  subalvfcwa-seltext_m INTO&lt;/P&gt;&lt;P&gt;      subalvfcwa-seltext_m SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      CONCATENATE prefix  subalvfcwa-seltext_s INTO&lt;/P&gt;&lt;P&gt;      subalvfcwa-seltext_s SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND subalvfcwa TO orgfc.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Sort&lt;/P&gt;&lt;P&gt;  SORT orgfc BY col_pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_APPEND_FC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;amit m.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 14:53:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225203#M137686</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T14:53:02Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225204#M137687</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use CDHDR, CDPOS TABLES ...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 15:02:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225204#M137687</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T15:02:25Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225205#M137688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;CDHDR and CDPOs. Very good!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I need a list and when i try to create one in SQ01 SAP says that CDPOS is not a table. How can I join these two tables to one list?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;Sverker&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 15:05:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225205#M137688</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T15:05:59Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225206#M137689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;these both CDHDR &amp;amp; CDPOS ARE transparent tables. so check in SE11/SE12/SE16.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBJECTID = 'MATERIAL'.&lt;/P&gt;&lt;P&gt;Tcode : will be 'MM01' OR MM02 OR MM06&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;even you see the old &amp;amp; new values pair thru MM02/MM03&lt;/P&gt;&lt;P&gt;go to ENVIRONMENT-&amp;gt;DISPLAY CHANGES.&lt;/P&gt;&lt;P&gt;The screen comes here, will have the old &amp;amp; new value pair with the date &amp;amp; user who changed them.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;srikanth&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Srikanth Kidambi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 15:47:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225206#M137689</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T15:47:01Z</dc:date>
    </item>
    <item>
      <title>Re: Display changes problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225207#M137690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok. But why can't I join them together in SQ01 then?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Sverker&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Mar 2006 17:20:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/display-changes-problem/m-p/1225207#M137690</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-20T17:20:20Z</dc:date>
    </item>
  </channel>
</rss>

