Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

plant code like with CDHDR and CDPOS

Former Member
0 Kudos

Hi Expert

I have created a report to see the changes made for the following document from CDHDR and CDPOS tables and cluster respectively

I want to know where I can find the Plant code in these above tables and if so how can i link with the above tables

I need to display the report with range by plant code, document no, udate and parameter username

regards

18 REPLIES 18

Former Member
0 Kudos

Are you looking for the report which shows changes made to Plant master data?

I believe you have asked similar questions earlier. I am not clear with your requirement. Can you explain in detail?

ashish

0 Kudos

Hi Ashish

See below my coding which will used to display the document changes made by user, Now I want to know how can we link or add the plant code link with cdpos and cdhdr please.

REPORT ZCHGDOC

NO STANDARD PAGE HEADING LINE-SIZE 120.

  • WRITE: sy-title, 40 'Page', sy-pagno.

  • ULINE.

TABLES: CDHDR,

CDPOS,

VBAK.

SELECTION-SCREEN BEGIN OF BLOCK DOCUMENT WITH FRAME TITLE TEXT-701.

SELECT-OPTIONS: objectid for cdhdr-objectid,

udate for cdhdr-udate.

SELECTION-SCREEN END OF BLOCK DOCUMENT.

DATA: BEGIN OF IT_CDHDR OCCURS 0,

OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

OBJECTID LIKE CDHDR-OBJECTID,

CHANGENR LIKE CDHDR-CHANGENR,

USERNAME LIKE CDHDR-USERNAME,

UDATE LIKE CDHDR-UDATE,

UTIME LIKE CDHDR-UTIME,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

END OF IT_CDHDR.

DATA: WA LIKE LINE OF IT_CDHDR.

  • DATA: WA LIKE LINE OF IT_CDPOS.

DATA: BEGIN OF IT_CDPOS OCCURS 0,

OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

OBJECTID LIKE CDHDR-OBJECTID,

CHANGENR LIKE CDHDR-CHANGENR,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY,

FNAME LIKE CDPOS-FNAME,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

END OF IT_CDPOS.

Move-corresponding it_cdhdr to wa.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

USERNAME

UDATE

UTIME INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

FROM CDHDR

WHERE OBJECTCLAS = 'VERKBELEG' ORDER BY UDATE.

IF IT_CDHDR[] IS NOT INITIAL.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

VALUE_NEW

VALUE_OLD

FNAME

TABNAME

TABKEY

INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS FROM CDPOS

FOR ALL ENTRIES IN IT_CDHDR

WHERE

OBJECTCLAS = IT_CDHDR-OBJECTCLAS

AND OBJECTID = IT_CDHDR-OBJECTID

AND CHANGENR = IT_CDHDR-CHANGENR.

SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.

ENDIF.

  • Add tables CDPOS DATA TO CDHDR.

DATA: INDEX TYPE i.

LOOP AT IT_CDHDR.

INDEX = SY-TABIX.

READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS

OBJECTID = IT_CDHDR-OBJECTID

CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.

IF SY-SUBRC = 0.

IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.

IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.

MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.

ENDIF.

0 Kudos

So do you mean to say apart from tracking Document changes, you also want to track Plant changes?

And you want to incorporate that case in your current code?

0 Kudos

Yes please you are thinking in a right way , do you have any idea

regards

0 Kudos

Yes ashish now you are understanding my report, do you have any clue or idea how can we add

regards

Piroz

0 Kudos

BETRIEB is the value of OBJECTCLAS which will help you to get change documents for Plant master data.

So you will have to modify your SELECT in order to add PLANT condition.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

USERNAME

UDATE

UTIME INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

FROM CDHDR

WHERE OBJECTCLAS = 'VERKBELEG'

<b>OR OBJECTCLAS = 'BETRIEB' </b>

ORDER BY UDATE.

Using above enhancement you will extract change documents for Plant as well as Sales Orders.

You do not need to make any change to CDPOS select as it is using entries from IT_CDHDR.

Hope this helps.

ashish

0 Kudos

Thanks Ashish So what field I have to use to display the plant code

Eg I want to display as ranges in plant code

Plant code from __________to __________

document from ___________ to __________

udate from ___________ to __________

username = _____________

So when I press search help it must display the plate code do you have this idea please

