‎2006 Oct 25 9:49 PM
Hi,
Is there any user exit available to update a Z-table before system creates a change documnent in CDHDR and CDPOS ?
Pls advise.
‎2006 Oct 26 9:07 AM
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***********
‎2006 Oct 26 9:07 AM
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***********
‎2007 Oct 23 11:37 PM
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.