function module to get the change doc items

Question:
Hi,
I have searched for a function module : CHANGEDOCUMENT_READ_POSITIONS
my problem is that I wld like to read all detail items in PO if there would have some changes made in the delivery address per line then it shd be printed in the header level.
where can I get the change number in function module CHANGEDOCUMENT_READ_POSITIONS
can anyone drop a solution for this. sorry this kind of urgent.
Thanks a lot!
Jing
Answer:
Use FM CHANGEDOCUMENT_READ_HEADERS for this. I'am just pasting a part of code from my Prog. But this code is for Deliveries. You have to replace OBJECTCLAS and other Variables as per your Own Requirement.
SELECT CDHDR~OBJECTID                                                   
       CDHDR~CHANGENR                                                   
       CDHDR~USERNAME                                                   
       CDHDR~UDATE                                                       
       INTO TABLE LTAB                                                   
       FROM CDHDR                                                       
       WHERE CDHDR~OBJECTCLAS = 'LIEFERUNG'                             
       AND CDHDR~OBJECTID IN GF_VBELN                                   
       AND   CDHDR~USERNAME IN GF_USER                                   
       AND CDHDR~UDATE IN GF_AEDAT.                                     
IF SY-SUBRC <> 0.                                                       
      MESSAGE I485.                    "Keine Änderungen protokolliert. 
      LEAVE LIST-PROCESSING.           "Eingabebild bleibt aktiv         
ENDIF.                                                                   
DELETE LTAB WHERE NOT OBJECTID CP '0080*'.                               
IF NOT DEL IS INITIAL.                                                   
PERFORM FILTER_FOR_DELETED.                                             
ENDIF.                                                                   
LOOP AT LTAB.                                                           
REFRESH GT_CDHDR.                                                       
  CLEAR CDHDR.                                                           
  CDHDR-OBJECTCLAS = 'LIEFERUNG'.                                       
  CDHDR-OBJECTID = LTAB-OBJECTID.                                       
  CDHDR-USERNAME = LTAB-USERNAME.                                       
CDHDR-UDATE = LTAB-UDATE.                                       
 PERFORM CDHDR_FUELLEN.                                         
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'                     
     EXPORTING                                                 
          DATE_OF_CHANGE             = CDHDR-UDATE             
          OBJECTCLASS                = CDHDR-OBJECTCLAS         
          OBJECTID                   = CDHDR-OBJECTID           
          TIME_OF_CHANGE             = '000000'                 
          USERNAME                   = CDHDR-USERNAME           
     TABLES                                                     
          I_CDHDR                    = GT_CDHDR                 
     EXCEPTIONS                                                 
          NO_POSITION_FOUND          = 1                       
          WRONG_ACCESS_TO_ARCHIVE    = 2                       
          TIME_ZONE_CONVERSION_ERROR = 3                       
          OTHERS                     = 4.                       
   PERFORM AENDERUNGEN_POS.                                     
 ENDLOOP.                                                       
.....etc
FORM FILTER_FOR_DELETED.                                                   
DATA : BEGIN OF FILTAB OCCURS 0,                                           
       CHANGENR LIKE CDPOS-CHANGENR,                                       
       END OF FILTAB.                                                       
SELECT CDPOS~CHANGENR                                                       
       INTO TABLE FILTAB                                                   
       FROM CDPOS                                                           
       FOR ALL ENTRIES IN LTAB                                             
       WHERE CDPOS~OBJECTCLAS = 'LIEFERUNG'                                 
       AND CDPOS~OBJECTID = LTAB-OBJECTID                                   
       AND CDPOS~CHANGENR =  LTAB-CHANGENR                                 
       AND CDPOS~TABNAME = 'LIKP'                                           
       AND CDPOS~FNAME = 'KEY'                                             
       AND CDPOS~CHNGIND = 'D'.                                             
IF SY-SUBRC = 0.                                                           
LOOP AT LTAB.                                                               
READ TABLE FILTAB WITH KEY CHANGENR = LTAB-CHANGENR.                       
CHECK NOT SY-SUBRC = 0.                                                     
DELETE LTAB.                                                               
ENDLOOP.                                                                   
ELSE.                                                                       
FREE LTAB.                                                                 
      MESSAGE I485.                    "Keine Änderungen protokolliert.     
      LEAVE LIST-PROCESSING.           "Eingabebild bleibt aktiv           
ENDIF.                                                                     
ENDFORM.
.....etc
FORM AENDERUNGEN_POS.                                               
  LOOP AT GT_CDHDR.                                                 
    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'                   
         EXPORTING                                                   
              CHANGENUMBER            = GT_CDHDR-CHANGENR           
         IMPORTING                                                   
              HEADER                  = CDHDR                       
         TABLES                                                     
              EDITPOS                 = GT_CDSHW                     
         EXCEPTIONS                                                 
              NO_POSITION_FOUND       = 1                           
              WRONG_ACCESS_TO_ARCHIVE = 2                           
              OTHERS                  = 3.                           
    CASE SY-SUBRC.                                                   
      WHEN '0'.                                                     
IF NOT DEL IS INITIAL.                                               
DELETE GT_CDSHW WHERE NOT ( TABNAME = 'LIKP' AND CHNGIND = 'D' ).   
ENDIF.                                                               
*       ----- Ausgabetabelle füllen                                 
        LOOP AT GT_CDSHW.                                           
        CLEAR GT_AUSGABE.                                             
        MOVE-CORRESPONDING GT_CDHDR TO GT_AUSGABE.                     
        MOVE-CORRESPONDING GT_CDSHW TO GT_AUSGABE.                     
        MOVE GT_CDSHW-TABKEY+3(10) TO GT_AUSGABE-VBELN.               
        MOVE GT_CDSHW-TABKEY+13(6) TO GT_AUSGABE-POSNR.               
        ----- Auswertung nur für evtl. eingegebene Positionsnummer     
        IF NOT ( GF_POSNR IS INITIAL ).                               
          CHECK GF_POSNR EQ GT_AUSGABE-POSNR.                         
        ENDIF.                                                         
        APPEND GT_AUSGABE.                                             
      ENDLOOP.                                                         
    WHEN '1'.                                                         
       MESSAGE I485.                  "Keine Änderungen protokolliert.
       LEAVE LIST-PROCESSING.         "Eingabebild bleibt aktiv       
    WHEN OTHERS.                                                       
      MESSAGE I486. "Der Änderungsbeleg konnte nicht ermittelt werden.
       LEAVE LIST-PROCESSING.         "Eingabebild bleibt aktiv       
  ENDCASE.                                                             
ENDLOOP.                                                               
----- Ausstieg, wenn Ausgabetabelle leer                               
DESCRIBE TABLE GT_AUSGABE LINES GF_ZEILENANZ_AUSGABE.                 
ENFORM.
KRK

More Articles:

Output tabulator?
LSMW - Sales orders - possible with standard object?
Bapi BAPI_PRODORDCONF_CREATE_HDR updation problem?
How Many Main Windows can be there in SAP SCRIPT?
Submit transporting a internal table (ABAP)?
Header Text in VF01 Transaction?