Skip to Content
0
Former Member
Dec 03, 2008 at 12:51 PM

problem in the code

34 Views

Moderator message: please use an informative subject for your questions in future

hi,

I had made this code which shows changes made to the Purchase Order,but 1 problem i am facing is that when i execute this program it get perfectly on the DEV Server but when i execute it in the PRD Server it give runtime error:-

Exception condition "NOT_FOUND" raised.

I dont know why it is not executing on the PRD Server. Please provide me guidelines for solving this problem. Following is the code for this program:-

*&---------------------------------------------------------------------*
*& Report  ZNEW26
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZPO_CHANGES    no standard page heading line-size 350.

******************************************data declaration for the alv list****************************************************
TYPE-POOLS SLIS.   " FOR ALV.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
      WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

******************************************end data declaration for the alv list****************************************************

TABLES: EKPO,CDHDR,CDPOS.


DATA: BEGIN OF ITSTPO OCCURS 0,
      EBELN LIKE EKPO-EBELN,
      MATNR LIKE EKPO-MATNR,
      WERKS LIKE EKPO-WERKS,
      MAKTX LIKE MAKT-MAKTX,
      objectid like cdhdr-objectid,
      changenr like cdhdr-changenr,
      udate like cdhdr-udate,
      TCODE LIKE CDHDR-TCODE,
      USERNAME LIKE CDHDR-USERNAME,
      NEW_VALUE LIKE CDPOS-VALUE_NEW,
      OLD_VALUE LIKE CDPOS-VALUE_OLD,
      FNAME LIKE CDPOS-FNAME,
      DDTEXT LIKE DD04V-DDTEXT,
      TABNAME LIKE CDPOS-TABNAME,
      END OF ITSTPO.

DATA: E_DD04V LIKE DD04V OCCURS 0 WITH HEADER LINE.
DATA: E_DD03L LIKE DD03L OCCURS 0 WITH HEADER LINE.


data: begin of itcdhdr occurs 0,
      objectid like cdhdr-objectid,
      changenr like cdhdr-changenr,
      udate like cdhdr-udate,
      TCODE LIKE CDHDR-TCODE,
      USERNAME LIKE CDHDR-USERNAME,
      end of itcdhdr.

DATA: BEGIN OF ITCDPOS OCCURS 0,
      OBJECTID LIKE CDPOS-OBJECTID,
      CHANGENR LIKE CDPOS-CHANGENR,
      NEW_VALUE LIKE CDPOS-VALUE_NEW,
      OLD_VALUE LIKE CDPOS-VALUE_OLD,
      FNAME LIKE CDPOS-FNAME,
      TABNAME LIKE CDPOS-TABNAME,
      END OF ITCDPOS.
*****************end of all internal table declarations*************************************************


selection-screen begin of block b1 with frame title text-001.
parameters: p_werks like EKPO-werks obligatory.
*            PO    LIKE CDHDR-objectid.
select-options: date for cdhdr-udate obligatory,
                PO_NAM FOR CDHDR-objectid.
*                PO_NAM FOR EKPO-EBELN.
selection-screen end of block b1.


select objectid changenr udate TCODE USERNAME into table itcdhdr from cdhdr
      where objectclas = 'EINKBELEG' AND UDATE IN DATE AND objectid IN PO_NAM AND  TCODE <> 'ME21N' .  "and ( tcode = 'ME22N' or tcode = 'ME29N' ).

if sy-subrc <> 0.
  message 'No Record Exist' type 'I'.
  EXIT.
endif.


DELETE ADJACENT DUPLICATES FROM ITCDHDR COMPARING CHANGENR.
SELECT OBJECTID CHANGENR VALUE_NEW VALUE_OLD FNAME TABNAME FROM CDPOS INTO TABLE ITCDPOS
  FOR ALL ENTRIES IN ITCDHDR WHERE OBJECTID = ITCDHDR-OBJECTID AND CHANGENR = ITCDHDR-CHANGENR AND FNAME NOT IN ('AENDERER', 'AEDAT', 'AEUZEIT','AENDERDAT','FRGKE','FRGZU','FRGSX','PROCSTAT').

 DATA V_PO LIKE EKPO-EBELN.

 LOOP AT ITCDPOS.

  CLEAR V_PO.
  V_PO = ITCDPOS-OBJECTID.

  READ TABLE ITCDHDR WITH KEY OBJECTID = ITCDPOS-OBJECTID CHANGENR = ITCDPOS-CHANGENR.
  SELECT SINGLE A~EBELN A~MATNR WERKS MAKTX FROM EKPO AS A
                INNER JOIN MAKT AS B ON B~MATNR = A~MATNR
  INTO ITSTPO
  WHERE EBELN = V_PO AND WERKS = P_WERKS.          "AND A~EBELN = PO_NAM.

  ITSTPO-OBJECTID = ITCDPOS-OBJECTID.
  ITSTPO-CHANGENR = ITCDPOS-CHANGENR.
  ITSTPO-NEW_VALUE = ITCDPOS-NEW_VALUE.
  ITSTPO-OLD_VALUE = ITCDPOS-OLD_VALUE.
  ITSTPO-UDATE = ITCDHDR-UDATE.
  ITSTPO-TCODE = ITCDHDR-TCODE.
  ITSTPO-USERNAME = ITCDHDR-USERNAME.
  ITSTPO-FNAME = ITCDPOS-FNAME.
  ITSTPO-TABNAME = ITCDPOS-TABNAME.

    IF ITCDPOS-FNAME <> 'KEY'.
