23%macro irmst_create_rating_formats(
35 outds = work._tmp_workgroups_,
48 %irm_rest_set_mip_workgroup(host = &host,
51 workgroup = &workgroup,
52 authMethod = &authMethod,
53 tgt_ticket = %superq(tgt_ticket),
55 outVarTicket = &outVarTicket,
56 outSuccess = &outSuccess,
57 outResponseStatus = &outResponseStatus,
59 restartLUA = &restartLUA,
60 clearCache = &clearCache
66 %
do i = 1 %to %sysfunc(countw(&tm_model_sk));
69 create table work.rating_mapping_appended(
71 rating_grade varchar(32),
77 %let model_id&i = %scan(&tm_model_sk, &i);
80 url = &mipurl/rest/models/&&model_id&i,
82 tgt_ticket = %superq(tgt_ticket),
83 outVarTicket = service_ticket,
89 proc http url =
"&mipurl/rest/models/&&model_id&i?%str(&)ticket=&service_ticket"
94 headers
"Accept" =
"application/json"
95 "Content-Type" =
"application/json";
98 libname mdl_lib JSON fileref = mdl;
100 proc transpose data = mdl_lib.transitionmatrix_tostates(drop = ordinal_toStates
101 ordinal_transitionMatrix)
102 out = work.ratings_model_&&model_id&i;
109 data work.ratings_model_&&model_id&i.._2(drop = _name_
111 set work.ratings_model_&&model_id&i;
115 model_id = &&model_id&i;
116 rating_grade = upcase(col1);
117 order_idx = input(compress(_name_,
' ',
'A'),8.);
120 proc append base = work.rating_mapping_appended
121 data = work.ratings_model_&&model_id&i.._2;
125 proc sort data = work.rating_mapping_appended;
134 data work.rating_mapping_tmp(keep = rating_grade
136 set work.rating_mapping_appended;
148 proc sort data = work.rating_mapping_tmp
149 out = work.rating_mapping
158 select max(length(rating_grade))
159 into :rating_length trimmed
160 from work.rating_mapping;
166 filename numtogrd temp;
169 file numtogrd lrecl = 32767;
170 set work.rating_mapping;
171 put
'when(' rating_num +(-1)
')';
172 put 3*
' ' "return('" rating_grade +(-1)
"');";
178 filename grdtonum temp;
181 file grdtonum lrecl = 32767;
182 set work.rating_mapping;
183 put
"when('" rating_grade +(-1)
"')";
184 put 3*
' ' 'return(' rating_num +(-1)
');';
190 proc compile outlib = &function_lib..&package_name
191 label =
"Rating Formats"
192 package = &package_name;
196 function rating_num_to_grade(rating_num) $ &rating_length
197 kind=
"rating format";
206 function rating_grade_to_num(rating_grade $)
207 kind=
"rating format";
208 select(rating_grade);
215 filename numtogrd clear;
216 filename grdtonum clear;
221 %
if %upcase(&debug) eq NO %then
224 drop table work.rating_mapping_appended,
225 %
do i = 1 %to %sysfunc(countw(&tm_model_sk));
226 work.ratings_model_&&model_id&i,
227 work.ratings_model_&&model_id&i.._2,
229 work.rating_mapping_tmp,
234%mend irmst_create_rating_formats;