Sales Order Changed History
Display
* * Sales Order Changed History Display * * You can execute the report by : * 1. Change Date * 2. User Name * 3. Sales Order Number * * Submitted by : SAP Basis, ABAP Programming and Other IMG Stuff * https://www.erpgreat.com * REPORT ZSDCHANGE LINE-SIZE 132 NO STANDARD PAGE HEADING LINE-COUNT 065(001) MESSAGE-ID VR. TABLES: DD04T, CDHDR, CDPOS, DD03L, DD41V, T685T, VBPA, TPART, KONVC, VBUK. DATA: BEGIN OF ICDHDR OCCURS 50. INCLUDE STRUCTURE CDHDR. DATA: END OF ICDHDR. SELECT-OPTIONS: XUDATE FOR ICDHDR-UDATE, XNAME FOR ICDHDR-USERNAME, XVBELN FOR VBUK-VBELN. SELECTION-SCREEN SKIP. SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001. PARAMETERS: SUDATE RADIOBUTTON GROUP R1, SNAME RADIOBUTTON GROUP R1, SOBID RADIOBUTTON GROUP R1. SELECTION-SCREEN END OF BLOCK BLK1. DATA: WFLAG, WCHANGENR LIKE CDHDR-CHANGENR, WUDATE LIKE CDHDR-UDATE, WNAME LIKE CDHDR-USERNAME, WVBELN LIKE VBUK-VBELN, WDEC1 TYPE P DECIMALS 3, WDEC2 TYPE P DECIMALS 3, WDEC3 TYPE P DECIMALS 3, WDEC4 TYPE P DECIMALS 3. DATA: UTEXT(16) VALUE 'has been changed', ITEXT(16) VALUE 'has been created', DTEXT(16) VALUE 'has been deleted'. DATA: BEGIN OF ICDSHW OCCURS 50. INCLUDE STRUCTURE CDSHW. DATA: END OF ICDSHW. DATA: BEGIN OF ITAB OCCURS 10. INCLUDE STRUCTURE CDSHW. DATA: UDATE LIKE CDHDR-UDATE, USERNAME LIKE CDHDR-USERNAME, CHANGENR LIKE CDHDR-CHANGENR, VBELN(10), POSNR(6), ETENR(4), INDTEXT(200), END OF ITAB. SELECT * FROM VBUK WHERE VBELN IN XVBELN. CLEAR CDHDR. CLEAR CDPOS. CDHDR-OBJECTCLAS = 'VERKBELEG'. CDHDR-OBJECTID = VBUK-VBELN. PERFORM READHEADER. PERFORM READPOS. LOOP AT ITAB. CASE ITAB-TABNAME. WHEN 'VBPA'. IF ITAB-FNAME = 'KUNNR' OR ITAB-FNAME = 'LIFNR' OR ITAB-FNAME = 'PARNR' OR ITAB-FNAME = 'PERNR' OR ITAB-FNAME IS INITIAL. MOVE ITAB-TABKEY TO VBPA. SELECT SINGLE * FROM TPART WHERE SPRAS = SY-LANGU AND PARVW = VBPA-PARVW. IF SY-SUBRC = 0. REPLACE '&' WITH TPART-VTEXT INTO ITAB-INDTEXT. ENDIF. ENDIF. WHEN 'VBAP'. IF ITAB-FNAME IS INITIAL. REPLACE '&' WITH 'Item' INTO ITAB-INDTEXT. ENDIF. WHEN 'KONVC'. MOVE ITAB-TABKEY TO KONVC. SELECT SINGLE * FROM T685T WHERE SPRAS = SY-LANGU AND KVEWE = 'A' AND KAPPL = 'V' AND KSCHL = KONVC-KSCHL. IF SY-SUBRC = 0. REPLACE '&' WITH T685T-VTEXT INTO ITAB-INDTEXT. ENDIF. ENDCASE. IF ITAB-INDTEXT(1) EQ '&'. REPLACE '&' WITH ITAB-FTEXT(40) INTO ITAB-INDTEXT. ENDIF. IF ITAB-CHNGIND = 'I'. REPLACE '%' WITH ITEXT INTO ITAB-INDTEXT. ELSEIF ITAB-CHNGIND = 'U'. REPLACE '%' WITH UTEXT INTO ITAB-INDTEXT. ELSE. REPLACE '%' WITH DTEXT INTO ITAB-INDTEXT. ENDIF. CONDENSE ITAB-INDTEXT. MODIFY ITAB. ENDLOOP. ENDSELECT. IF SUDATE = 'X'. SORT ITAB BY UDATE VBELN POSNR ETENR. ELSEIF SOBID = 'X'. SORT ITAB BY VBELN POSNR ETENR UDATE. ELSE. SORT ITAB BY USERNAME VBELN POSNR ETENR UDATE. ENDIF. LOOP AT ITAB. CLEAR WFLAG. IF SUDATE = 'X'. IF WUDATE NE ITAB-UDATE. SKIP. WRITE:/001 ITAB-UDATE, 023 ITAB-USERNAME, 037(10) ITAB-VBELN. WFLAG = 'X'. WUDATE = ITAB-UDATE. WCHANGENR = ITAB-CHANGENR. ENDIF. ELSEIF SOBID NE 'X'. IF WVBELN NE ITAB-VBELN. SKIP. WRITE:/001 ITAB-VBELN. WVBELN = ITAB-VBELN. ENDIF. ELSE. IF WNAME NE ITAB-USERNAME. SKIP. WRITE:/001 ITAB-USERNAME. WNAME = ITAB-USERNAME. ENDIF. ENDIF. IF WCHANGENR NE ITAB-CHANGENR. WRITE:/023 ITAB-USERNAME, 037(10) ITAB-VBELN. WFLAG = 'X'. WCHANGENR = ITAB-CHANGENR. ENDIF. IF WFLAG = 'X'. WRITE: 013 ITAB-CHNGIND, 049 ITAB-POSNR, 057 ITAB-ETENR, 065 ITAB-INDTEXT(60). ELSE. WRITE: /013 ITAB-CHNGIND, 049 ITAB-POSNR, 057 ITAB-ETENR, 065 ITAB-INDTEXT(60). ENDIF. WRITE:/065 ITAB-F_OLD. WRITE:/065 ITAB-F_NEW. ENDLOOP. FORM READHEADER. CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS' EXPORTING DATE_OF_CHANGE = CDHDR-UDATE OBJECTCLASS = CDHDR-OBJECTCLAS OBJECTID = CDHDR-OBJECTID TIME_OF_CHANGE = CDHDR-UTIME USERNAME = CDHDR-USERNAME TABLES I_CDHDR = ICDHDR EXCEPTIONS NO_POSITION_FOUND = 1 OTHERS = 2. CASE SY-SUBRC. WHEN '0000'. WHEN '0001'. MESSAGE S311. LEAVE. WHEN '0002'. MESSAGE S311. LEAVE. ENDCASE. ENDFORM. FORM READPOS. LOOP AT ICDHDR. CHECK ICDHDR-UDATE IN XUDATE. CHECK ICDHDR-USERNAME IN XNAME. CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' EXPORTING CHANGENUMBER = ICDHDR-CHANGENR TABLEKEY = CDPOS-TABKEY TABLENAME = CDPOS-TABNAME IMPORTING HEADER = CDHDR TABLES EDITPOS = ICDSHW EXCEPTIONS NO_POSITION_FOUND = 1 OTHERS = 2. CASE SY-SUBRC. WHEN '0000'. LOOP AT ICDSHW. CHECK ICDSHW-CHNGIND NE 'E'. CLEAR ITAB. MOVE-CORRESPONDING ICDHDR TO ITAB. MOVE-CORRESPONDING ICDSHW TO ITAB. CASE ITAB-TABNAME. WHEN 'KONVC'. MOVE ICDHDR-OBJECTID TO ITAB-VBELN. MOVE ICDSHW-TABKEY(6) TO ITAB-POSNR. WHEN OTHERS. MOVE ICDSHW-TABKEY+3(10) TO ITAB-VBELN. MOVE ICDSHW-TABKEY+13(6) TO ITAB-POSNR. MOVE ICDSHW-TABKEY+19(4) TO ITAB-ETENR. ENDCASE. MOVE '& %' TO ITAB-INDTEXT. APPEND ITAB. CLEAR ITAB. ENDLOOP. WHEN OTHERS. MESSAGE S311. LEAVE. ENDCASE. ENDLOOP. ENDFORM. TOP-OF-PAGE. WRITE:/ SY-DATUM,SY-UZEIT, 50 'SALES ORDER CHANGE HISTORY', 120 'Page', SY-PAGNO. WRITE: / SY-REPID, 60 'SALES ORDERS STATISTICS'. SKIP. ULINE. IF SUDATE = 'X'. WRITE:/001 'Change Date', 013 'Time', 023 'User Name', 037 'Sale Order', 049 'Line', 057 'Sch No', 065 'Changes'. ELSEIF SOBID = 'X'. WRITE:/001 'Sale Order', 013 'Line', 021 'Sch No', 029 'Change Date', 041 'Time', 051 'User Name', 065 'Comment'. ELSE. WRITE:/001 'User Name', 015 'Time', 025 'Change Date', 037 'Sale Order', 049 'Line', 057 'Sch No', 065 'Changes'. ENDIF. ULINE.*--- End of Program
Fast Links:
Get help for your ABAP problems
SAP Books
ABAP Programming Tips
Best regards,
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|