**  clear e_dd04v.
    CALL FUNCTION 'GET_FIELDNAME_TEXT_1'
      EXPORTING
       I_AS4LOCAL                = 'A'
       I_AS4VERS                 = '0000'
       I_FIELDNAME               = ITCDPOS-FNAME
       I_TABNAME                 = ITCDPOS-TABNAME
       TABLES
       E_DD03L                   = E_DD03L
       E_DD04V                   = E_DD04V
*     EXCEPTIONS
*     ERROR_IN_PARAMETERS       = 1
*     NOT_FOUND                 = 2
*     OTHERS                    = 3
      .
  ENDIF.
  IF SY-SUBRC <> 0.
*  * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*  *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  CLEAR E_DD04V-DDTEXT.
ENDIF.

  IF ITCDPOS-FNAME = 'KEY'.
    ITSTPO-DDTEXT = 'New Entry Made'.
  ELSE.
    ITSTPO-DDTEXT = E_DD04V-DDTEXT.
  ENDIF.
  CLEAR E_DD04V.
  APPEND ITSTPO.
endloop.

SORT ITSTPO BY MATNR OBJECTID CHANGENR FNAME.
DELETE ADJACENT DUPLICATES FROM ITSTPO COMPARING MATNR OBJECTID CHANGENR FNAME.
DELETE ITSTPO WHERE MATNR EQ SPACE.


PERFORM f_layout.
PERFORM f_fieldcat.
PERFORM display.

*&---------------------------------------------------------------------*
*&      Form  f_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_layout .
  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  WA_LAYOUT-NO_SUBCHOICE = 'X'.
  WA_LAYOUT-ZEBRA = 'X'.
ENDFORM.                    " f_layout
*&---------------------------------------------------------------------*
*&      Form  f_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_fieldcat .
  DATA wa_col TYPE i VALUE 1.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'PO No.'.
  wa_fieldcat-fieldname = 'EBELN'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'ITEM ID'.
  wa_fieldcat-fieldname = 'MATNR'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'DESC'.
  wa_fieldcat-fieldname = 'MAKTX'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'CHNG DAT'.
  wa_fieldcat-fieldname = 'UDATE'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'CHNG BY'.
  wa_fieldcat-fieldname = 'USERNAME'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'TCODE USED'.
  wa_fieldcat-fieldname = 'TCODE'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'NEW VALUE'.
  wa_fieldcat-fieldname = 'NEW_VALUE'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'OLD VALUE'.
  wa_fieldcat-fieldname = 'OLD_VALUE'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-col_pos = wa_col + 1.
  wa_fieldcat-seltext_l = 'CHANGED MADE TO'.
  wa_fieldcat-fieldname = 'DDTEXT'.
  wa_fieldcat-tabname = ITSTPO.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

*  wa_fieldcat-col_pos = wa_col + 1.
*  wa_fieldcat-seltext_l = 'FIELD'.
*  wa_fieldcat-fieldname = 'FNAME'.
*  wa_fieldcat-tabname = ITSTPO.
*  APPEND wa_fieldcat TO it_fieldcat.
*  CLEAR wa_fieldcat.


ENDFORM.                    " f_fieldcat
*&---------------------------------------------------------------------*
*&      Form  display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      is_layout          = wa_layout
*      I_CALLBACK_USER_COMMAND  = 'HANDLE_USER_COMMAND'
      it_fieldcat        = it_fieldcat
    TABLES
      t_outtab           = ITSTPO.

ENDFORM.                    " display

Moderator message: please surround any ABAP code in tags in future

Edited by: Matt on Dec 3, 2008 1:55 PM