Change date of item number

Hello friends,
                     I am retreiving the change item number from table CDPOS from the field TABKEY , I also need to retreive the change date(When the user changes the item number) of item number. Can anyone pls tell where can I  get the change date from.

*"Table declarations...................................................
TABLES:
  EKKO,                                " Purchasing Document Header
  CDHDR,                               " Change document header
  SSCRFIELDS.                          " Fields on selection screens
*"Selection screen elements............................................
SELECT-OPTIONS:
  S_EBELN FOR EKKO-EBELN,              " Purchasing Document Number
  S_LIFNR FOR EKKO-LIFNR,              " Vendor's account number
  S_EKGRP FOR EKKO-EKGRP,              " Purchasing group
  S_BEDAT FOR EKKO-BEDAT,              " Purchasing Document Date
  S_UDATE FOR CDHDR-UDATE.             " Creation date of the change
                                       " document
*" Data declarations...................................................
Field String to hold Purchase Document Number                       *
DATA:
  BEGIN OF FS_EBELN,
    EBELN(90) TYPE C,                  " Purchase Document Number
    ERNAM     TYPE EKKO-ERNAM,         " Name of Person who Created
                                       " the Object
    LIFNR     TYPE EKKO-LIFNR,         " Vendor's account number
    EKGRP     TYPE EKKO-EKGRP,         " Purchasing group
    BEDAT     TYPE EKKO-BEDAT,         " Purchasing Document Date
  END OF FS_EBELN,
Field String to hold Purchase Document Header                       *
  BEGIN OF FS_EKKO,
    EBELN TYPE EKKO-EBELN,             " Purchasing Document Number
    ERNAM TYPE EKKO-ERNAM,             " Name of Person who Created the
                                       " Object
    LIFNR TYPE EKKO-LIFNR,             " Vendor's account number
    EKGRP TYPE EKKO-EKGRP,             " Purchasing group
    BEDAT TYPE EKKO-BEDAT,             " Purchasing Document Date
  END OF FS_EKKO,
Field String to hold Account Number and name of the Vendor          *
  BEGIN OF FS_LFA1,
    LIFNR TYPE LFA1-LIFNR,             " Account Number of Vendor
    NAME1 TYPE LFA1-NAME1,             " Name1
  END OF FS_LFA1,
Field String to hold Change date and the name of the user           *
  BEGIN OF FS_CDHDR,
    OBJECTCLAS TYPE CDHDR-OBJECTCLAS,  " Object Class
    OBJECTID   TYPE CDHDR-OBJECTID,    " Object value
    CHANGENR   TYPE CDHDR-CHANGENR,    " Document change number
    USERNAME   TYPE CDHDR-USERNAME,    " User name
    UDATE      TYPE CDHDR-UDATE,       " Creation date of the change
                                       " document
  END OF FS_CDHDR,
Field String to hold Change document items                          *
  BEGIN OF FS_CDPOS,
    OBJECTCLAS   TYPE CDPOS-OBJECTCLAS," Object class
    OBJECTID(10) TYPE C,               " Object Value
    CHANGENR     TYPE CDPOS-CHANGENR,  " Document change number
    TABNAME      TYPE CDPOS-TABNAME,   " Table Name
    FNAME        TYPE CDPOS-FNAME,     " Field Name
    VALUE_NEW    TYPE CDPOS-VALUE_NEW, " New contents of changed field
    VALUE_OLD    TYPE CDPOS-VALUE_OLD, " Old contents of changed field
  END OF FS_CDPOS,
Field String to hold Date Element Name                              *
  BEGIN OF FS_DATAELE,
    TABNAME   TYPE DD03L-TABNAME,      " Table Name
    FIELDNAME TYPE DD03L-FIELDNAME,    " Field Name
    ROLLNAME  TYPE DD03L-ROLLNAME,     " Data element (semantic domain)
  END OF FS_DATAELE,
Field String to hold Short Text of the Date Element                 *
  BEGIN OF FS_TEXT,
    ROLLNAME TYPE DD04T-ROLLNAME,      " Data element (semantic domain)
    DDTEXT   TYPE DD04T-DDTEXT,        " Short Text Describing R/3
                                       " Repository Objects
  END OF FS_TEXT,
