The system does not issue an error message, even though the 'Issue error message if no value found' flag was set in the attributes of a derivation step of type 'Derivation Rule' or 'Table Lookup'.
CO-PA transaction code:KEDR
[@more@]Reason and Prerequisites
An entry exists in the derivation rule table or master data table, however, the field to be transferred is blank in this entry. For example, field SPART ('Division') is to be read from table MARA and placed in the CO-PA characteristic SPART ('Division'). The access to key field MARA-MATNR occurs with the CO-PA product number from characteristic ARTNR ('Product number'). An entry exists for the read product number in table MARA, however, the division for this entry is blank. You expect the system to issue an error message which it, however, does not do.
Solution
When you activate the 'Issue error message if no value found' flag, the system only issues an error message if there is no entry with the key field of the derivation rule or the table lookup. In example above, the system would only issue an error message if no corresponding entry existed in key field MATNR for the CO-PA product number in table MARA, not, however, if an entry with a blank division existed.
Example: The characteristic value in CO-PA for ARTNR is 'PUMP'. Consequently,
1. The system issues an error message if no entry with MARA-MATNR 'PUMP' exists in table MARA.
2. The system does not issue an error message if there is an entry with MARA-MATNR 'PUMP' and if the value for MARA-SPART is ' ' in table MARA.
You can create a derivation step of type 'Enhancement' instead of a derivation rule or table lookup, so that the system also issues an error message in point 2, in which the respective table is read and an error message is issued as described in the documentation for enhancement COPA0001 or for Release 4.0 in Note 124813. In the example above, derivation exit EXIT_SAPLKEDRCOPA_001 (Include ZXKKEU11) could look as follows if 'XXXX' is replaced by the respective operating concern, so that the system issues an error message in both of the cases mentioned above:
....
tables: mara.
data: ls_ce0 like ce0XXXX.
....
case i_operating_concern.
when 'XXXX'.
e_exit_is_active = 'X'.
ls_ce0 = i_copa_item.
clear mara.
select single * from mara
where matnr = ls_ce0-artnr.
if sy-subrc = 0.
if mara-spart is initial.
e_failed = 'X'.
else.
ls_ce0-spart = mara-spart.
endif.
else.
e_failed = 'X'.
endif.
e_copa_item = ls_ce0.
endcase.
....
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/46681/viewspace-880406/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/46681/viewspace-880406/