Keyword : Allocation
Description : When performing allocations (assessment, distribution,
periodic transfer posting) in a special period, you get
the following syntax error:
Source text ALxxyyyS: "Field "SAVE-SHARE0000" is unknown"
or "ABAP/4 packed field does not contain a correct
BCD format."
Transactions : KSW5, KSU5, KSUB, KSV5, KSVB, KEU5, GA15, GA35,
GA2B, GA4B
Program names: ALxxyyyR, ALxxyyyS, SAPMKGAL
Program error.
Conditions under which this error occurs:
1. The start period of the allocation is a special period.
2. This special period is not the first special period in the controlling area.
1. The syntax error can be avoided by always using a period interval when performing the allocation, so that the start period is the first special period.
2. You can completely eliminate the error by installing the following change:
************************************************************************
* Program: FKGA2F50
* FORM Routine: GEN-READDATA_RC ************************************************************************
FORM GEN-READDATA_RC USING
*--------------------------------
OLDTAB
FROM
TO
NORMAL_FLAG.
*--------------------------------
:
:
*...varying for save
WL = 'VARYING SSHA FROM SAVE-SHARE$1 NEXT SAVE-SHARE$2.'.
POS = FROM - RKGA2U-FROM + 1.
IF POS < 1. <-----INSERT
POS = 1. <-----INSERT
ENDIF. <-----INSERT
REPLACE '$1' WITH POS INTO WL.
ADD 1 TO POS.
REPLACE '$2' WITH POS INTO WL.
CONDENSE WL.
PERFORM APPEND-WL.
*...move
WL = 'ADD $1 TO SSHA.'.
:
:
:
************************************************************************ * Programm: FKGA2F50
* FORM-Routine: GEN-READ_RC
************************************************************************
*-------------------------------
form gen-read_rc using
*-------------------------------
index.
*-------------------------------
:
:
*.......generate oldkeys move
if index > 1.
clear old.
move space to o.
o-field = datas-field.
read table o.
if sy-subrc = 0.
old = true.
perform a_c using 0 'IF DBTYPE = DT-OLDKEYS.' 0 2 0.
if rkga2u-anzbp = nil.
*.............only normal
perform gen-readdata_rc using oldtab
rkga2u-from
rkga2u-to
'X'.
else.
*.............at first normal
if rkga2u-from <= rkga2u-anzbp. <<<<
rkga2u-from
rkga2u-anzbp
'X'.
xper_from = rkga2u-anzbp + 1. <<<<
* xper_from = rkga2u-anzbp + 1. <<<<
xper_from
rkga2u-to
space.
endif.
perform a_c using 0 'ELSE. ' -2 2 0.
endif.
endif.
*.......generate standard move
if rkga2u-anzbp = nil.
*.........only normal
perform gen-readdata_rc using space
rkga2u-from
rkga2u-to
'X'.
else.
*.........at first normal
if rkga2u-from <= rkga2u-anzbp. <<<<<<
rkga2u-from
rkga2u-anzbp
'X'.
xper_from = rkga2u-anzbp + 1. <<<<<<
* xper_from = rkga2u-anzbp + 1. <<<<<<
xper_from
rkga2u-to
space.
endif.
No comments:
Post a Comment