Field String to hold data to be displayed on the ALV grid           *
  BEGIN OF FS_OUTTAB,
    EBELN      TYPE EKKO-EBELN,        " Purchasing Document Number
    ERNAM      TYPE EKKO-ERNAM,        " Name of Person who Created the
                                       " Object
    LIFNR      TYPE EKKO-LIFNR,        " Vendor's account number
    EKGRP      TYPE EKKO-EKGRP,        " Purchasing group
    BEDAT      TYPE EKKO-BEDAT,        " Purchasing Document Date
    WERKS      TYPE LFA1-WERKS,        " Plant
    NAME1      TYPE LFA1-NAME1,        " Name1
    USERNAME   TYPE CDHDR-USERNAME,    " User name
    UDATE      TYPE CDHDR-UDATE,       " Creation date of the change
                                       " document
    DDTEXT     TYPE DD04T-DDTEXT,      " Short Text Describing R/3
                                       " Repository Objects
    VALUE_NEW  TYPE CDPOS-VALUE_NEW,   " New contents of changed field
    VALUE_OLD  TYPE CDPOS-VALUE_OLD,   " Old contents of changed field
  END OF FS_OUTTAB,
Internal table to hold Purchase Document Number                     *
  T_EBELN LIKE STANDARD TABLE
            OF FS_EBELN,
Internal table to hold Purchase Document Header                     *
T_EKKO LIKE STANDARD TABLE
          OF FS_EKKO,
Temp Internal table to hold Purchase Document Header                *
T_EKKO_TEMP LIKE STANDARD TABLE
               OF FS_EKKO,
Internal table to hold Account number and Name of the Vendor        *
  T_LFA1 LIKE STANDARD TABLE
           OF FS_LFA1,
Internal Table to hold Change date and the name of the user         *
  T_CDHDR LIKE STANDARD TABLE
            OF FS_CDHDR,
Internal Table to hold Change document items                        *
  T_CDPOS LIKE STANDARD TABLE
            OF FS_CDPOS,
Temp. Internal Table to hold Change document items                  *
  T_CDPOS_TEMP LIKE STANDARD TABLE
                 OF FS_CDPOS,
Internal Table to hold Data Element Name                            *
  T_DATAELE LIKE STANDARD TABLE
              OF FS_DATAELE,
Temp. Internal Table to hold Data Element Name                      *
  T_DATAELE_TEMP LIKE STANDARD TABLE
                   OF FS_DATAELE,
Internal Table to hold Short Text of the Date Element               *
  T_TEXT LIKE STANDARD TABLE
           OF FS_TEXT,
Internal Table to hold data to be displayed on the ALV grid         *
  T_OUTTAB LIKE STANDARD TABLE
             OF FS_OUTTAB.
               C L A S S   D E F I N I T I O N                      *
  CLASS LCL_EVENT_HANDLER  DEFINITION DEFERRED.
*" Data declarations...................................................
Work variables                                                      *
  DATA:
    W_EBELN       TYPE EKKO-EBELN,     " Purchasing Document Number
    W_LIFNR       TYPE EKKO-LIFNR,     " Vendor's account number
    W_EKGRP       TYPE EKKO-EKGRP,     " Purchasing group
    W_VALUE       TYPE EKKO-EBELN,     " Reflected Value
    W_SPACE       VALUE ' ',           " Space
    W_FLAG        TYPE I,              " Flag Variable
    W_VARIANT     TYPE DISVARIANT,     " Variant
*--- ALV Grid
    W_GRID        TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
    W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
*--- Field catalog table
    T_FIELDCAT    TYPE LVC_T_FCAT.
                      AT SELECTION-SCREEN EVENT                     *
AT SELECTION-SCREEN ON S_EBELN.
Subroutine to validate Purchase Document Number.
  PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
Subroutine to validate Vendor Number.
  PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
Subroutine to validate Purchase Group.
  PERFORM VALIDATE_PUR_GRP.
                      START-OF-SELECTION EVENT                      *
START-OF-SELECTION.
Subroutine to select all Purchase orders.
  PERFORM SELECT_PO.
  CHECK W_FLAG EQ 0.
Subroutine to select Object values.
    PERFORM SELECT_OBJ_ID.
  CHECK W_FLAG EQ 0.
Subroutine to select Changed values.
    PERFORM SELECT_CHANGED_VALUE.
  CHECK W_FLAG EQ 0.
Subroutine to Select Purchase Orders.
    PERFORM SELECT_PUR_DOC.
Subroutine to select Vendor Details.
    PERFORM SELECT_VENDOR.
Subroutine to select Text for the Changed values.
    PERFORM DESCRIPTION.
                      END-OF-SELECTION EVENT                        *
END-OF-SELECTION.
  IF NOT T_EKKO IS INITIAL.
Subroutine to populate the Output Table.
    PERFORM FILL_OUTTAB.
