18.10.11

SAP Note 28586 - Derivation rules with customer cause errors

Symptom:

The derivation (derivation of characteristics) by means of derivation rules in which the customer is used as a source field terminates with error message KE 259 although the derivation rule is maintained correctly.
In the maintainance/display of derivation structures, Transactions KE05 / KE06, the source field Customer. The report cannot be regenerated with Additional -> Regenerate or with program RKEAGEN1.

Cause and prerequisites

The data element for the customer in the field tab and derivation rule do not correspond (KUNDE_PA is compared with KUNNR).

Solution
The error is corrected in Release 2.2G and 3.0B.
The error described above can appear in all 3.0 systems until upgrade level 3.0A. However, in 2.2 systems, it appears only when the following condition is met:
Table CEST1 has data element KINDE_PA. If that is the case, the following correction is also appropriate for 2.2 systems.

You can make the following advance correction in program MKEA2F10 (FORM TRANS_TKEA2_RKEA2) (changes are indicated with <--): In 3.0 Systems:
...
...
data: lin type p, <--
fieldtab_kunden_datenelement like dd03l-rollname <--
value 'KUNDE_PA'. <--

clear: intstruk-qfeld1, intstruk-qfeld2, intstruk-qfeld3,
intstruk-zfeld1, intstruk-zfeld2, intstruk-zfeld3,
intstruk-zfeld4, intstruk-zfeld5, intstruk-zfeld6,
intstruk-zfeld7, intstruk-zfeld8, intstruk-zfeld9,
intstruk-zfeld10.

describe table int_tkea2 lines lin.
if lin = 0.
select * from tkea2 into table int_tkea2.
endif.
* loop at db_tab where rollname eq 'KUNDE_PA'. <--
* db_tab-rollname = 'KUNNR'. <--
* modify db_tab. <--
* endloop. <--
loop at db_tab <--
where rollname = 'KUNDE_PA' or rollname = 'KUNNR'. <--
fieldtab_kunden_datenelement = db_tab-rollname. <--
exit. <--
endloop. <--
loop at int_tkea2 where tabname = tabname.
if fieldtab_kunden_datenelement = 'KUNDE_PA'. <--
if int_tkea2-komabname = 'KUNNR'. <--
int_tkea2-komabname = 'KUNDE_PA'. <--
modify int_tkea2. <--
endif. < --
endif. <--
if fieldtab_kunden_datenelement = 'KUNNR'. <--
if int_tkea2-komabname = 'KUNDE_PA'. <--
int_tkea2-komabname = 'KUNNR'. <--
modify int_tkea2. <--
endif. < --
endif. <--
case int_tkea2-fieldname.
...
...
endcase.
endloop.
...
...

In 2.2 Systems:
...
...
data: lin type p, <--
fieldtab_kunden_datenelement like dd03l-rollname <--
value 'KUNDE_PA'. <--

clear: intstruk-qfeld1, intstruk-qfeld2, intstruk-qfeld3,
intstruk-zfeld1, intstruk-zfeld2, intstruk-zfeld3,
intstruk-zfeld4, intstruk-zfeld5, intstruk-zfeld6,
intstruk-zfeld7, intstruk-zfeld8, intstruk-zfeld9,
intstruk-zfeld10.

describe table int_tkea2 lines lin.
if lin = 0.
select * from tkea2 into table int_tkea2.
endif.
loop at db_tab <--
where rollname = 'KUNDE_PA' or rollname = 'KUNNR'. <--
fieldtab_kunden_datenelement = db_tab-rollname. <--
exit. <--
endloop. <--
loop at int_tkea2 where tabname = tabname.
if fieldtab_kunden_datenelement = 'KUNDE_PA'. <--
if int_tkea2-komabname = 'KUNNR'. <--
int_tkea2-komabname = 'KUNDE_PA'. <--
modify int_tkea2. <--
endif. < --
endif. <--
if fieldtab_kunden_datenelement = 'KUNNR'. <--
if int_tkea2-komabname = 'KUNDE_PA'. <--
int_tkea2-komabname = 'KUNNR'. <--
modify int_tkea2. <--
endif. < --
endif. <--
case int_tkea2-fieldname.
...
...
endcase.
endloop.
...
...

No comments:

Post a Comment