This is a customized ABAP report for mass Purchase Order history display instead of checking one a time.
* * Mass display or print Purchase Order History * * You can request report by : * 1. Change date * 2. User Name * 3. Purchase Order Number * 4. Vendor Code REPORT ZPOCHANGE LINE-SIZE 132 NO STANDARD PAGE HEADING LINE-COUNT 065(001) MESSAGE-ID VR. TABLES: DD04T, CDHDR, CDPOS, DD03L, DD41V, T685T, VBPA, TPART, KONVC, EKKO. SELECT-OPTIONS: XUDATE FOR CDHDR-UDATE, XNAME FOR CDHDR-USERNAME, XEBELN FOR EKKO-EBELN, XLIFNR FOR EKKO-LIFNR. SELECTION-SCREEN SKIP. * TEXT-001 - Sorting Sequence 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. DATA: INDTEXT(60) TYPE C. DATA: BEGIN OF ICDHDR OCCURS 50. INCLUDE STRUCTURE CDHDR. DATA: END OF ICDHDR. DATA: BEGIN OF ICDSHW OCCURS 50. INCLUDE STRUCTURE CDSHW. DATA: END OF ICDSHW. DATA: BEGIN OF EKKEY, EBELN LIKE EKET-EBELN, EBELP LIKE EKET-EBELP, ETENR LIKE EKET-ETENR, END OF EKKEY. DATA: BEGIN OF ITAB OCCURS 50, BEGIN OF EKKEY, EBELN LIKE EKET-EBELN, EBELP LIKE EKET-EBELP, ETENR LIKE EKET-ETENR, END OF EKKEY, CHANGENR LIKE CDHDR-CHANGENR, UDATE LIKE CDHDR-UDATE, UTIME LIKE CDHDR-UTIME, USERNAME LIKE CDHDR-USERNAME, CHNGIND LIKE CDSHW-CHNGIND, FTEXT LIKE CDSHW-FTEXT, OUTLEN LIKE CDSHW-OUTLEN, F_OLD LIKE CDSHW-F_OLD, F_NEW LIKE CDSHW-F_NEW, END OF ITAB. DATA: OLD_OBJECTID LIKE CDHDR-OBJECTID. FIELD-SYMBOLS: <F_OLD>, <F_NEW>. SELECT * FROM EKKO WHERE EBELN IN XEBELN AND LIFNR IN XLIFNR. CLEAR CDHDR. CLEAR CDPOS. CDHDR-OBJECTCLAS = 'EINKBELEG'. CDHDR-OBJECTID = EKKO-EBELN. PERFORM GETCHGDOCS. ENDSELECT. IF SUDATE = 'X'. SORT ITAB BY UDATE EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR. ELSEIF SNAME = 'X'. SORT ITAB BY USERNAME EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR. ELSE. SORT ITAB BY EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR. ENDIF. LOOP AT ITAB. CLEAR: INDTEXT, EKKEY. CASE ITAB-CHNGIND. WHEN 'U'. INDTEXT(50) = ITAB-FTEXT. INDTEXT+51 = TEXT-020. CONDENSE INDTEXT. WHEN 'D'. INDTEXT = TEXT-021. WHEN 'E'. INDTEXT(5) = ITAB-FTEXT. INDTEXT+51 = TEXT-021. CONDENSE INDTEXT. WHEN 'I'. INDTEXT = TEXT-022. ENDCASE. RESERVE 4 LINES. IF WCHANGENR NE ITAB-CHANGENR. WCHANGENR = ITAB-CHANGENR. EKKEY = ITAB-EKKEY. WRITE:/ ITAB-UDATE UNDER 'Change Date', ITAB-UTIME UNDER 'Time', ITAB-USERNAME UNDER 'User Name', ITAB-EKKEY-EBELN UNDER 'PO No', ITAB-EKKEY-EBELP UNDER 'Item', ITAB-EKKEY-ETENR UNDER 'Sch No', INDTEXT UNDER 'Changes'. ELSEIF ITAB-EKKEY NE EKKEY. WRITE:/ ITAB-EKKEY-EBELP UNDER 'Item', ITAB-EKKEY-ETENR UNDER 'Sch No', INDTEXT UNDER 'Changes'. ENDIF. CASE ITAB-CHNGIND. WHEN 'U'. ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>. ASSIGN ITAB-F_NEW(ITAB-OUTLEN) TO <F_NEW>. WRITE: / TEXT-023 UNDER 'Changes', <F_OLD>. WRITE: / TEXT-024 UNDER 'Changes', <F_NEW>. WHEN 'E'. ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>. WRITE: TEXT-023 UNDER 'Changes', <F_OLD>. ENDCASE. SKIP. ENDLOOP. TOP-OF-PAGE. WRITE:/ SY-DATUM,SY-UZEIT, 50 'P U R C H A S E O R D E R H I S T O R Y', 120 'Page', SY-PAGNO. WRITE: / SY-REPID, 60 'Purchase Orders Changes'. SKIP. ULINE. IF SUDATE = 'X'. WRITE:/001 'Change Date', 014 'Time', 024 'User Name', 038 'PO No', 050 'Item', 057 'Sch No', 065 'Changes'. ELSEIF SOBID = 'X'. WRITE:/001 'PO No', 013 'Item', 020 'Sch No', 028 'Change Date', 041 'Time', 051 'User Name', 065 'Changes'. ELSE. WRITE:/001 'User Name', 015 'Change Date', 028 'Time', 038 'PO No', 050 'Item', 057 'Sch No', 065 'Changes'. ENDIF. ULINE. FORM GETCHGDOCS. 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. CHECK SY-SUBRC EQ 0. DELETE ICDHDR WHERE CHANGE_IND EQ 'I'. CHECK NOT ICDHDR[] IS INITIAL. LOOP AT ICDHDR. CHECK ICDHDR-UDATE IN XUDATE. CHECK ICDHDR-USERNAME IN XNAME. CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' EXPORTING CHANGENUMBER = ICDHDR-CHANGENR IMPORTING HEADER = CDHDR TABLES EDITPOS = ICDSHW EXCEPTIONS NO_POSITION_FOUND = 1 OTHERS = 2. CHECK SY-SUBRC EQ 0. LOOP AT ICDSHW. CHECK ICDSHW-TEXT_CASE EQ SPACE. MOVE-CORRESPONDING ICDSHW TO ITAB. MOVE-CORRESPONDING ICDHDR TO ITAB. MOVE ICDSHW-TABKEY+3 TO ITAB-EKKEY. APPEND ITAB. ENDLOOP. ENDLOOP. ENDFORM. * * END OF PROGRAM
Serkan AKKAVAK Computer Engineer ABAP Developer & SAP S/4 HANA Logistics Consultant Contact : serkurumsal@yandex.com
Social Plugin