Subroutine to build Field Catalog.
    PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
    CALL SCREEN 100.
  ENDIF.                               " IF NOT T_EKKO...
CLASS LCL_EVENT_HANDLER DEFINITION
Defining Class which handles events
CLASS LCL_EVENT_HANDLER DEFINITION .
  PUBLIC SECTION .
    METHODS:
        HANDLE_HOTSPOT_CLICK
             FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
                       IMPORTING E_ROW_ID E_COLUMN_ID.
ENDCLASS.                              " LCL_EVENT_HANDLER DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
Implementing the Class which can handle events
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
  METHOD HANDLE_HOTSPOT_CLICK .
Subroutine to get the HotSpot Cell information.
    PERFORM GET_CELL_INFO.
    SET PARAMETER ID 'BES' FIELD W_VALUE.
    CALL TRANSACTION 'ME23N'.
  ENDMETHOD.                           " HANDLE_HOTSPOT_CLICK
ENDCLASS.                              " LCL_EVENT_HANDLER
*&      Module  STATUS_0100  OUTPUT
      PBO Event
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'OOPS'.
  SET TITLEBAR 'TIT'.
Subroutine to fill the Variant Structure
  PERFORM FILL_VARIANT.
  IF W_GRID IS INITIAL.
    CREATE OBJECT W_GRID
      EXPORTING
   I_SHELLSTYLE      = 0
   I_LIFETIME        =
        I_PARENT       = CL_GUI_CONTAINER=>SCREEN0
   I_APPL_EVENTS     =
   I_PARENTDBG       =
   I_APPLOGPARENT    =
   I_GRAPHICSPARENT  =
   I_NAME            =
   I_FCAT_COMPLETE   = SPACE
      EXCEPTIONS
        ERROR_CNTL_CREATE = 1
        ERROR_CNTL_INIT   = 2
        ERROR_CNTL_LINK   = 3
        ERROR_DP_CREATE   = 4
        OTHERS            = 5.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.                             " IF SY-SUBRC <> 0
    CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              =
        IS_VARIANT                    = W_VARIANT
        I_SAVE                        = 'A'
       I_DEFAULT                     = 'X'
       IS_LAYOUT                     =
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
       IR_SALV_ADAPTER               =
      CHANGING
        IT_OUTTAB                     = T_OUTTAB
        IT_FIELDCATALOG               = T_FIELDCAT
       IT_SORT                       =
       IT_FILTER                     =
      EXCEPTIONS
        INVALID_PARAMETER_COMBINATION = 1
        PROGRAM_ERROR                 = 2
        TOO_MANY_LINES                = 3
        OTHERS                        = 4
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.                             " IF SY-SUBRC <> 0.
  ENDIF.                               " IF W_GRID IS INITIAL
  CREATE OBJECT W_EVENT_CLICK.
  SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
ENDMODULE.                             " STATUS_0100  OUTPUT
*&      Module  USER_COMMAND_0100  INPUT
      PAI Event
MODULE USER_COMMAND_0100 INPUT.
  CASE SY-UCOMM.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                             " USER_COMMAND_0100  INPUT
*&      Form  PREPARE_FIELD_CATALOG
      Subroutine to build the Field catalog
      <--P_T_FIELDCAT  Field Catalog Table
FORM PREPARE_FIELD_CATALOG  CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
  DATA LS_FCAT TYPE LVC_S_FCAT.
Purchasing group...
  LS_FCAT-FIELDNAME = 'EKGRP'.
  LS_FCAT-REF_TABLE = 'EKKO'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Purchasing Document Number...
  LS_FCAT-FIELDNAME = 'EBELN'.
  LS_FCAT-REF_TABLE = 'EKKO' .
  LS_FCAT-EMPHASIZE = 'C411'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  LS_FCAT-HOTSPOT   = 'X'.
  APPEND LS_FCAT TO PT_FIELDCAT .
  CLEAR LS_FCAT .
