on 2024 Oct 07 9:59 AM
Hi, after upgrade to BW7.50 SP029 we are faced with the problem, that our exit-variable using initial query proposed value "#" is replaced to "000000". That leads to an error in our coding as it is not interpreted as initial value nor as "#" anymore.
Does anyone have an idea?
METHOD bi_f_ce_za_0fiscper_006.
* Deklaration
DATA:
ls_var_range LIKE LINE OF it_var_range,
ls_range TYPE rrrangesid,
lv_bool TYPE i.
* Initialisierung
CLEAR ls_var_range.
CLEAR ls_range.
* Aus dem Intervall Periode/Geschäftsjahr die Differenz der Anzahl Perioden ermitteln
READ TABLE it_var_range WITH KEY vnam = cv_bi_ma_i_o_0fiscper_001 INTO ls_var_range.
IF ls_var_range-low eq '#'
OR ls_var_range-low IS INITIAL.
lv_bool = 0.
ELSE.
lv_bool = 1.
ENDIF.
CLEAR ls_range.
ls_range-sign = 'I'.
ls_range-opt = 'EQ'.
ls_range-low = lv_bool.
APPEND ls_range TO et_range.
ENDMETHOD.
Regards,
Peter
how is cv_bi_ma_i_o_0fiscper_001 variable populated? As per my knowledge, empty value in 0FISCPER is treated as 0000000. I think its 7 zeros for YYYYMMM and not 6.
Many of the standard code changes after upgrade so it's very tough to tell why it happened. May be something to do with standard conversion exit for 0FISCPER.
if you want quick fix, you should modify your ABAP exit logic to handle "0000000" as an initial or empty value along with "#". You can update the condition to treat both "0000000" and "#" as initial values, depending on your specific scenario.
Eg
* Treat both "#" and "0000000" as initial values
IF ls_var_range-low EQ '#'
OR ls_var_range-low EQ '0000000'
OR ls_var_range-low IS INITIAL.
lv_bool = 0.
ELSE.
lv_bool = 1.
ENDIF.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
73 | |
10 | |
10 | |
7 | |
7 | |
7 | |
7 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.