Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

CHANGEDOCUMENT_READ_HEADERS EXCEPTION

Former Member
0 Likes
896

Hi Guys ,

    I have a problem with this Function Module ' CHANGEDOCUMENT_READ_HEADERS ' and I am Getting Runtime Exception like No_header_found(No position Found).

 

    Actually scenario is like , Using this Function Module I need to fetch the change Header  changed values. Below is the Code used....

Here in the Below code highlighted in RED, Function Module If i dont pass Date_of_change and Time_of_change values I am able to fetch the Record using Object Class used , else I am getting Exception like No_header_found.

   DATA: T_CDHDR TYPE TABLE OF CDHDR WITH HEADER LINE,

         IT_VBAK TYPE TABLE OF VBAK,

         WA1_VBAK TYPE VBAK,

         WA2_VBAK TYPE VBAK,

         IT1_DELTA TYPE TABLE OF ZDELTA,

         WA1_DELTA TYPE ZDELTA,

         START_DATE TYPE CHAR8,

         START_TIME TYPE CHAR6 ,

         DATE_C TYPE DATS,

         TIME_C TYPE TIMS ."CDHDR-UTIME.

   SELECT MANDT FIELDNAME FIELDVALUE FROM ZDELTA INTO TABLE IT1_DELTA .

   READ TABLE IT1_DELTA INTO WA1_DELTA WITH KEY FIELDNAME = 'SOLIST_LSTRUN_START_DT'.

   START_DATE = WA1_DELTA-FIELDVALUE.

   READ TABLE IT1_DELTA INTO WA1_DELTA WITH KEY FIELDNAME = 'SOLIST_LSTRUN_START_TIME'.

   START_TIME = WA1_DELTA-FIELDVALUE.

   CONCATENATE START_DATE+0(4) START_DATE+4(2) START_DATE+6(2) INTO DATE_C.

   CONCATENATE START_TIME+0(2) START_TIME+2(2) START_TIME+4(2) INTO TIME_C.

   CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'

     EXPORTING

*     ARCHIVE_HANDLE      = 0

   DATE_OF_CHANGE     = date_c                

       OBJECTCLASS            = 'VERKBELEG'

*     OBJECTID                    = ' '

*    TIME_OF_CHANGE       = TIME_c                 

*     USERNAME                  = SY-UNAME

*     LOCAL_TIME                = ' '

*     TIME_ZONE                  = 'UTC'

*     DATE_UNTIL                 = SY-DATUM               

*     TIME_UNTIL                 = '235959'

*     NOPLUS_ASWILDCARD_INOBJID  = ' '

*     READ_CHANGEDOCU            =  ' '

     TABLES

       I_CDHDR                    = T_CDHDR

     EXCEPTIONS

       NO_POSITION_FOUND          = 1

*     WRONG_ACCESS_TO_ARCHIVE    = 2

*     TIME_ZONE_CONVERSION_ERROR = 3

*     OTHERS                     =  4

     .

   IF SY-SUBRC = 1.

  MESSAGE 'EXCEPTION CATCHED' TYPE 'I'.

   ENDIF.

   DATA : CURRENT_DATE TYPE DATS,

           CURRENT_TIME TYPE CHAR6.

   CURRENT_DATE = SY-DATUM.

   CURRENT_TIME = SY-UZEIT.

   DATA : ID TYPE CDHDR-OBJECTID,

         WA_CDHDR TYPE  CDHDR,

         W_CDHDR TYPE CDHDR,

         IT_CDHDR TYPE  TABLE OF CDHDR WITH HEADER LINE,

         CUSTOMER TYPE VBAK-KUNNR,

         CUST_PO TYPE BAPIORDERS-PURCH_NO_C. "VBAK-BSTNK.

   IT_CDHDR[] = T_CDHDR[].

   LOOP AT T_CDHDR INTO W_CDHDR.

     READ TABLE IT_CDHDR INTO  WA_CDHDR WITH KEY OBJECTID = W_CDHDR-OBJECTID.

     ID = W_CDHDR-OBJECTID.

   ENDLOOP.

   SELECT VBELN

          VKORG

          KUNNR

          BSTNK

     FROM VBAK

     INTO CORRESPONDING FIELDS OF TABLE IT_VBAK

     WHERE VBELN = ID.

   LOOP AT IT_VBAK INTO WA1_VBAK.

     READ TABLE IT_VBAK INTO WA1_VBAK WITH KEY MANDT = WA1_VBAK-MANDT

                                                     VBELN = T_CDHDR-OBJECTID.

     CUSTOMER = WA1_VBAK-KUNNR.

     CUST_PO  = WA1_VBAK-BSTNK.

     DATA S_ORDERS TYPE TABLE OF BAPIORDERS.

     CALL FUNCTION 'BAPI_SALESORDER_GETLIST'

       EXPORTING

         CUSTOMER_NUMBER             = CUSTOMER

         SALES_ORGANIZATION          = WA1_VBAK-VKORG

*     MATERIAL                    =

*     DOCUMENT_DATE               =

*     DOCUMENT_DATE_TO            =

*     PURCHASE_ORDER              =

*     TRANSACTION_GROUP           = 0

        PURCHASE_ORDER_NUMBER       = CUST_PO

*     MATERIAL_EVG                =

*   IMPORTING

*     RETURN                      =

       TABLES

         SALES_ORDERS                = S_ORDERS

               .

   ENDLOOP.

   SALES_ORDERS[] = S_ORDERS[].

   DATA : DELTA_RUN TYPE ZDELTA,

         IT_DELTA TYPE TABLE OF ZDELTA,

          WA_DELTA TYPE ZDELTA.

   WA_DELTA-FIELDNAME = 'SOLIST_LSTRUN_START_DT'.

   WA_DELTA-FIELDVALUE = CURRENT_DATE.

   APPEND WA_DELTA TO IT_DELTA.

   WA_DELTA-FIELDNAME = 'SOLIST_LSTRUN_START_TIME'.

   WA_DELTA-FIELDVALUE = CURRENT_TIME.

   APPEND WA_DELTA TO IT_DELTA.

   CLEAR WA_DELTA.

   LOOP AT IT_DELTA INTO WA_DELTA .

     UPDATE ZDELTA SET FIELDVALUE = WA_DELTA-FIELDVALUE

                             WHERE FIELDNAME = WA_DELTA-FIELDNAME .

   ENDLOOP.

What Could be the Reason Behind Exception ?

Thanks.

1 REPLY 1
Read only

Former Member
0 Likes
547

Check table entries of CDHDR for VERKBELEG object class