Name of Person who Created the Object...
  LS_FCAT-FIELDNAME = 'ERNAM'.
  LS_FCAT-REF_TABLE = 'EKKO'.
  LS_FCAT-OUTPUTLEN = '15' .
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Purchasing Document Date...
  LS_FCAT-FIELDNAME = 'BEDAT'.
  LS_FCAT-REF_TABLE = 'EKKO'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Vendor's account number...
  LS_FCAT-FIELDNAME = 'LIFNR'.
  LS_FCAT-REF_TABLE = 'EKKO'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Account Number of Vendor or Creditor...
  LS_FCAT-FIELDNAME = 'NAME1'.
  LS_FCAT-REF_TABLE = 'LFA1'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  LS_FCAT-COLTEXT   = 'Vendor Name'(001).
  LS_FCAT-SELTEXT   = 'Vendor Name'(001).
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Creation date of the change document...
  LS_FCAT-FIELDNAME = 'UDATE'.
  LS_FCAT-REF_TABLE = 'CDHDR'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  LS_FCAT-COLTEXT   = 'Change Date'(002).
  LS_FCAT-SELTEXT   = 'Change Date'(002).
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
User name of the person responsible in change document...
  LS_FCAT-FIELDNAME = 'USERNAME'.
  LS_FCAT-REF_TABLE = 'CDHDR'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '10'.
  LS_FCAT-COLTEXT   = 'Modified by'(003).
  LS_FCAT-SELTEXT   = 'Modified by'(003).
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Short Text Describing R/3 Repository Objects...
  LS_FCAT-FIELDNAME = 'DDTEXT'.
  LS_FCAT-REF_TABLE = 'DD04T'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '15'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
Old contents of changed field...
  LS_FCAT-FIELDNAME = 'VALUE_OLD'.
  LS_FCAT-REF_TABLE = 'CDPOS'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '12'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
New contents of changed field...
  LS_FCAT-FIELDNAME = 'VALUE_NEW'.
  LS_FCAT-REF_TABLE = 'CDPOS'.
  LS_FCAT-INTTYPE   = 'C'.
  LS_FCAT-OUTPUTLEN = '12'.
  APPEND LS_FCAT TO PT_FIELDCAT.
  CLEAR LS_FCAT.
ENDFORM.                               " PREPARE_FIELD_CATALOG
*& Form  SELECT_PO
Subroutine to select all the Purchase Orders
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PO .
   SELECT EBELN                        " Purchasing Document Number
          ERNAM                        " Name of Person who Created
                                       " the Object
          LIFNR                        " Vendor's account number
          EKGRP                        " Purchasing group
          BEDAT                        " Purchasing Document Date
     FROM EKKO
  PACKAGE SIZE 10000
APPENDING TABLE T_EBELN
    WHERE EBELN IN S_EBELN
      AND BEDAT IN S_BEDAT.
   ENDSELECT.
IF SY-SUBRC NE 0.
   W_FLAG = 1.
   MESSAGE S401(M8).
ENDIF.                                " IF SY-SUBRC NE 0
ENDFORM.                               " SELECT_PO
*&  Form  SELECT_OBJ_ID
  Subroutine to select Object ID
  There are no interface parameters to be passed to this subroutine.
FORM SELECT_OBJ_ID .
IF NOT T_EBELN IS INITIAL.
    SELECT OBJECTCLAS                  " Object Class
           OBJECTID                    " Object value
           CHANGENR                    " Document change number
           USERNAME                    " User name
           UDATE                       " Creation date
      FROM CDHDR
      INTO TABLE T_CDHDR
   FOR ALL ENTRIES IN T_EBELN
     WHERE OBJECTID EQ T_EBELN-EBELN
       AND UDATE IN S_UDATE
       AND TCODE IN ('ME21N','ME22N','ME23N').
   ENDSELECT.
   IF SY-SUBRC NE 0.
     W_FLAG = 1.
     MESSAGE S833(M8) WITH 'Header Not Found'(031).
   ENDIF.                              " IF SY-SUBRC NE 0.
ENDIF.                                " IF NOT T_EBELN IS INITIAL
ENDFORM.                               " SELECT_OBJ_ID
*&  Form  SELECT_CHANGED_VALUE
  Subroutine to select Changed Values
  There are no interface parameters to be passed to this subroutine.
FORM SELECT_CHANGED_VALUE .
IF NOT T_CDHDR IS INITIAL.
    SELECT OBJECTCLAS                  " Object class
           OBJECTID                    " Object value
           CHANGENR                    " Document change number
           TABNAME                     " Table Name
           FNAME                       " Field Name
           VALUE_NEW                   " New contents of changed field
           VALUE_OLD                   " Old contents of changed field
      FROM CDPOS
   PACKAGE SIZE 10000
APPENDING TABLE T_CDPOS
   FOR ALL ENTRIES IN T_CDHDR
     WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
       AND OBJECTID   EQ T_CDHDR-OBJECTID
       AND CHANGENR   EQ T_CDHDR-CHANGENR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
      W_FLAG = 1.
      MESSAGE S833(M8) WITH 'Item Not Found'(032).
    ENDIF.                             " IF SY-SUBRC NE 0.
