Hot fix C95001 addresses the issue(s) in SAS Anti-Money Laundering 4.1 on Solaris as documented
in the Issue(s) Addressed section of the hot fix download page:
http://ftp.sas.com/techsup/download/hotfix/HF2/B02.html#C95001
This hot fix contains updates to the following software components:
SAS Anti-Money Laundering Alert Generation 4.1 (C94001)
SAS Anti-Money Laundering Investigation UI 4.1 (C93001)
1. Verify that the installation binary has execute permission. If it does not, use the chmod command to make it executable.
$> chmod 755 C95001s6.bin2. Set your $DISPLAY environment variable
export DISPLAY=<your_node_name>:03. Execute C95001s6.bin
<path_to_downloaded_file>/C95001s6.binFor example:
./C95001s6.bin
If components of this product are installed on multiple operating systems, you must download the hot fix for the appropriate operating system(s) and follow the installation instructions provided to complete the deployment of this hot fix.
See the Maintenance Installation Tool (MIT) documentation for more details on the installation of hot fixes.
For each product installed, click the link to be redirected to post-installation instructions.
SAS Anti-Money Laundering Alert Generation 4.1
SAS Anti-Money Laundering Investigation UI 4.1
SAS Anti-Money Laundering Alert Generation 4.1
Step 1: Run the required SQL code below based on your database:
For MySQL:
For Oracle:MySQL requires two sets of code to be run. Set One: Alter the FSK_ROUTING_CONSTRAINT table: ALTER TABLE AMLCTR.FSK_ROUTING_CONSTRAINT MODIFY OPERATOR_DESC CHAR(6); UPDATE AMLCTR.FSK_ROUTING_CONSTRAINT SET OPERATOR_DESC='NOT IN' WHERE OPERATOR_DESC='NOT'; Set Two: Create and populate views CREATE VIEW BANK1CORE.fsc_cash_flow_transaction_view ( account_key, account_number, branch_key, date_key, time_key, transaction_type_key, transaction_key, currency_amount, transaction_reference_number, transaction_description, security_name, deal_number, bank_name_1, role_desc_1, bank_name_2, role_desc_2, bank_name_3, role_desc_3, bank_name_4, role_desc_4, bank_name_5, role_desc_5, bank_name_6, role_desc_6, segment_id ) as SELECT CFF.account_key, ACC.account_number, CFF.branch_key, CFF.date_key, CFF.time_key, CFF.transaction_type_key, CFF.transaction_key, CFF.currency_amount, TD.transaction_reference_number, TD.transaction_description, TD.security_name, TD.deal_number, BD.BANK_NAME as bank_name_1, CFBB.Role_Desc as role_desc_1, BD2.BANK_NAME as bank_name_2, CFBB2.Role_Desc as role_desc_2, BD3.BANK_NAME as bank_name_3, CFBB3.Role_Desc as role_desc_3, BD4.BANK_NAME as bank_name_4, CFBB4.Role_Desc as role_desc_4, BD5.BANK_NAME as bank_name_5, CFBB5.Role_Desc as role_desc_5, BD6.BANK_NAME as bank_name_6, CFBB6.Role_Desc as role_desc_6, TD.segment_id FROM AMLCORE.FSC_CASH_FLOW_FACT CFF join AMLCORE.FSC_TRANSACTION_DIM TD on CFF.transaction_key = TD.transaction_key and CFF.segment_id = TD.segment_id join AMLCORE.FSC_ACCOUNT_DIM ACC ON CFF.account_key = ACC.account_key and CFF.segment_id = ACC.segment_id left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB on CFF.TRANSACTION_KEY = CFBB.TRANSACTION_KEY and CFBB.SEQUENCE_NUMBER = 1 AND CFF.segment_id = CFBB.segment_id left join AMLCORE.FSC_BANK_DIM BD on CFBB.BANK_KEY = BD.BANK_KEY and CFBB.SEGMENT_ID = BD.SEGMENT_ID left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB2 on CFF.TRANSACTION_KEY = CFBB2.TRANSACTION_KEY and CFBB2.SEQUENCE_NUMBER = 2 AND CFF.segment_id = CFBB2.segment_id left join AMLCORE.FSC_BANK_DIM BD2 on CFBB2.BANK_KEY = BD2.BANK_KEY and CFBB2.SEGMENT_ID = BD2.SEGMENT_ID left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB3 on CFF.TRANSACTION_KEY = CFBB3.TRANSACTION_KEY and CFBB3.SEQUENCE_NUMBER = 3 AND CFF.segment_id = CFBB3.segment_id left join AMLCORE.FSC_BANK_DIM BD3 on CFBB3.BANK_KEY = BD3.BANK_KEY and CFBB3.SEGMENT_ID = BD3.SEGMENT_ID left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB4 on CFF.TRANSACTION_KEY = CFBB4.TRANSACTION_KEY and CFBB4.SEQUENCE_NUMBER = 4 AND CFF.segment_id = CFBB4.segment_id left join AMLCORE.FSC_BANK_DIM BD4 on CFBB4.BANK_KEY = BD4.BANK_KEY and CFBB4.SEGMENT_ID = BD4.SEGMENT_ID left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB5 on CFF.TRANSACTION_KEY = CFBB5.TRANSACTION_KEY and CFBB5.SEQUENCE_NUMBER = 5 AND CFF.segment_id = CFBB5.segment_id left join AMLCORE.FSC_BANK_DIM BD5 on CFBB5.BANK_KEY = BD5.BANK_KEY and CFBB5.SEGMENT_ID = BD5.SEGMENT_ID left join AMLCORE.FSC_CASH_FLOW_BANK_BRIDGE CFBB6 on CFF.TRANSACTION_KEY = CFBB6.TRANSACTION_KEY and CFBB6.SEQUENCE_NUMBER = 6 AND CFF.segment_id = CFBB6.segment_id left join AMLCORE.FSC_BANK_DIM BD6 on CFBB6.BANK_KEY = BD6.BANK_KEY and CFBB6.SEGMENT_ID = BD6.SEGMENT_ID WHERE TD.segment_id = 'BANK1KCTR'; CREATE VIEW BANK1CORE.fsc_account_event_transaction_view ( account_key, account_number, branch_key, date_key, time_key, transaction_type_key, transaction_key, currency_amount, transaction_reference_number, transaction_description, security_name, deal_number, bank_name_1, role_desc_1, bank_name_2, role_desc_2, bank_name_3, role_desc_3, bank_name_4, role_desc_4, bank_name_5, role_desc_5, bank_name_6, role_desc_6, segment_id ) as SELECT AEF.account_key, ACC.account_number, AEF.branch_key, AEF.date_key, AEF.time_key, AEF.transaction_type_key, AEF.transaction_key, 0, TD.transaction_reference_number, TD.transaction_description, TD.security_name, TD.deal_number, '', '', '', '', '', '', '', '', '', '', '', '', TD.segment_id FROM AMLCORE.FSC_ACCOUNT_EVENT_FACT AEF join AMLCORE.FSC_ACCOUNT_DIM ACC ON AEF.account_key = ACC.account_key and AEF.segment_id = ACC.segment_id join AMLCORE.FSC_TRANSACTION_DIM TD on AEF.transaction_key = TD.transaction_key and AEF.segment_id = TD.segment_id WHERE TD.segment_id = 'BANK1KCTR'; CREATE VIEW BANK1CORE.fsc_account_trade_transaction_view ( account_key, account_number, branch_key, date_key, time_key, transaction_type_key, transaction_key, currency_amount, transaction_reference_number, transaction_description, security_name, deal_number, bank_name_1, role_desc_1, bank_name_2, role_desc_2, bank_name_3, role_desc_3, bank_name_4, role_desc_4, bank_name_5, role_desc_5, bank_name_6, role_desc_6, segment_id ) as SELECT ATF.account_key, ACC.account_number, ATF.branch_key, ATF.trade_date_key as date_key, ATF.execution_time_key as time_key, ATF.transaction_type_key, ATF.transaction_key, ATF.principal_amount as currency_amount, TD.transaction_reference_number, TD.transaction_description, TD.security_name, TD.deal_number, '', '', '', '', '', '', '', '', '', '', '', '', TD.segment_id FROM AMLCORE.FSC_ACCOUNT_TRADE_FACT ATF join AMLCORE.FSC_ACCOUNT_DIM ACC ON ATF.account_key = ACC.account_key and ATF.segment_id = ACC.segment_id join AMLCORE.FSC_TRANSACTION_DIM TD on ATF.transaction_key = TD.transaction_key and ATF.segment_id = TD.segment_id WHERE TD.segment_id = 'BANK1KCTR'; INSERT INTO amlctr.fsk_ui_table ( table_ui_name, table_expression_text, table_label_desc, table_data_source_code, table_search_level_code, table_active_ind ) VALUES ( 'transactionView:1','select transactionView.account_key, transactionView.account_number, transactionView.branch_key, transactionView.date_key, transactionView.time_key, transactionView.transaction_type_key, transactionView.transaction_key, transactionView.currency_amount, transactionView.transaction_reference_number, transactionView.transaction_description, transactionView.security_name, transactionView.deal_number, transactionView.bank_name_1, transactionView.role_desc_1, transactionView.bank_name_2, transactionView.role_desc_2, transactionView.bank_name_3, transactionView.role_desc_3, transactionView.bank_name_4, transactionView.role_desc_4, transactionView.bank_name_5, transactionView.role_desc_5, transactionView.bank_name_6, transactionView.role_desc_6, transactionView.segment_id from fsc_cash_flow_transaction_view transactionView', 'Transaction', 'COR', 'LIT', 'Y' ); INSERT INTO amlctr.fsk_ui_table ( table_ui_name, table_expression_text, table_label_desc, table_data_source_code, table_search_level_code, table_active_ind ) VALUES ( 'transactionView:2', 'union all select transactionView.account_key, transactionView.account_number, transactionView.branch_key, transactionView.date_key, transactionView.time_key, transactionView.transaction_type_key, transactionView.transaction_key, transactionView.currency_amount, transactionView.transaction_reference_number, transactionView.transaction_description, transactionView.security_name, transactionView.deal_number, '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', transactionView.segment_id from fsc_account_event_transaction_view transactionView', 'Transaction', 'COR', 'LIT', 'Y' ); INSERT INTO amlctr.fsk_ui_table ( table_ui_name, table_expression_text, table_label_desc, table_data_source_code, table_search_level_code, table_active_ind ) VALUES ( 'transactionView:3', 'union all select transactionView.account_key, transactionView.account_number, transactionView.branch_key, transactionView.date_key, transactionView.time_key, transactionView.transaction_type_key, transactionView.transaction_key, transactionView.currency_amount, transactionView.transaction_reference_number, transactionView.transaction_description, transactionView.security_name, transactionView.deal_number, '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', transactionView.segment_id from fsc_account_trade_transaction_view transactionView', 'Transaction', 'COR', 'LIT', 'Y' );For DB2:ALTER TABLE FSK_ROUTING_CONSTRAINT MODIFY OPERATOR_DESC CHAR(6); UPDATE FSK_ROUTING_CONSTRAINT SET OPERATOR_DESC='NOT IN' WHERE OPERATOR_DESC='NOT';For Teradata:ALTER TABLE FSK_ROUTING_CONSTRAINT ALTER OPERATOR_DESC SET DATA TYPE CHAR(6); UPDATE FSK_ROUTING_CONSTRAINT SET OPERATOR_DESC='NOT IN' WHERE OPERATOR_DESC='NOT';Create a temporary table, FSK_ROUTING_CONSTRAINT_NEW. Then:
INSERT INTO FSK_ROUTING_CONSTRAINT_NEW SELECT * FROM FSK_ROUTING_CONSTRAINT; DROP TABLE FSK_ROUTING_CONSTRAINT; RENAME TABLE FSK_ROUTING_CONSTRAINT_NEW TO FSK_ROUTING_CONSTRAINT; UPDATE FSK_ROUTING_CONSTRAINT SET OPERATOR_DESC='NOT IN' WHERE OPERATOR_DESC='NOT';
Step 2: To fully implement this hot fix, you must manually copy the following files:
SAS10008.sasBack to Post-Installation listfromsasmacr.sas7bcat
<SASROOT>/misc/antimnylndda/scenario/scenario_source/
to
<AMLBASE>/common/scenario/scenario_source/
from
<SASROOT>/cmacros/antimnylndda/
to
<AMLROOT>/custom/source/
SAS Anti-Money Laundering Investigation UI 4.1
Updates to the SAS Anti-Money Laundering Investigation UI 4.1 provided in this hot fix require that Web Applications be rebuilt and redeployed.
If this component is installed on Solaris, follow the steps below to rebuild and redeploy the web application:
Step 1: Re-build Web Application
In order for this step to execute correctly, the Metadata Server must be running.
1.1 Invoke the SAS Deployment Manager 9.2
From the SASDeploymentManager directory launch config.sh.
SAS Deployment Manager is installed in the following default location:
<SASHOME>/SASDeploymentManager/9.2
1.2 Select a language in the Choose Language box
1.3 Select Rebuild Web Applications
1.4 Select Configuration Directory or Enter the Configuration Directory and Level that needs to be updated
1.5 Specify Connection Information, including the sasadm User ID and Password
1.6 Select Anti-Money Laundering 4.1 as the Web Application to Rebuild
1.7 Verify the information on the Summary screen and select Start
1.8 Select Finish when the deployment is complete
This process will update the Anti-Money Laundering 4.1 ear in <SASCONFIGDIR>/Web/Staging.
A backup of the original ear file will be placed in the directory below:
<SASCONFIGDIR>/Web/Staging/Backup
Step 2: Re-deploy Web Applications
2.1 Re-deploy the web applications based on the instructions for the web application server you are using.
Back to Post-Installation list
This completes the deployment of hot fix C95001 on Solaris.