regards

Piroz

0 Kudos

Yes you can declare Plant select option as

select-options S_WERKS for T001W-werks.

This will take care of the search help.

ashish

0 Kudos

Hi Ashsish

Thanks for your help but when I used your code

UTIME INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

FROM CDHDR

WHERE OBJECTCLAS = 'VERKBELEG'

<b>OR OBJECTCLAS = 'BETRIEB' </b>

ORDER BY UDATE.

It is displaying error as "<b>OR" in logical condition

and

when I type for selection option

select-options : s_werks for t001w-werks it is displaying as

field " t001w-werks is unknown it is neither in one of the specified tables nor defined by DATA statement

regard

Piroz

0 Kudos

Here is the code -

SELECT OBJECTCLAS

OBJECTID

CHANGENR

USERNAME

UDATE

UTIME INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

FROM CDHDR

WHERE OBJECTCLAS = 'VERKBELEG' or

objectclas = 'BETRIEB' ORDER BY UDATE.

I am not getting an error.

Regarding select option error

add statement

<b>Tables: t001w.</b>

Please check and let me know.

ashish

0 Kudos

Hi Ashish

Excellent job it works, I did not declare the table , so how can I display the plant code in the report and seeing my above code and I want to break by report by document no.

0 Kudos

I think you have 2 reports here - one for document no and another for plant.

And i think document no report is working fine. Now you want to show Plant change document data in detail as another report, is it correct?

ashish

0 Kudos

Yes please , how can show the document changes by plant in detail as another report according to my codes above

regards

Piroz

0 Kudos

It is simple, now you do not need OR condition in CDHDR SELECT.

Add new code for getting CDHDR and CDPOS data for Plants.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

USERNAME

UDATE

UTIME INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

FROM CDHDR

WHERE OBJECTCLAS = 'BETRIEB' ORDER BY UDATE.

  • Filter data based upon Plant selection criteria.

IF NOT S_WERKS[] IS INITIAL.

DELETE IT_CDHDR WHERE NOT OBJECTID IN S_WERKS.

ENDIF.

IF IT_CDHDR[] IS NOT INITIAL.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

VALUE_NEW

VALUE_OLD

FNAME

TABNAME

TABKEY

INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS FROM CDPOS

FOR ALL ENTRIES IN IT_CDHDR

WHERE

OBJECTCLAS = IT_CDHDR-OBJECTCLAS

AND OBJECTID = IT_CDHDR-OBJECTID

AND CHANGENR = IT_CDHDR-CHANGENR.

SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.

ENDIF.

  • Add tables CDPOS DATA TO CDHDR.

DATA: INDEX TYPE i.

LOOP AT IT_CDHDR.

INDEX = SY-TABIX.

READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS

OBJECTID = IT_CDHDR-OBJECTID

CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.

IF SY-SUBRC = 0.

IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.

IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.

MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.

ENDIF.

And you can display this as second list. You can also add radio button in selection screen which will help to select report for Documents or for Plant.

ashish

0 Kudos

Hi Ashish

Thanks for your help it all works, one more question how can i display the Field name so that I want to know what changes are made for the document no

regards

Piroz

0 Kudos

Hi Ashish

How can I display field name in my above code, I want to know what field name has been changed. ie for that document no what has been changed eg 10 item credit price, valide to date from where I can fetch the field description.

regards

Piroz

0 Kudos

Hi Ashish

I am hanging for a week in this project please need some advice

I want to join vbak table with cdhdr and select

vbak.vkbur (plant) and want to show that vkbur in the internal table of it_cdhdr

so as to select only those plant belong to vkbur so how can I join base on the below coding................

REPORT ZCHGDOC

NO STANDARD PAGE HEADING LINE-SIZE 120.

  • WRITE: sy-title, 40 'Page', sy-pagno.

  • ULINE.

TABLES: CDHDR,

CDPOS,

t001w,

"VKBUR,

"VBELN,

VBAK,

VBAP.

SELECTION-SCREEN BEGIN OF BLOCK DOCUMENT WITH FRAME TITLE TEXT-701.

SELECTION-SCREEN END OF BLOCK DOCUMENT.

SELECT-OPTIONS:

V1 FOR VBAK-VKBUR,

S_WERKS for T001W-werks,