ENDIF.                               " IF NOT T_CDHDR IS INITIAL
  T_CDPOS_TEMP[] = T_CDPOS[].
ENDFORM.                               " SELECT_CHANGED_VALUE
*&   Form  SELECT_PUR_DOC
   Subroutine to select Purchase Order Details
   There are no interface parameters to be passed to this subroutine.
FORM SELECT_PUR_DOC .
IF NOT T_CDPOS IS INITIAL.
    SORT T_EBELN BY EBELN.
    LOOP AT T_CDPOS INTO FS_CDPOS.
      READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
                                      FS_CDPOS-OBJECTID BINARY SEARCH.
      IF SY-SUBRC NE 0.
        DELETE TABLE T_EBELN FROM FS_EBELN.
      ENDIF.                           " IF SY-SUBRC NE 0.
    ENDLOOP.                           " LOOP AT T_CDPOS...
    LOOP AT T_EBELN INTO FS_EBELN.
      MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
      MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
      MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
      MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
      MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
      APPEND FS_EKKO TO T_EKKO.
    ENDLOOP.                           " LOOP AT T_EBELN...
    T_EKKO_TEMP[] = T_EKKO[].
ENDIF.                               " IF NOT T_CDPOS IS INITIAL
ENDFORM.                               " SELECT_PUR_DOC
*&  Form  SELECT_VENDOR
  Subroutine to select Vendor details
  There are no interface parameters to be passed to this subroutine.
FORM SELECT_VENDOR .
  IF NOT T_EKKO IS INITIAL.
    SORT T_EKKO_TEMP BY LIFNR.
    DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
    SELECT LIFNR                       " Account Number of Vendor or
                                       " Creditor
           NAME1                       " Name 1
      FROM LFA1
      INTO TABLE T_LFA1
   FOR ALL ENTRIES IN T_EKKO_TEMP
     WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
   IF SY-SUBRC NE 0.
     MESSAGE S002(M8) WITH 'Master Details'(033).
   ENDIF.                              " IF SY-SUBRC NE 0.
  ENDIF.                               " IF NOT T_EKKO IS INITIAL
ENDFORM.                               " SELECT_VENDOR
*&  Form  DESCRIPTION
  Subroutine to get the description
  There are no interface parameters to be passed to this subroutine.
FORM DESCRIPTION .
IF NOT T_CDPOS IS INITIAL.
    SORT T_CDPOS_TEMP BY TABNAME FNAME.
    DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
    SELECT TABNAME                     " Table Name
           FIELDNAME                   " Field Name
           ROLLNAME                    " Data element
      FROM DD03L
      INTO TABLE T_DATAELE
   FOR ALL ENTRIES IN T_CDPOS_TEMP
     WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
       AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
    IF NOT T_DATAELE IS INITIAL.
    T_DATAELE_TEMP[] = T_DATAELE[].
    SORT T_DATAELE_TEMP BY ROLLNAME.
    DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
      SELECT ROLLNAME                  " Data element
             DDTEXT                    " Short Text Describing R/3
                                       " Repository Objects
        FROM DD04T
        INTO TABLE T_TEXT
     FOR ALL ENTRIES IN T_DATAELE_TEMP
       WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
         AND DDLANGUAGE EQ SY-LANGU.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.                           " IF SY-SUBRC NE 0.
    ENDIF.                             " IF NOT T_DATAELE IS INITIAL.
ENDIF.                               " IF NOT T_CDPOS IS INITIAL.
ENDFORM.                               " DESCRIPTION
*&  Form  FILL_OUTTAB
  Subroutine to populate the Outtab
  There are no interface parameters to be passed to this subroutine.
