cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Initial value of 0FISCPER is replaced wrongly

0 Kudos
585

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

Accepted Solutions (1)

Accepted Solutions (1)

roland_szajko
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Peter

0FISCPER is of type NUMC. The initial value for NUMC is 0. Since 0FISCPER is a NUMC with a length of 7, the initial value is 0000000.

BW did not allowed the usage of # on it's own as a characteristic value, as # represents the type corresponding initial value of a characteristic. So # is only used as a placeholder/mask to display the initial values in queries.

173241-Permitted characters in BW

===================================================

The following characteristic values can never be permitted:

  • The value that consists only of the single character '#' is not permitted because the initial input is masked with '#' for variables.
  • Values starting with the character '!' are not permitted because the variable entry is deleted at the first position due to this character.
  • Values that contain characters that contain the hexadecimal values HEX00 to HEX1F.

===================================================

 

0 Kudos
Hi, we changed the code here and it works. And we will check some notes to verify if we have to redesign our coding concerning exit-variables. Thanks for your help so far. Regards, Peter

Answers (1)

Answers (1)

Savio_Dmello
Active Participant

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.

0 Kudos
Hi Savio, thanks a lot for your reply. That will be the way we go. We will change the coding. I found note 3144996 and this looks your help. It confirms my fears that a massive change in code was done and change of logic. And I found note 3144996. That will be a massive change.