objectid for cdhdr-objectid,

udate for cdhdr-udate.

PARAMETER: USERNAME LIKE CDHDR-USERNAME.

DATA: BEGIN OF IT_VBAP OCCURS 0,

OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

OBJECTID LIKE CDHDR-OBJECTID,

VBELN LIKE VBAP-VBELN,

END OF IT_VBAP.

DATA: BEGIN OF IT_CDHDR OCCURS 0,

OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

OBJECTID LIKE CDHDR-OBJECTID,

CHANGENR LIKE CDHDR-CHANGENR,

USERNAME LIKE CDHDR-USERNAME,

UDATE LIKE CDHDR-UDATE,

UTIME LIKE CDHDR-UTIME,

FNAME LIKE CDPOS-FNAME,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

END OF IT_CDHDR.

DATA: WA LIKE LINE OF IT_CDHDR.

  • DATA: WA LIKE LINE OF IT_CDPOS.

DATA: BEGIN OF IT_CDPOS OCCURS 0,

OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

OBJECTID LIKE CDHDR-OBJECTID,

CHANGENR LIKE CDHDR-CHANGENR,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY,

FNAME LIKE CDPOS-FNAME,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

END OF IT_CDPOS.

Move-corresponding it_cdhdr to wa.

  • Move-corresponding it_cdpos to wa.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

USERNAME

UDATE

UTIME FROM CDHDR

INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR

WHERE OBJECTCLAS = 'VERKBELEG' or

objectclas = 'BETRIEB'

ORDER BY UDATE.

  • WHERE OBJECTCLAS = 'VERKBELEG'

  • OR OBJECTCLAS = 'BETRIEB' ORDER BY UDATE.

  • Filter data based upon Plant selection criteria.

IF NOT S_WERKS[] IS INITIAL.

DELETE IT_CDHDR WHERE NOT OBJECTID IN S_WERKS.

ENDIF.

IF IT_CDHDR[] IS NOT INITIAL.

SELECT OBJECTCLAS

OBJECTID

CHANGENR

VALUE_NEW

VALUE_OLD

FNAME

TABNAME

TABKEY

FROM CDPOS

INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS

FOR ALL ENTRIES IN IT_CDHDR

WHERE

OBJECTCLAS = IT_CDHDR-OBJECTCLAS

AND OBJECTID = IT_CDHDR-OBJECTID

AND CHANGENR = IT_CDHDR-CHANGENR.

"or tabname = 'VBAP'.

SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.

ENDIF.

  • Add tables CDPOS DATA TO CDHDR.

DATA: INDEX TYPE i.

LOOP AT IT_CDHDR.

INDEX = SY-TABIX.

READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS

OBJECTID = IT_CDHDR-OBJECTID

CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.

IF SY-SUBRC = 0.

IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.

IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.

MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.

ENDIF.

WRITE:/ SY-DATUM,SY-UZEIT,

50 'DOCUMENT CHANGE REPORT',

80 'Page', SY-PAGNO,

" WRITE: / SY-REPID

50 'DETAIL REPORT BY PLANT '.

SKIP.

ULINE.

.

&----


*& T O P - O F - P A G E *

&----


  • WRITE:/ 'UDATE:' ,SY-DATUM.

  • FORMAT COLOR 4 INTENSIFIED on.

  • Write: /35 ' DOCUMENT CHANGES REPORT '.

WRITE: /5 'DOCUMENT-NO'.

  • 20 'TABNAME', 30 'TEXT_CASE', 50 'FNAME'.

WRITE: /5 'DATE', 20 'FNAME', 45 'CHANGE-NO',65 'OLD-VALUE',80 'NEW-VALUE',95 'USER-NAME'.

ULINE.

LOOP AT IT_CDHDR INTO WA.

on change of wa-objectid.

Write: / wa-objectid UNDER'DOCUMENT-NO' ."color col_key.

ENDON.

  • ULINE.

" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,

write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-fname under'FNAME' NO-GAP,wa-changenr under 'CHANGE-NO',

wa-value_old under'OLD-VALUE' LEFT-JUSTIFIED NO-GAP,

wa-value_new under'NEW-VALUE' LEFT-JUSTIFIED NO-GAP ,wa-username under'USER-NAME' NO-GAP.

  • ENDON.

  • Move-corresponding it_cdhdr to wa.

