Hi All,
I have created a Zemp_hdr custom table with EMPNO as Key field & i checked "Change document " in data element. For this table i have created on Object also. When I'm trying to update data to CDHDR & CDPOS by below simple code. But changed data is not is updating in those tables. Plzz help me on this & give me any other suggestions or processor.
*&---------------------------------------------------------------------*
*& Report ZEMP_DATA *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZEMP_DATA .
tables: zemp_hdr, zemp_details.
data: lt_emphdr type table of zemp_hdr with header line.
DATA: LT_EMPDET TYPE TABLE OF ZEMP_DETAILS WITH HEADER LINE.
Data: w_newvalues type zemp_hdr,
w_oldvalues type zemp_hdr.
DATA: LV_TABIX TYPE SY-TABIX.
DATA: LV_STATUS(1).
DATA: L_OBJECTID TYPE CDHDR-OBJECTID,
L_TCODE TYPE CDHDR-TCODE,
L_PLANNED_CHANGE_NUMBER TYPE CDHDR-PLANCHNGNR,
L_UTIME TYPE CDHDR-UTIME,
L_UDATE TYPE CDHDR-UDATE,
L_USERNAME TYPE CDHDR-USERNAME,
L_CDOC_PLANNED_OR_REAL TYPE CDHDR-CHANGE_IND,
L_CDOC_UPD_OBJECT TYPE CDHDR-CHANGE_IND VALUE 'U',
L_CDOC_NO_CHANGE_POINTERS TYPE CDHDR-CHANGE_IND.
* declaration for the long text
DATA: BEGIN OF ICDTXT_ZEMP_CD OCCURS 20.
INCLUDE STRUCTURE CDTXT.
DATA: END OF ICDTXT_ZEMP_CD .
DATA: UPD_ICDTXT_ZEMP_CD TYPE C.
*TABLES: *ZEMP_HDR
* , ZEMP_HDR .
DATA: UPD_ZEMP_HDR TYPE C.
PARAMETERS: P_EMPNO LIKE ZEMP_HDR-EMPNO obligatory,
P_EMPNAM LIKE ZEMP_HDR-EMPNAME,
P_VALDFR TYPE SY-DATUM,
P_VALDTO TYPE SY-DATUM,
P_CITY LIKE ZEMP_HDR-CITY.
START-OF-SELECTION.
* HEADER TABLE
L_OBJECTID = 'ZEMP_CD'.
L_TCODE = SY-TCODE.
L_UTIME = SY-UZEIT.
L_UDATE = SY-DATUM.
L_USERNAME = SY-UNAME.
select * from zemp_hdr into table lt_emphdr
WHERE EMPNO = P_EMPNO.
IF SY-SUBRC <> 0.
W_NEWVALUES-EMPNO = P_EMPNO.
W_NEWVALUES-EMPNAME = P_EMPNAM.
W_NEWVALUES-VALFRM = P_VALDFR.
W_NEWVALUES-VALTO = P_VALDTO.
W_NEWVALUES-CITY = P_CITY.
W_NEWVALUES-CHANGE_USR = SY-UNAME.
W_NEWVALUES-CHANGE_DAT = SY-DATUM.
W_NEWVALUES-CHANGE_TIM = sy-uzeit.
APPEND W_NEWVALUES TO LT_EMPHDR.
DELETE ADJACENT DUPLICATES FROM lt_emphdr.
INSERT ZEMP_HDR FROM TABLE LT_EMPHDR.
IF sy-subrc EQ 0.
COMMIT WORK.
MESSAGE 'Document Updated Successfully' TYPE 'S'.
* UPDATE DATA TO CHANGE DOCU TABLES
LV_STATUS = 'I'.
PERFORM UPDATE_DATA USING LV_STATUS.
ENDIF.
ELSE.
W_OLDVALUES-EMPNO = P_EMPNO.
W_OLDVALUES-EMPNAME = P_EMPNAM.
W_OLDVALUES-VALFRM = P_VALDFR.
W_OLDVALUES-VALTO = P_VALDTO.
W_OLDVALUES-CITY = P_CITY.
W_OLDVALUES-CHANGE_USR = SY-UNAME.
W_OLDVALUES-CHANGE_DAT = SY-DATUM.
W_OLDVALUES-CHANGE_TIM = sy-uzeit.
APPEND W_OLDVALUES TO LT_EMPHDR.
DELETE ADJACENT DUPLICATES FROM lt_emphdr.
MODIFY ZEMP_HDR FROM TABLE LT_EMPHDR.
IF sy-subrc EQ 0.
COMMIT WORK.
MESSAGE 'Document Updated Successfully' TYPE 'S'.
* UPDATE DATA TO CHANGE DOCU TABLES
LV_STATUS = 'U'.
PERFORM UPDATE_DATA USING LV_STATUS.
ENDIF.
ENDIF.
SORT: LT_EMPHDR, lt_empdet.
LOOP AT lt_emphdr.
write: / lt_emphdr-EMPNO, lt_emphdr-EMPNAME, lt_emphdr-CHANGE_USR,
lt_emphdr-CHANGE_DAT, lt_emphdr-CHANGE_TIM.
ENDLOOP.
*DELETE ADJACENT DUPLICATES FROM lt_emphdr COMPARING empno.
*&---------------------------------------------------------------------*
*& Form UPDATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UPDATE_DATA USING P_LV_STATUS.
CALL FUNCTION 'ZEMP_CD_WRITE_DOCUMENT'
EXPORTING
OBJECTID = L_OBJECTID
TCODE = L_TCODE
UTIME = L_UTIME
UDATE = L_UDATE
USERNAME = L_USERNAME
* PLANNED_CHANGE_NUMBER = ' '
OBJECT_CHANGE_INDICATOR = 'U'
* PLANNED_OR_REAL_CHANGES = ' '
* NO_CHANGE_POINTERS = ' '
UPD_ICDTXT_ZEMP_CD = 'U'
N_ZEMP_HDR = W_NEWVALUES
O_ZEMP_HDR = W_OLDVALUES
UPD_ZEMP_HDR = 'U'
TABLES
ICDTXT_ZEMP_CD = ICDTXT_ZEMP_CD
.
ENDFORM. " UPDATE_DATA
Thanks & regards.