FORM FILL_OUTTAB .
  SORT T_CDHDR   BY OBJECTCLAS OBJECTID CHANGENR.
  SORT T_EKKO    BY EBELN.
  SORT T_LFA1    BY LIFNR.
  SORT T_DATAELE BY TABNAME FIELDNAME.
  SORT T_TEXT    BY ROLLNAME.
  LOOP AT T_CDPOS INTO FS_CDPOS.
    READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
                                   OBJECTCLAS = FS_CDPOS-OBJECTCLAS
                                   OBJECTID = FS_CDPOS-OBJECTID
                                   CHANGENR = FS_CDPOS-CHANGENR
                                   BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
        MOVE FS_CDHDR-UDATE    TO FS_OUTTAB-UDATE.
        READ TABLE T_EKKO INTO FS_EKKO WITH KEY
                                       EBELN = FS_CDHDR-OBJECTID
                                       BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
            MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
            MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
            MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
            MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
            READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
                                           LIFNR = FS_EKKO-LIFNR
                                           BINARY SEARCH.
              IF SY-SUBRC EQ 0.
                MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
              ENDIF.                   " IF SY-SUBRC EQ 0.
          ENDIF.                       " IF SY-SUBRC EQ 0.
      ENDIF.                           " IF SY-SUBRC EQ 0.
    MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
    MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
    READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
                                         TABNAME = FS_CDPOS-TABNAME
                                         FIELDNAME = FS_CDPOS-FNAME
                                         BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        READ TABLE T_TEXT INTO FS_TEXT WITH KEY
                                       ROLLNAME = FS_DATAELE-ROLLNAME
                                       BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
          ENDIF.                       " IF SY-SUBRC EQ 0.
      ENDIF.                           " IF SY-SUBRC EQ 0.
    APPEND FS_OUTTAB TO T_OUTTAB.
    CLEAR FS_OUTTAB.
  ENDLOOP.
ENDFORM.                               " FILL_OUTTAB
*&   Form  GET_CELL_INFO
   Subroutine to get the Cell Information
-->  W_VALUE   Holds the value of Hotspot clicked
FORM GET_CELL_INFO .
  CALL METHOD W_GRID->GET_CURRENT_CELL
    IMPORTING
     E_ROW     =
      E_VALUE   = W_VALUE
     E_COL     =
     ES_ROW_ID =
     ES_COL_ID =
     ES_ROW_NO =
ENDFORM.                               " GET_CELL_INFO
*&   Form  VALIDATE_PD_NUM
   Subroutine to validate Purchase Document Number
   There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PD_NUM .
  IF NOT S_EBELN[] IS INITIAL.
    SELECT EBELN                       " Purchase Document Number
      FROM EKKO
      INTO W_EBELN
     UP TO 1 ROWS
     WHERE EBELN IN S_EBELN.
    ENDSELECT.
    IF SY-SUBRC NE 0.
      CLEAR SSCRFIELDS-UCOMM.
      MESSAGE E717(M8).
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_EBELN[]...
ENDFORM.                               " VALIDATE_PD_NUM
*&   Form  VALIDATE_VEN_NUM
   Subroutine to validate Vendor Number
   There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_VEN_NUM .
  IF NOT S_LIFNR[] IS INITIAL.
    SELECT LIFNR                       " Vendor Number
      FROM LFA1
      INTO W_LIFNR
     UP TO 1 ROWS
     WHERE LIFNR IN S_LIFNR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
      CLEAR SSCRFIELDS-UCOMM.
      MESSAGE E002(M8) WITH W_SPACE.
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_LIFNR[]...
ENDFORM.                               " VALIDATE_VEN_NUM
*&   Form  VALIDATE_PUR_GRP
   Subroutine to validate the Purchase Group
   There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PUR_GRP .
  IF NOT S_EKGRP[] IS INITIAL.
    SELECT EKGRP                       " Purchase Group
      FROM T024
      INTO W_EKGRP
     UP TO 1 ROWS
     WHERE EKGRP IN S_EKGRP.
    ENDSELECT.
    IF SY-SUBRC NE 0.
      CLEAR SSCRFIELDS-UCOMM.
      MESSAGE E622(M8) WITH W_SPACE.
    ENDIF.                             " IF SY-SUBRC NE 0
  ENDIF.                               " IF NOT S_EKFRP[]...
ENDFORM.                               " VALIDATE_PUR_GRP
*& Form  FILL_VARIANT
Subroutine to fill the Variant Structure
There are no interface parameters to be passed to this subroutine
FORM FILL_VARIANT .
Filling the Variant structure
  W_VARIANT-REPORT = SY-REPID.
  W_VARIANT-USERNAME = SY-UNAME.
ENDFORM.                               " FILL_VARIANT
Check the above Program. You have related data from <b>CDPOS, CDHDR.</b>
Regards,
Pavan

