SAP note 532914:Derivation of chars: No error message, although flag is set

zhujianfu發表於2006-11-28

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章