21%let rgf_tgt_ticket = ${globals.ticket};
24%let sas_risk_workgroup_dir = ${globals.sas_risk_workgroup_dir};
27%let cycle_id = ${context.cycle.key};
30%let analysis_run_id = ${context.analysisRun.key};
33%let trans_matrix_data_key = ${params.TRANSITIONMATRIX.key};
36%let log_level = ${params.LOGLEVEL};
39%
if &log_level gt 1 %then
41 %let log_debug =
true;
45 %let log_debug =
false;
51%include
"&sas_risk_workgroup_dir./groups/Public/SASRiskManagementCore/cycles/&cycle_id./init.sas" / lrecl = 32000 source2;
54%irm_set_logging_options();
69 %let seg_model_portfolio_key =;
70 %let seg_lvl_model_key =;
71 %let seg_lvl_model_run_key =;
72 %let seg_lvl_model_ms_name =;
73 %let seg_lvl_model_ms_version =;
74 %let seg_lvl_model_ms_workgroup =;
77 %irm_rest_get_rgf_analysis_run(host = &rgf_protocol.:
78 , server = &rgf_service.
79 , solution = &rgf_solution.
81 , tgt_ticket = %superq(rgf_tgt_ticket)
82 , filter = filter=hasObjectLinkTo(%str(%
')%upcase(&rgf_solution.)%str(%'),
'analysisData_analysisRun_out',&trans_matrix_data_key.,0)
83 , outds = analysis_run
84 , outds_params = analysis_run_params
85 , outVarTicket = ticket
86 , outSuccess = httpSuccess
87 , outResponseStatus = responseStatus
96 set analysis_run_params;
97 if parameterName eq
'SEGLEVELMODEL' then
do;
98 call symputX(
'segParmStr',parameterValue);
100 if parameterName eq
'PORTFOLIO' then
do;
101 call symputX(
'portParmStr',parameterValue);
106 local JSON = require
'risk.common.json'
107 local segParmTbl = JSON:decode(sas.symget(
'segParmStr'))
108 local modelRunKey = segParmTbl.modelRunHandle:gsub(".-|(%d+)|.*","%1")
109 local modelKey = segParmTbl.handle:gsub(".-|(%d+)|.*","%1")
110 sas.symput('seg_lvl_model_run_key',modelRunKey)
111 sas.symput('seg_lvl_model_key',modelKey)
113 local portParmTbl = JSON:decode(sas.symget('portParmStr'))
114 local portKey = portParmTbl.handle:gsub(".-|(%d+)|.*","%1")
115 sas.symput('seg_model_portfolio_key',portKey)
122 %irm_rest_get_rgf_model(host = &rgf_protocol.:
123 , server = &rgf_service.
124 , solution = &rgf_solution.
126 , tgt_ticket = %superq(rgf_tgt_ticket)
127 , key = &seg_lvl_model_key.
129 , outds_params = model_params
130 , outVarTicket = ticket
131 , outSuccess = httpSuccess
132 , outResponseStatus = responseStatus
136 call symputX('seg_lvl_model_ms_name',mipModelingSystemName);
137 call symputX('seg_lvl_model_ms_workgroup',mipModelingSystemWorkgroup);
138 call symputX('seg_lvl_model_ms_version',mipModelingSystemVersion);
144 %let httpSuccess = 0;
145 %let responseStatus = ;
147 %irm_rest_get_mip_ms_info(host = &mip_protocol.:
148 , server = &mip_service
150 , tgt_ticket = %superq(rgf_tgt_ticket)
151 , workgroup = &seg_lvl_model_ms_workgroup
152 , outds = work.tmp_mip_msinfo
153 , outVarTicket = ticket_ms
154 , outSuccess = httpSuccess
155 , outResponseStatus = responseStatus
161 set work.tmp_mip_msinfo;
163 if upcase(modelingSystemName) eq upcase("&seg_lvl_model_ms_name") and
164 upcase(modelingSystemVersion) eq upcase("&seg_lvl_model_ms_version") then
165 call symputx("tgt_ms_sk", modelingSystemId, "L");
171 %let httpSuccess = 0;
172 %let responseStatus = ;
173 %let ticket_workgroup = ;
174 %irmst_get_model_group_maps(model_group_kind = EVALUATION
176 , add_seg_lvl_ms_sk = &tgt_ms_sk
177 , out_model_group_map = work.model_group_map_dma
178 , mipurl = &mip_protocol.:
179 , tgt_ticket = %superq(rgf_tgt_ticket)
181 , host = &mip_protocol.:
182 , server = &mip_service
184 , workgroup = &seg_lvl_model_ms_workgroup
186 , outds = work._tmp_workgroups_
187 , outVarTicket = ticket_workgroup
188 , outSuccess = httpSuccess
189 , outResponseStatus = responseStatus
197 %let httpSuccess = 0;
198 %let responseStatus = ;
199 %let ticket_portfoilo_get = ;
200 %irm_rgf_retrieve_analysis_data(key = &seg_model_portfolio_key
201 , libref = &dr_libref
202 , outds = work.mod_credit_portfolio_0
203 , outds_partition_list = work.portfolio_partition_list
204 , out_type = deferred
205 , outds_dataInfo = work.portfolio_dataInfo
206 , outds_dataDef = work.portfolio_dataDef
207 , host = &rgf_protocol.:
208 , server = &rgf_service
209 , solution = &rgf_solution
211 , tgt_ticket = %superq(rgf_tgt_ticket)
212 , outVarTicket = ticket_portfoilo_get
213 , outSuccess = httpSuccess
214 , outResponseStatus = responseStatus
224 %let httpSuccess = 0;
225 %let responseStatus = ;
226 %let ticket_workgroup = ;
227 %irmst_create_port_expanded(function_package = work.rating_format
229 , in_model_group_info = work.model_group_map_dma
230 , in_portfolio = work.mod_credit_portfolio_0
231 , out_unrequired_subset =
232 , out_portfolio = work.mod_credit_portfolio
233 , where_stmt = 1 eq 1
235 , mipurl = &mip_protocol.:
236 , tgt_ticket = %superq(rgf_tgt_ticket)
237 , host = &mip_protocol.:
238 , server = &mip_service
240 , workgroup = &seg_lvl_model_ms_workgroup
242 , outds = work._tmp_workgroups_
243 , outVarTicket = ticket_workgroup
244 , outSuccess = httpSuccess
245 , outResponseStatus = responseStatus
253 %let httpSuccess = 0;
254 %let responseStatus = ;
255 %let ticket_upload = ;
259 set portfolio_dataDef;
260 call symputx("schemaName", schemaName, "L");
261 call symputx("schemaVersion", schemaVersion, "L");
264 %irm_rgf_store_analysis_data(ds_in = work.mod_credit_portfolio
266 , analysis_data_name = Credit Portfolio modified for DMA
267 , analysis_data_desc = Modified portfolio data for the base date %sysfunc(inputn(&base_dt, yymmdd10.), yymmddd10.).\nCreated in the analysis run: &analysis_run_id..
268 , base_date = &base_dt
269 , cycle_id = &cycle_id
270 , status_cd = Preliminary
271 , visibility_cd = Private
272 , analysis_run_id = &analysis_run_id.
274 , libref = &dr_libref
275 , schema_name = &schemaName.
276 , schema_version = &schemaVersion.
278 , out_exceptions = upload_exceptions
279 , out_analysis_data = upload_analysis_data
280 , out_partition_list = upload_partition_list
281 , out_data_definition = upload_data_definition
282 , out_link_instance = upload_link_instance
284 , host = &rgf_protocol.:
285 , server = &rgf_service
286 , solution = &rgf_solution
288 , tgt_ticket = %superq(rgf_tgt_ticket)
289 , outVarTicket = ticket_upload
290 , outSuccess = httpSuccess
291 , outResponseStatus = responseStatus