6%let rgf_tgt_ticket = ${globals.ticket};
9%let sas_risk_workgroup_dir = ${globals.sas_risk_workgroup_dir};
12%let cycle_id = ${context.cycle.key};
15%let analysis_run_id = ${context.analysisRun.key};
18%let config_set_id = ${params.CONFIGSETID};
20%let attribution_analysis_key = ${params.ATTRIBUTIONTEMPLATE};
27%let curr_result_key = ${params.CURRENTRESULT.key};
30 %let attrib_curr_analysis_run_id = ${params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0]};
32 %let credit_model_run_key = ${params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0].nav(
"modelRun_analysisRun|RMC")[0].key};
34 %let portfolio_key = ${function:findRunParameter(params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"PORTFOLIO")};
36 %let counterparty_key = ${function:findRunParameter(params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"CREDITMODEL",
"COUNTERPARTY")};
38 %let modelIn_dataMap_key = ${function:findRunParameter(params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"MODELINPUTMAP")};
40 %let modelOut_dataMap_key = ${function:findRunParameter(params.CURRENTRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"MODELOUTPUTMAP")};
42 %let prev_fr_htm_data_key = ${context.cycle.nav(
"cycle_analysisData_prev|RMC").filter(
"eq(resultsCategoryCd,'FR_HTM')")[0]};
50%let prev_result_key = ${params.PREVIOUSRESULT.key};
53 %let attrib_prev_analysis_run_id = ${params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0]};
55 %let prev_credit_model_run_key = ${params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0].nav(
"modelRun_analysisRun|RMC")[0].key};
57 %let prev_portfolio_key = ${function:findRunParameter(params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"PORTFOLIO")};
59 %let prev_counterparty_key = ${function:findRunParameter(params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"CREDITMODEL",
"COUNTERPARTY")};
61 %let prev_modelIn_dataMap_key = ${function:findRunParameter(params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"MODELINPUTMAP")};
63 %let prev_modelOut_dataMap_key = ${function:findRunParameter(params.PREVIOUSRESULT.nav(
"analysisData_analysisRun_out|RMC")[0],
"MODELOUTPUTMAP")};
65 %let prev2_fr_htm_data_key = ${params.PREVIOUSRESULT.nav(
"analysisData_cycle|RMC")[0].nav(
"cycle_analysisData_prev|RMC").filter(
"eq(resultsCategoryCd,'FR_HTM')")[0]};
68%let out_analysis_data_name = ${params.OUTANALYSISDATANAME};
69%let out_analysis_data_desc = ${params.OUTANALYSISDATADESC};
72%let attribution_n_partitions = ${params.NPARALLELRUNS};
75%let keep_mip_cube_flg = ${params.KEEPMIPCUBE};
78%let lasr_load_method = ${params.LASRLOADMETHOD};
81%let stage_attribution_method = ${params.STAGEATTRIBUTIONMETHOD};
84%let log_level = ${params.LOGLEVEL};
87%let max_wait = ${params.MAXWAIT};
92%include
"&sas_risk_workgroup_dir./groups/Public/SASRiskManagementCore/cycles/&cycle_id./init.sas" / lrecl = 32000 source2;
95%irm_set_logging_options();
99%let jobflow_category = Analytics;
100%let jobflow_type = %lowcase(irm&solutionId._attribution_analysis);
101%let instance_date = %sysfunc(date(), yymmddp10.);
102%let instance_time = %sysfunc(prxchange(s/(\d+):(\d+):(\d+)/$1h$2m$3s/i, -1, %sysfunc(time(), tod8.)));
103%let instanceName = Attribution Analysis &instance_date._&instance_time.;
104%let instanceDesc = Attribution Analysis;
107%let reload_lasr_flg = %irmc_process_lasr_load_method(&lasr_load_method.);
115 config_name =
"RMC_FA_ID"; config_value =
"&rmc_fa_id."; output;
116 config_name =
"CYCLE_ID"; config_value =
"&cycle_id."; output;
117 config_name =
"ANALYSIS_RUN_ID"; config_value =
"&analysis_run_id."; output;
118 config_name =
"ANALYSIS_TYPE"; config_value =
"FR_HTM"; output;
119 config_name =
"ATTRIB_CURR_ANALYSIS_RUN_ID"; config_value =
"&attrib_curr_analysis_run_id."; output;
120 config_name =
"ATTRIB_PREV_ANALYSIS_RUN_ID"; config_value =
"&attrib_prev_analysis_run_id."; output;
121 config_name =
"MAX_WAIT"; config_value =
"&max_wait."; output;
122 config_name =
"LOG_LEVEL"; config_value =
"&log_level."; output;
123 config_name =
"RELOAD_LASR_FLG"; config_value =
"&reload_lasr_flg."; output;
124 config_name =
"TGT_TICKET"; config_value =
"&rgf_tgt_ticket."; output;
128data work.credit_risk_config;
133 config_name =
"ATTRIBUTION_ANALYSIS_KEY"; config_value =
"&attribution_analysis_key."; output;
134 config_name =
"CURR_RESULT_KEY"; config_value =
"&curr_result_key."; output;
135 config_name =
"CREDIT_MODEL_RUN_KEY"; config_value =
"&credit_model_run_key."; output;
136 config_name =
"PORTFOLIO_KEY"; config_value =
"&portfolio_key."; output;
137 config_name =
"COUNTERPARTY_KEY"; config_value =
"&counterparty_key."; output;
138 config_name =
"MODELIN_DATAMAP_KEY"; config_value =
"&modelIn_dataMap_key."; output;
139 config_name =
"MODELOUT_DATAMAP_KEY"; config_value =
"&modelOut_dataMap_key."; output;
140 config_name =
"PREV_FR_HTM_DATA"; config_value =
"&prev_fr_htm_data_key."; output;
142 config_name =
"PREV_RESULT_KEY"; config_value =
"&prev_result_key."; output;
143 config_name =
"PREV_CREDIT_MODEL_RUN_KEY"; config_value =
"&prev_credit_model_run_key."; output;
144 config_name =
"PREV_PORTFOLIO_KEY"; config_value =
"&prev_portfolio_key."; output;
145 config_name =
"PREV_COUNTERPARTY_KEY"; config_value =
"&prev_counterparty_key."; output;
146 config_name =
"PREV_MODELIN_DATAMAP_KEY"; config_value =
"&prev_modelIn_dataMap_key."; output;
147 config_name =
"PREV_MODELOUT_DATAMAP_KEY"; config_value =
"&prev_modelOut_dataMap_key."; output;
148 config_name =
"PREV2_FR_HTM_DATA"; config_value =
"&prev2_fr_htm_data_key."; output;
149 config_name =
"KEEP_MIP_CUBE_FLG"; config_value =
"&keep_mip_cube_flg."; output;
150 config_name =
"ATTRIBUTION_N_PARTITIONS"; config_value =
"&attribution_n_partitions."; output;
151 config_name =
"OUT_ANALYSIS_DATA_NAME"; config_value =
"&out_analysis_data_name."; output;
152 config_name =
"OUT_ANALYSIS_DATA_DESC"; config_value =
"&out_analysis_data_desc."; output;
153 config_name =
"STAGE_ATTRIBUTION_METHOD"; config_value =
"&stage_attribution_method."; output;
156data work.attribution_scenario_map;
158 from_scenario_id $32.
165%let jobflow_status = Unknown;
167%irm_rest_create_jobflow_instance(instance_name = &instanceName.
168 , description = &instanceDesc.
169 , entityId = &entity_id.
170 , entityRoleKey = &entity_role_key.
171 , category = &jobflow_category.
172 , jobflowFile = &jobflow_type.
173 , baseDate = &irm_base_dt.
174 , configSetId = &config_set_id.
175 , federatedAreaID = &irm_fa_id.
176 , sourceFederatedAreaId = &irm_fa_id.
177 , src_param_tables = work.run_option work.credit_risk_config
178 , tgt_param_tables = &solutionLibrefPrefix._CFG.RUN_OPTION &solutionLibrefPrefix._CFG.CREDIT_RISK_CONFIG
179 , src_upload_tables = work.attribution_scenario_map
180 , tgt_upload_tables = &solutionLibrefPrefix._CFG.ATTRIBUTION_SCENARIO_MAP
183 , maxWait = &max_wait.
184 , host = &irm_protocol.:
186 , tgt_ticket = &rgf_tgt_ticket.
187 , outvar = instanceKey
188 , outVarStatus = jobflow_status
191%
if(&jobflow_status. = Successful) %then %
do;
193 %irmc_refresh_lasr_schema_view(lasr_lib = &lasr_libref.
194 , mart_table_name = &solutionId._CREDIT_RISK_DETAIL
195 , rls_table_name = &solutionId._CREDIT_RISK_DETAIL_RLS
196 , meta_repository = &meta_repository.
197 , lasr_library_name = &lasr_library_name.
198 , lasr_meta_folder = &lasr_meta_folder.
203%irmc_update_ctrl_table(cycle_id = &cycle_id.
204 , analysis_run_id = &analysis_run_id.
205 , dr_libref = &dr_libref.
207 , entry_id = &instanceKey.
208 , entry_name = &instanceName.