*Write: / wa-objectid UNDER'DOCUMENT-NO' "color col_key.

*" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,

*write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-utime under'TIME' NO-GAP,wa-changenr under 'CHANGE-NO',

  • ltrim(wa-value_old) under'OLD-VALUE' NO-GAP,

*wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.

ENDLOOP.

ENDLOOP.

Former Member
0 Kudos

hi,

check this code

TABLES : MARC.

DATA :BEGIN OF GI_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

DISPO LIKE MARC-DISPO,

END OF GI_MARC.

DATA : CHAR TYPE I,

COUNT TYPE I,

VAR TYPE I.

DATA : BEGIN OF GI_FINAL OCCURS 2000,

MATNR LIKE MARC-MATNR,

DISPO LIKE MARC-DISPO,

USERNAME LIKE CDHDR-USERNAME,

UDATE LIKE CDHDR-UDATE,

UTIME LIKE CDHDR-UTIME,

TCODE LIKE CDHDR-TCODE,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY,

FNAME LIKE CDPOS-FNAME,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

CHANGENR LIKE CDHDR-CHANGENR,

END OF GI_FINAL.

DATA : MATNR LIKE MARC-MATNR,

DISPO LIKE MARC-DISPO,

USERNAME1 LIKE CDHDR-USERNAME,

UDATE1 LIKE CDHDR-UDATE,

UTIME LIKE CDHDR-UTIME,

TCODE LIKE CDHDR-TCODE,

CHANGENR LIKE CDHDR-CHANGENR.

DATA : GI_CDHDR LIKE CDHDR OCCURS 0 WITH HEADER LINE.

DATA : GI_CDPOS LIKE CDPOS OCCURS 0 WITH HEADER LINE.

DATA : OBJECTCLAS LIKE CDHDR-OBJECTCLAS VALUE 'MATERIAL',

OBJECTID LIKE CDHDR-OBJECTID,

USERNAME LIKE CDHDR-USERNAME VALUE 'RSS-SPE',

UDATE LIKE CDHDR-UDATE VALUE '20070101',

CHANGE_IND LIKE CDHDR-CHANGE_IND VALUE 'U'.

type-pools: slis.

data: gt_slis_fcat type slis_t_fieldcat_alv.

data: gt_fieldcat type slis_t_fieldcat_alv.

*data: gt_fieldcatall type slis_t_fieldcat_alv.

data: g_repid like sy-repid.

data: gs_layout type slis_layout_alv.

gs_layout-zebra = 'X'.

gs_layout-colwidth_optimize = 'X'.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-110.

SELECT-OPTIONS : P_DISPO FOR MARC-DISPO.

SELECT-OPTIONS : RECORDS FOR CHAR.

SELECTION-SCREEN : END OF BLOCK B1.

START-OF-SELECTION.

perform process_data.

perform f_fieldcat_init using gt_fieldcat[].

perform alv_display tables gi_final using gt_fieldcat[].

form process_data.

SELECT MATNR WERKS DISPO FROM MARC INTO TABLE GI_MARC

WHERE DISPO IN P_DISPO

AND WERKS = '1011'." Becoz we hav to chk the

  • the changes made in the material while extendin tht matrl frm 1011 to

*other plant.

IF NOT GI_MARC[] IS INITIAL.

IF NOT RECORDS-LOW IS INITIAL .

IF NOT RECORDS-HIGH IS INITIAL.

DESCRIBE TABLE GI_MARC LINES COUNT.

IF RECORDS-HIGH < COUNT.

DELETE GI_MARC FROM RECORDS-HIGH TO COUNT.

ENDIF.

IF RECORDS-LOW <> 1.

IF RECORDS-LOW <> 0.

DELETE GI_MARC FROM 1 TO RECORDS-LOW.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

LOOP AT GI_MARC.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

INPUT = GI_MARC-MATNR

IMPORTING

OUTPUT = GI_MARC-MATNR

  • EXCEPTIONS

  • LENGTH_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

OBJECTID = GI_MARC-MATNR .

*

CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'

EXPORTING

  • ARCHIVE_HANDLE = 0

DATE_OF_CHANGE = UDATE

OBJECTCLASS = OBJECTCLAS

