Application Development and Automation 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: 
Read only

User exit before writing CHANGEDOCUMENT

Former Member
0 Likes
1,134

Hi,

Is there any user exit available to update a Z-table before system creates a change documnent in CDHDR and CDPOS ?

Pls advise.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
701

Hello,

You do not have any userexit but you can write program and schedule as batch job.

you can use following FM

========================

DATA: NUMMER LIKE CDPOS-CHANGNR,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY.

DATA: BEGIN OF EDIT_FORM OCCURS 50.

INCLUDE STRUCTURE CDRED.

DATA: END OF EDIT_FORM.

CALL FUNCTION 'CHANGEDOCUMENT_READ'

EXPORTING OBJECTCLASS = 'BANF'

TABLES

EDITPOS = EDIT_FORM

EXCEPTIONS ...

********Poorna***********

2 REPLIES 2
Read only

Former Member
0 Likes
702

Hello,

You do not have any userexit but you can write program and schedule as batch job.

you can use following FM

========================

DATA: NUMMER LIKE CDPOS-CHANGNR,

TABNAME LIKE CDPOS-TABNAME,

TABKEY LIKE CDPOS-TABKEY.

DATA: BEGIN OF EDIT_FORM OCCURS 50.

INCLUDE STRUCTURE CDRED.

DATA: END OF EDIT_FORM.

CALL FUNCTION 'CHANGEDOCUMENT_READ'

EXPORTING OBJECTCLASS = 'BANF'

TABLES

EDITPOS = EDIT_FORM

EXCEPTIONS ...

********Poorna***********

Read only

0 Likes
701

Hi Poora or Experts

See below my coding I want to display the field name from cdhdr or cdpos table

so that whatever changes made to the document, It must display with the description, I am not getting idea from where it has to be taken.

REPORT ZXYZ

NO STANDARD PAGE HEADING LINE-SIZE 120.

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

  • ULINE.

TABLES: CDHDR,

CDPOS,

t001w,

"VKBUR,

"VBELN,

VBAK.

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

SELECTION-SCREEN END OF BLOCK DOCUMENT.

SELECT-OPTIONS: S_WERKS for T001W-werks,

objectid for cdhdr-objectid,

udate for cdhdr-udate.

PARAMETER: USERNAME LIKE CDHDR-USERNAME.

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,

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 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.

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.

  • AND OBJECTID = 0040000600.

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: /5 'DOCUMENT-NO'.

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

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

ULINE.

LOOP AT IT_CDHDR INTO WA.

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' NO-GAP,

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

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',

  • 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.

regards

ENDLOOP.