The error "Required operator not found in expression: &i = &index" occurs in SAS® Fraud Management 6.1 with Hot Fix 6


In SAS® Fraud Management (SAS® Rules Studio), when writing user variable rules and authorization rules, you can use the %DECLAREARRAY macro to define an array of user variables. Then, you can use the multiple parameter %SET macro to alter the value of an element in the array.

Rule code similar to the following works in SAS Fraud Management 6.1 prior to Hot Fix 6:

%declareArray(&rule.telefon_pesel,_T_odrzanul_wn_pesel_1-

    _T_odrzanul_wn_pesel_5);

%declarearray(&rule.telefon_id,_T_odrzanul_wn_id_1 -

    _T_odrzanul_wn_id_5);

%set(&rule.telefon_id,

    %indexArray(&rule.telefon_pesel, hqo_ob_userid))=tml_xfr_acct;

However, with SAS Fraud Management 6.1 Hot Fix 6, if you run a rule test with the above code, an error similar to the following occurs:

ERROR: Required operator not found in expression: &i = &index

Workaround

To work around this issue, use an intermediary local variable as the index parameter in the %SET macro.

%declareArray(&rule.telefon_pesel,_T_odrzanul_wn_pesel_1-

    _T_odrzanul_wn_pesel_5);

%declarearray(&rule.telefon_id,_T_odrzanul_wn_id_1 -

    _T_odrzanul_wn_id_5);

&rule.i=%indexArray(&rule.telefon_pesel, hqo_ob_userid);

%set(&rule.telefon_id, &rule.i)=tml_xfr_acct;