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