OBJECTID = OBJECTID

  • TIME_OF_CHANGE = '000000'

USERNAME = USERNAME

  • LOCAL_TIME = ' '

  • DATE_UNTIL = '99991231'

  • TIME_UNTIL = '235959'

TABLES

I_CDHDR = GI_CDHDR

EXCEPTIONS

NO_POSITION_FOUND = 1

WRONG_ACCESS_TO_ARCHIVE = 2

TIME_ZONE_CONVERSION_ERROR = 3

OTHERS = 4

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'

EXPORTING

TEXT = 'Processing'.

IF NOT GI_CDHDR[] IS INITIAL.

LOOP AT GI_CDHDR.

MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.

MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.

MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.

MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.

MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.

MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.

VAR = 1.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

INPUT = GI_FINAL-MATNR

IMPORTING

OUTPUT = GI_FINAL-MATNR

EXCEPTIONS

LENGTH_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

ENDIF.

OBJECTID = GI_FINAL-MATNR ."to ensure that objid is in proper

*format

SELECT *

FROM CDPOS

INTO TABLE GI_CDPOS

  • PACKAGE SIZE 100

  • FOR ALL ENTRIES IN GI_cdhdr

WHERE OBJECTID = OBJECTID

AND CHANGENR = GI_CDHDR-CHANGENR

AND OBJECTCLAS = OBJECTCLAS

AND CHNGIND = CHANGE_IND." only those values will b

*takn which have been modified nd nt created

IF SY-SUBRC = 0.

LOOP AT GI_CDPOS.

MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.

MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.

MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.

MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.

MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.

MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.

MOVE GI_CDPOS-TABNAME TO GI_FINAL-TABNAME.

MOVE GI_CDPOS-TABKEY TO GI_FINAL-TABKEY.

MOVE GI_CDPOS-FNAME TO GI_FINAL-FNAME.

MOVE GI_CDPOS-VALUE_NEW TO GI_FINAL-VALUE_NEW.

MOVE GI_CDPOS-VALUE_OLD TO GI_FINAL-VALUE_OLD.

APPEND GI_FINAL.

CLEAR GI_FINAL.

  • ENDIF.

VAR = VAR + 1.

  • ENDSELECT.

ENDLOOP.

ENDIF.

ENDLOOP.

CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'

EXPORTING

TEXT = 'Processing'.

ENDIF.

ENDLOOP.

endform.

form f_fieldcat_init using lt_fieldcat type slis_t_fieldcat_alv.

data: ls_fieldcat type slis_fieldcat_alv.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-seltext_l = 'Material number'.

  • ls_fieldcat-tabname = 'GI_final'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'DISPO'.

ls_fieldcat-seltext_l = 'mrp controller'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'USERNAME'.

ls_fieldcat-seltext_l = 'Username'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'CHANGENR'.

ls_fieldcat-seltext_l = 'Change Number'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'UDATE'.

ls_fieldcat-seltext_l = 'modified date'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'UTIME'.

ls_fieldcat-seltext_l = 'MODIFIED TIME'.

append ls_fieldcat to lt_fieldcat.

  • clear ls_fieldcat.

  • ls_fieldcat-fieldname = 'UDATE'.

  • ls_fieldcat-seltext_l = 'MODIFIED DATE'.

  • append ls_fieldcat to lt_fieldcat.

*

clear ls_fieldcat.

ls_fieldcat-fieldname = 'TCODE'.

ls_fieldcat-seltext_l = 'TRANSACTION CODE'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'TABNAME'.

ls_fieldcat-seltext_l = 'TABLE NAME'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'TABKEY'.

ls_fieldcat-seltext_l = 'TABLE KEY'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'FNAME'.

ls_fieldcat-seltext_l = 'FNAME'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'FVALUE'.

ls_fieldcat-seltext_l = 'FVALUE'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'VALUE_NEW'.

ls_fieldcat-seltext_l = 'NEW VALUE'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'VALUE_OLD'.

ls_fieldcat-seltext_l = 'OLD VALUE'.

append ls_fieldcat to lt_fieldcat.

endform. " f_fieldcat_init

form alv_display tables gi_final using gt_fieldcat .

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = ' Material list '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

is_layout = gs_layout

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = gi_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform.

regards

siva