Similar Messages

  • Change purchase requisition item number

    Hi,
    I want to copy an existing line item in the PR but, also I want to assign it the item number. Right now this field is display only for existing line items.
    Example:
    I have one line item with item number 10. Item number can not be changed (display only). Then I select the line item and click on "copy item" button.
    The new line item is created but, the item number can not be changed (default is 20).
    I looked for some fields in field status group but this field is not available for PR's.
    How can I change the item number for new copied items?
    CD.

    hello
    No u can not change the item serial no while coping or any time, as its standred functionality of sap
    reward if usefull

  • Change data type from number(11,6) to number (11,8)

    I have a table, which has a million records...I have to change data type of some of the columns from number (11,6) to number (11,8).
    I thought of taking the backup of the table , truncating the original table, change the data type and then insert data back.
    Is it a safe option considering so many records ?

    the first number is precision and the second is scale:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14196/schema002.htm#sthref472
    so yes, 11,6 can hold larger numbers than 11,8
    create table foobar (two number(5,2),
                         three number(5,3))
    insert into foobar values (123.45,12.345); 
    --works fine
    insert into foobar values (123.45,123.45);
    --gives error ORA-01438: value larger than specified precision allowed for this column

  • How to change data in item table in sales order in  UI

    Hi Experts ,
    i have 5 products line items in my item table in UI in sales order and i want to change the status of third line item on the basis of some condition .
    please guide me how to do it .
    thnx in advance

    Hi Abhinav,
    You can assign a status profile to the item category of Item 3. Then set the condition depending on the new status profile.
    Hope this helps..
    Regards,
    Shwetha

  • How to fetch last changed date for Header in me22n?

    Hi Experts,
    I need to create a report for PO, where I have created one screen tab in Header level(customer data), therefore I need to fetch last changed date for header , I must mention that I do not want last changed date for item level, only for header last changed date is required.
    Kindly assist me on this.
    Thanx
    Shireen

    Read table CDHDR (object "EINKBELEG") and CDPOS (look for table name EKKO), keep the last CDHDR record with "EKKO" data actually changed.
    Regards,
    Raymond

  • Copy Inventory Master Data to another Item Number

    For the new database setup, I would like to copy from one Item Master Data (all tab details) to another Item Number to save time. Then just edit few fields only. How can I do it?

    Hi Lily,
    If there is provision of changing the item codes then you can try the import from Excel option also. As changing the item codes in an excel list will be much easier than opening each master data and changing the codes.
    Try this-
    1. Go to the test database where you create the test items.
    2. Open the item master data in the find mode and open the search list.
    3. With the f=Form Settings just make those columns visible which you want to import.
    for ex in a DB i have some items, I wnt to import the to other, only the item code, item descrption and the manufactures. then i open the search list and only make these columns visible.
    4. Now export this list to excel
    5. Now change the iem codes of the desired in the excel format.
    5. Save it as a  txt file and import through the "Import From Excel Option"
    Administration> Data Import/Export> Data Import> Import from Excel
    Regards,
    Raj

  • How to Check Creation/Change data for PO Service Line item

    Hi, I was wondering what field(s) from what table(s) I would have to check if I wanted a report to look for the creation or chnaged date of a specific service item in a PO?
    Currently it is using the EKPO-AEDAT field to check if a PO line item has been changed, but I would like to narrow it down to just some service line items instead of capturing all the service lines in a recently changed PO line item.
    Thank you very much in advance for the advice!

    Hi Rashid, thanks for the advice, but it doesn't really solve my problem.
    What I want to know is if there is a field where the date of a service item was created in a PO line item is stored, so that an ABAP report can be written to retrieve newly created service items from POs.

  • Sales Order creation/ change date for the items

    I have a unique scenario and i need to get a Report for this
    A sales order is created for 4 line items.
    Out of these , for 2 line items a delivery is created. I need the sales order creation date and time  for these 2 items in a custom report
    Now the other 2 items go in to some kind of block- Now these are released by going in the sales order VA02 and after releasing the delivery is created. Again for these two items , i need the sales order change date as after a user goes and changes the sales order to remove the block only then delivery is created for these two items
    Also another scenario is the 2 line items go for back order and when we get stock  at tht time system confirms the stock and then the delivery is created for these. So also for this when this change occured i need to get the date for these 2 line items
    Can any one please suggest how to get this data  from the scenarios?
    I dont want to get the date when the delivery is created as i can get tht from the LIKP table. I need the sales order create and change dates for these.

    You may be aware, any changes to a document will be recorded in CDHDR (for header changes) and CDPOS (for item changes).  You can explore these two tables.
    thanks
    G. Lakshmipathi

  • Purchasing document item change date

    Hi GUrus,
    Could some one please explain me what is purchasing document item change date. while checking item changes for one PO i am getting this. it is showing one old value and one new value. only i wanted to know where is that date in side a PO.
    Thanks
    Sha

    Hello ,
    When you go to item level changes , sap shows the change history for that particular line items .
    So it will show all the values which is been changed . In terms of date , the old date is the date at which the line item must have been creaated or changed and the new date is the last change date by the user .
    For e.g .if the line item is changed multiple times , then it will show with respect to each date the change history . For better viewing and understanding you can sort the changes by date & find out what was the last change details .
    Hope its clear .
    Lawrence Fernandes

  • Change Date for Order Item Partner Changes

    When I make a change to a partner on an Order Item the Change Date VBAP-EDATU is not populated.  can anyone recommend a way to have this field filled for all changes to any fields on an Order (header and Item)?

    It can be done by WF, Why you need a warning message?
    Anyhow check badi
    PT_GEN_REQ or PT_ABS_REQ,

  • Change DATA at SAVE for ITEM

    Hi all.
    I must modify a date when SAVE an item (date ACTUAL_FINISH).
    I have implemented the interface /RPM/IF_EX_ITEM_API, but ther isn't methods for modifiy the datas of item. You have others BADI to suggest to make this?
    Thanks!
    Vanessa

    Yes, I have watched and it don't change the ITEM areas.
    But I have resolved the problem in this way.
    I have opened a enhancement in class RPMCL_ITEM_T_API, method UPDATE_ITEM_ATTRIBUTES and have varied the date.
    Thanks of all!
    Vanessa

  • Line item number change

    i am creating delivery w/r to order, where once of my line item (line item-100 in order) is missing in delivery. and the item (line item-110 in order has taken the place of line item 100). i want to copy the same line item number from order to delivery, so if some item is missing then i can find it out line,, in this case line item 100 is missing in delivery but due to the fact that line item 110 as taken the place as 100 in delivery i am not able to find.
    plz guide as how to maintain, the same line item number from order to delivery to billing

    Hi,
    You can maintain these settings in Copy Controls from Delivery to Order (VTLA), IN header Details, you have a Tab Control Data, in which you can check "Copy Item Number", this will copy the item number from the preceding document to the next document.
    Try to replicate the same in your QAS and do update the same if it is helpful
    Regards
    Vamsi Javaji.

  • RPM: Change DATA at SAVE for ITEM

    Hi all.
    I must modify a date when SAVE an item (date ACTUAL_FINISH).
    I have implemented the interface /RPM/IF_EX_ITEM_API, but ther isn't methods for modifiy the datas of item. You have others BADI to suggest to make this?
    Thanks!
    Vanessa

    Yes, I have watched and it don't change the ITEM areas.
    But I have resolved the problem in this way.
    I have opened a enhancement in class RPMCL_ITEM_T_API, method UPDATE_ITEM_ATTRIBUTES and have varied the date.
    Thanks of all!
    Vanessa

  • Sales Order Item Change Date and delta flag

    is there a field for Sales Order Item Change date in MC11VAOITM?
    Also is there a flag that tell if a record is a delta or not once it is extracted to BW?

    You may be aware, any changes to a document will be recorded in CDHDR (for header changes) and CDPOS (for item changes).  You can explore these two tables.
    thanks
    G. Lakshmipathi

  • How to unlock sales order number after changing its line item statuses.

    hi all,
            my requirement is i am changing the status of the double
           clicked sales order which is showing in ALV grid display
           before that i am locking that sales order using FM
           CALL FUNCTION 'ENQUEUE_EVVBAKE' and for
           changing the status i am using FM
            CALL FUNCTION 'STATUS_CHANGE_EXTERN'
            which doesnt have commit statement inside this FM so
           i have explictly written this commit statement if this FM
           gives SY-SUBRC = 0 but with this statement it unlock my
           sales order because of the commit functionality.
    also this FM is in loop for all line items for that sales order
    please help me with that!!!!

    Hi,
    I have created delivery against sales order.
    While picking (during delivery PGI), I selected two batches to suffice the delivery qty. Please refer the example quoted below.
    Sales order (SO1) - Material (Mat1) - qty (15 ea)
    Delivery against sales order (Del1) - batch split: batch1 - 10 ea
                                                                         batch2 - 5 ea
    In table LIPS: when I enter delivery number as "Del1" and execute, I get 2 records:
       del no.     Item No.      Material   Qty       Batch no       Sales Order no     Sales Order Item no
    1. DEL1       10              Mat1        10 ea    batch1          SO1                    10
    2. DEL1       20              Mat1         5 ea     batch2         ______                 ____
    Thus in the 2nd record, the Sales order no.(LIPS-VGBEL) and sales order item no. (LIPS-VGPOS) does not get updated.
    I have to develop a report to display the Sales Order number and sales order line item number for each batch of the Delivery for the same item number. Please guide me to know how I can get the same.
    Hope this clarifies the issue faced.
    Regards,
    Ankush

Maybe you are looking for