By default, SAS Fraud Management does not permit saving a rule using the %ACTION_ALERT macro without specifying ALERT_TYPE and QUEUE_ID.
However, if the rule code is copied to the Rules Studio from external text editor and saved in under one second, then the rule can be promoted to the Production folder and then deployed to the OnDemand Decision Engine.
If such a rule fires on a transaction, an error message similar to the following occurs:
2025-11-05T15:52:12,802 [Walk 2] WARN POST_SCORE_ACTION_FAILED cmx_tran_id=0321548963214785 smh_acct_type="CS" smh_activity_type="CA" smh_rtn_code="12" smh_reason_code="ERRR" failure_reason="java.lang.ClassCastException: com.sas.finance.fraud.engine.alert.meta.RuleInfo cannot be cast to com.sas.finance.fraud.engine.alert.meta.RuleInfo$AlertRule"
By default, SAS Fraud Management waits for one second to display the Configure Alerts window.
However, a scenario can occur where an external text editor is used to write the rule code and then copies/pastes the rule code (using the %ACTION_ALERT macro) to the SAS Fraud Management Rule Studio code editor.
If this activity completes in less than one second, then the Configure Alerts window does not appear, and the configuration of ALERT_TYPE and QUEUE_ID is skipped during the rule save action.
Configuring the parameter below launches the Configure Alert window in 1 millisecond, which reduces the chance that this issue will occur.
Update the <config_home>/Web/WebAppServer/SASServer8_1/sas_webapps/sas.finserv.frdmgmt6.1
<domain>.war/resources/sas/fscf/views/RulesPageCoding.view.js file as highlighted below:
Original:
addDelay(setEnabledForAlertConfig,oEditor,1000);
Revised:
addDelay(setEnabledForAlertConfig,oEditor,1);
If you suspect that this issue has occurred, complete these steps to check for and resolve the issue:
select rule_id, base_rule_id, rule_version_nbr, alert_type, queue_id, rule_name, rule_code, lstupdt_user, lstupdt_timestamp
from FCMCORE.fcm_rule where lower(rule_code) like '%action_alert%' and rule_state = 'Production' and (alert_type =' ' or queue_id is null); /*It provides list of Production state rules without ALERT_TYPE or QUEUE_ID */