5options mprint mprintnest symbolgen source2;
13%let irm_fa_id = %sysget(irm_fa_id);
16%let config_set_id = %sysget(config_set_id);
19%let metaserver = %sysget(metaserver);
20%let sasAdminUser = %sysget(sasAdminUser);
21%let sasAdminPassword = %sysget(sasAdminPassword);
24%let sasUser = %sysget(sasUser);
25%let sasPassword = %sysget(sasPassword);
29 metaserver =
"&metaserver."
30 metauser =
"&sasAdminUser."
31 metapass =
"&sasAdminPassword."
35%let dr_libref = RQSST;
38%let irm_fa_path = %sysfunc(metadata_appprop(IRM Mid-Tier Server, com.sas.solutions.risk.irm.fa.&irm_fa_id.));
39%let irm_appdata_path = %sysfunc(metadata_appprop(IRM Mid-Tier Server, com.sas.solutions.risk.irm.server.appdata));
42%let fa_name = %scan(%bquote(&irm_fa_path.), -1, /\);
43%let source_path = %sysfunc(prxchange(s/[\\\/]&fa_name.$
46option insert = (sasautos = (
"&irm_fa_path./source/sas/ucmacros"));
50%irm_setup(source_path = &source_path.
55%let rmc_fa_id = rmc.*;
58%irm_get_swc_property(swc_name = IRM Mid-Tier Server
59 , property = com.sas.solutions.risk.irm.fa.(?!readonly.)&rmc_fa_id.
61 , outvar = swc_property_value
62 , out_ds = irm_federated_areas
63 , pattern_match_flg = Y
67proc sort data = irm_federated_areas;
68 by descending property_name;
75 set irm_federated_areas;
76 if _n_=1 then call symputx(
"rmc_fa_path", property_value,
"L");
80%let content_version = %irm_get_content_version(irm_fa_path = &irm_fa_path.);
83%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/run_option.sas" / lrecl = 32000;
88 call symputx(config_name, config_value,
"L");
94%irm_get_service_info(SWCName = Risk Gov Frwk Mid-Tier
95 , DeployedComponentName = Registered SAS Application
100 call symputx(
"rgf_protocol", protocol,
"G");
101 call symputx(
"rgf_host", host,
"G");
102 call symputx(
"rgf_port", port,
"G");
103 call symputx(
"rgf_service", ksubstr(service, 2),
"G");
109%irm_get_service_info(SWCName = Risk Scenario Manager
110 , DeployedComponentName = Registered SAS Application
115 call symputx(
"rsm_protocol", protocol,
"G");
116 call symputx(
"rsm_host", host,
"G");
117 call symputx(
"rsm_port", port,
"G");
118 call symputx(
"rsm_service", ksubstr(service, 2),
"G");
127%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/datastore_config.sas" / lrecl = 32000;
128%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/reportmart_config.sas" / lrecl = 32000;
129%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/reportmart_aggregation_config.sas" / lrecl = 32000;
132%let staging_ddls_to_load = cashflow collateral counterparty credit_synth_portfolio economic_sim loss_distribution_summary mitigation riskagg_linear_corr rwa_weights;
133%macro _create_data_defs();
134 %
do i = 1 %to %sysfunc(countw(&staging_ddls_to_load.));
135 %let ddlName = %scan(&staging_ddls_to_load., &i.);
137 %irm_create_data_def_from_ddl(perspective_id = EWST
138 , table_name = &ddlName.
139 , ddl_file = &ddlName..sas
140 , ddl_folder = staging
141 , datastore_config = work.datastore_config
142 , ds_in_reportmart_config = work.reportmart_config
143 , ds_in_mart_aggregation_config = work.reportmart_aggregation_config
144 , irm_fa_path = &irm_fa_path.
145 , dr_libref = &dr_libref.
146 , rgf_solution = &rgf_solution.
147 , username = &sasUser.
148 , password = &sasPassword.
149 , rgf_protocol = &rgf_protocol.
150 , rgf_host = &rgf_host.
151 , rgf_port = &rgf_port.
152 , rgf_service = &rgf_service.
155%mend _create_data_defs;
162%irm_create_data_def_from_ddl(perspective_id = EWST
163 , table_name = credit_risk_detail
164 , ddl_file = credit_risk_detail.sas
165 , ddl_folder = reportmart
166 , datastore_config = work.datastore_config
167 , ds_in_reportmart_config = work.reportmart_config
168 , ds_in_mart_aggregation_config = work.reportmart_aggregation_config
169 , irm_fa_path = &irm_fa_path.
170 , dr_libref = &dr_libref.
171 , rgf_solution = &rgf_solution.
172 , username = &sasUser.
173 , password = &sasPassword.
174 , rgf_protocol = &rgf_protocol.
175 , rgf_host = &rgf_host.
176 , rgf_port = &rgf_port.
177 , rgf_service = &rgf_service.
184%irm_create_data_def_from_ddl(perspective_id = EWST
185 , table_name = value_at_risk_detail
186 , ddl_file = value_at_risk_detail.sas
187 , ddl_folder = reportmart
188 , datastore_config = work.datastore_config
189 , ds_in_reportmart_config = work.reportmart_config
190 , ds_in_mart_aggregation_config = work.reportmart_aggregation_config
191 , irm_fa_path = &irm_fa_path.
192 , dr_libref = &dr_libref.
193 , rgf_solution = &rgf_solution.
194 , username = &sasUser.
195 , password = &sasPassword.
196 , rgf_protocol = &rgf_protocol.
197 , rgf_host = &rgf_host.
198 , rgf_port = &rgf_port.
199 , rgf_service = &rgf_service.
210 %include
"&irm_fa_path./source/sas/misc/ddl/staging/counterparty.sas" / lrecl = 32000;
211 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_geo_hierarchy.sas" / lrecl = 32000;
212 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_product_hierarchy.sas" / lrecl = 32000;
213 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_lob_hierarchy.sas" / lrecl = 32000;
214 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_dpd_type.sas" / lrecl = 32000;
215 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_ltv_type.sas" / lrecl = 32000;
219data work.portfolio_enrichment;
221 %irm_get_attrib_def(ds_in = work.counterparty)
222 %irm_get_attrib_def(ds_in = map_geo_hierarchy)
223 %irm_get_attrib_def(ds_in = map_product_hierarchy)
224 %irm_get_attrib_def(ds_in = map_lob_hierarchy)
225 %irm_get_attrib_def(ds_in = map_dpd_type)
226 %irm_get_attrib_def(ds_in = map_ltv_type)
228 ORIG_CREDIT_STATE length = 8. label =
"Credit State at origination"
229 CREDIT_STATE length = 8. label =
"Current Credit State"
235%let ptf_drop_vars = geography_cd product_cd lob_id dpd_start dpd_end ltv_start ltv_end;
239%irm_create_data_def_from_ddl(perspective_id = EWST
240 , table_name = credit_portfolio
241 , ddl_file = credit_portfolio.sas
242 , ddl_folder = staging
243 , datastore_config = work.datastore_config
244 , enrichment_table = work.portfolio_enrichment
245 , drop_vars = &ptf_drop_vars.
246 , irm_fa_path = &irm_fa_path.
247 , dr_libref = &dr_libref.
248 , outds = data_definition_ptf
249 , rgf_solution = &rgf_solution.
250 , username = &sasUser.
251 , password = &sasPassword.
252 , rgf_protocol = &rgf_protocol.
253 , rgf_host = &rgf_host.
254 , rgf_port = &rgf_port.
255 , rgf_service = &rgf_service.
265%let responseStatus =;
266%irm_create_data_def_from_ddl(perspective_id = EWST
267 , table_name = fs_projection
268 , ddl_file = fs_projection.sas
269 , ddl_folder = reportmart
270 , datastore_config = work.datastore_config
271 , irm_fa_path = &irm_fa_path.
272 , dr_libref = &dr_libref.
273 , rgf_solution = &rgf_solution.
274 , username = &sasUser.
275 , password = &sasPassword.
276 , rgf_protocol = &rgf_protocol.
277 , rgf_host = &rgf_host.
278 , rgf_port = &rgf_port.
279 , rgf_service = &rgf_service.
280 , outds = schema_info_fs
281 , outSuccess = httpSuccess
282 , outResponseStatus = responseStatus
285%
if(&httpSuccess. and %rsk_dsexist(schema_info_fs)) %then %
do;
288 call symputx(
"fs_data_def_key", key,
"L");
295%let responseStatus =;
296%irm_create_data_def_from_ddl(perspective_id = EWST
297 , table_name = capital_adequacy_summary
298 , ddl_file = capital_adequacy_summary.sas
299 , ddl_folder = reportmart
300 , datastore_config = work.datastore_config
301 , irm_fa_path = &irm_fa_path.
302 , dr_libref = &dr_libref.
303 , rgf_solution = &rgf_solution.
304 , username = &sasUser.
305 , password = &sasPassword.
306 , rgf_protocol = &rgf_protocol.
307 , rgf_host = &rgf_host.
308 , rgf_port = &rgf_port.
309 , rgf_service = &rgf_service.
310 , outds = schema_info_ca
311 , outSuccess = httpSuccess
312 , outResponseStatus = responseStatus
315%
if(&httpSuccess. and %rsk_dsexist(schema_info_ca)) %then %
do;
318 call symputx(
"ca_data_def_key", key,
"L");
326 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_profit_loss_hierarchy.sas" / lrecl = 32000;
327 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_balance_sheet_hierarchy.sas" / lrecl = 32000;
328 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_own_funds_hierarchy.sas" / lrecl = 32000;
329 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_geo_hierarchy.sas" / lrecl = 32000;
330 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_chart_of_account.sas" / lrecl = 32000;
331 %include
"&irm_fa_path./source/sas/misc/ddl/mapping/map_movement_type.sas" / lrecl = 32000;
335data work.pl_enrichment;
337 %irm_get_attrib_def(ds_in = map_geo_hierarchy, drop_vars = geography_cd)
338 %irm_get_attrib_def(ds_in = map_profit_loss_hierarchy, drop_vars = chart_of_account_cd balance_sheet_cd profit_loss_cd own_funds_cd)
339 %irm_get_attrib_def(ds_in = map_chart_of_account, keep_vars = chart_of_account_name)
340 %irm_get_attrib_def(ds_in = map_movement_type, drop_vars = movement_type_cd)
348%let responseStatus =;
349%irm_create_data_def_from_ddl(perspective_id = EWST
350 , table_name = profit_loss_account
351 , ddl_file = profit_loss_account.sas
352 , ddl_folder = staging
353 , datastore_config = work.datastore_config
354 , enrichment_table = work.pl_enrichment
355 , irm_fa_path = &irm_fa_path.
356 , dr_libref = &dr_libref.
357 , rgf_solution = &rgf_solution.
358 , username = &sasUser.
359 , password = &sasPassword.
360 , rgf_protocol = &rgf_protocol.
361 , rgf_host = &rgf_host.
362 , rgf_port = &rgf_port.
363 , rgf_service = &rgf_service.
364 , outds = schema_info_pl
365 , outSuccess = httpSuccess
366 , outResponseStatus = responseStatus
370%
if(&httpSuccess. and %rsk_dsexist(schema_info_pl)) %then %
do;
373 call symputx(
"pl_data_def_key", key,
"L");
378data work.gl_enrichment;
380 %irm_get_attrib_def(ds_in = map_geo_hierarchy, drop_vars = geography_cd)
381 %irm_get_attrib_def(ds_in = map_balance_sheet_hierarchy, drop_vars = chart_of_account_cd balance_sheet_cd profit_loss_cd own_funds_cd)
382 %irm_get_attrib_def(ds_in = map_chart_of_account, keep_vars = chart_of_account_name)
383 %irm_get_attrib_def(ds_in = map_movement_type, drop_vars = movement_type_cd)
391%let responseStatus =;
392%irm_create_data_def_from_ddl(perspective_id = EWST
393 , table_name = gl_account
394 , ddl_file = gl_account.sas
395 , ddl_folder = staging
396 , datastore_config = work.datastore_config
397 , enrichment_table = work.gl_enrichment
398 , irm_fa_path = &irm_fa_path.
399 , dr_libref = &dr_libref.
400 , rgf_solution = &rgf_solution.
401 , username = &sasUser.
402 , password = &sasPassword.
403 , rgf_protocol = &rgf_protocol.
404 , rgf_host = &rgf_host.
405 , rgf_port = &rgf_port.
406 , rgf_service = &rgf_service.
407 , outds = schema_info_gl
408 , outSuccess = httpSuccess
409 , outResponseStatus = responseStatus
412%
if(&httpSuccess. and %rsk_dsexist(schema_info_gl)) %then %
do;
415 call symputx(
"gl_data_def_key", key,
"L");
420data work.of_enrichment;
422 %irm_get_attrib_def(ds_in = map_geo_hierarchy, drop_vars = geography_cd)
423 %irm_get_attrib_def(ds_in = map_own_funds_hierarchy, drop_vars = chart_of_account_cd balance_sheet_cd profit_loss_cd own_funds_cd)
424 %irm_get_attrib_def(ds_in = map_chart_of_account, keep_vars = chart_of_account_name)
425 %irm_get_attrib_def(ds_in = map_movement_type, drop_vars = movement_type_cd)
433%let responseStatus =;
434%irm_create_data_def_from_ddl(perspective_id = EWST
435 , table_name = own_funds_account
436 , ddl_file = own_funds_account.sas
437 , ddl_folder = staging
438 , datastore_config = work.datastore_config
439 , enrichment_table = work.of_enrichment
440 , irm_fa_path = &irm_fa_path.
441 , dr_libref = &dr_libref.
442 , rgf_solution = &rgf_solution.
443 , username = &sasUser.
444 , password = &sasPassword.
445 , rgf_protocol = &rgf_protocol.
446 , rgf_host = &rgf_host.
447 , rgf_port = &rgf_port.
448 , rgf_service = &rgf_service.
449 , outds = schema_info_of
450 , outSuccess = httpSuccess
451 , outResponseStatus = responseStatus
454%
if(&httpSuccess. and %rsk_dsexist(schema_info_of)) %then %
do;
457 call symputx(
"of_data_def_key", key,
"L");
468%let responseStatus =;
469%irm_rest_get_rgf_data_map(host = &rgf_protocol.:
470 , server = &rgf_service.
471 , solution = &rgf_solution.
473 , username = &sasUser.
474 , password = &sasPassword.
475 , outds = dataMap_summary
476 , outds_details = dataMap_details
477 , outVarTicket = ticket
478 , outSuccess = httpSuccess
479 , outResponseStatus = responseStatus
482%
if(&httpSuccess. and %rsk_dsexist(dataMap_summary)) %then %
do;
485 if objectId eq
"ST-0821-DataMap-OF" then call symputx(
"of_data_map_key", key,
"L");
486 if objectId eq
"ST-0821-DataMap-PL" then call symputx(
"pl_data_map_key", key,
"L");
487 if objectId eq
"ST-0821-DataMap-GL" then call symputx(
"gl_data_map_key", key,
"L");
491%macro create_data_map_links(link_type, bo1_key, bo2_key);
494 %irm_rest_get_rgf_link_types(host = &rgf_protocol.:
495 , server = &rgf_service.
496 , solution = &rgf_solution.
498 , filter = linkTypeId=&link_type.
500 , username = &sasUser.
501 , password = &sasPassword.
502 , outVarTicket = ticket
503 , outSuccess = httpSuccess
504 , outResponseStatus = responseStatus
506 %
if (&httpSuccess. and %rsk_dsexist(link_type)) %then %
do;
509 call symputx(
"link_type_key", key,
"L");
514 %irm_rest_get_rgf_link_instances(host = &rgf_protocol.:
515 , server = &rgf_service.
516 , solution = &rgf_solution.
518 , filter = linkInstanceId=&link_type_key._&bo1_key._&bo2_key.
519 , outds = link_instances
520 , username = &sasUser.
521 , password = &sasPassword.
522 , outVarTicket = ticket
523 , outSuccess = httpSuccess
524 , outResponseStatus = responseStatus
527 %
if (&httpSuccess. and %rsk_attrn(link_instances, nobs) eq 0) %then %
do;
530 %irm_rest_create_rgf_link_inst(host = &rgf_protocol.:
531 , server = &rgf_service.
532 , solution = &rgf_solution.
534 , username = &sasUser.
535 , password = &sasPassword.
536 , link_instance_id = &link_type_key._&bo1_key._&bo2_key.
537 , link_type = &link_type.
538 , business_object1 = &bo1_key.
539 , business_object2 = &bo2_key.
540 , outds = link_instance
541 , outVarTicket = ticket
542 , outSuccess = httpSuccess
543 , outResponseStatus = responseStatus
550%
if (%symexist(of_data_def_key) and %symexist(pl_data_def_key) and %symexist(gl_data_def_key) and %symexist(fs_data_def_key)) %then %
do;
551 %create_data_map_links(link_type = dataMap_dataDefinition_src, bo1_key = &of_data_map_key., bo2_key = &of_data_def_key.);
552 %create_data_map_links(link_type = dataMap_dataDefinition_tgt, bo1_key = &of_data_map_key., bo2_key = &fs_data_def_key.);
553 %create_data_map_links(link_type = dataMap_dataDefinition_src, bo1_key = &pl_data_map_key., bo2_key = &pl_data_def_key.);
554 %create_data_map_links(link_type = dataMap_dataDefinition_tgt, bo1_key = &pl_data_map_key., bo2_key = &fs_data_def_key.);
555 %create_data_map_links(link_type = dataMap_dataDefinition_src, bo1_key = &gl_data_map_key., bo2_key = &gl_data_def_key.);
556 %create_data_map_links(link_type = dataMap_dataDefinition_tgt, bo1_key = &gl_data_map_key., bo2_key = &fs_data_def_key.);
559 %put WARNING: Could not load link instances
for Data Maps because required Data Definition Ids were not found.;
567%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/rule_set_config.sas" / lrecl = 32000;
568data dq_rule_set_config;
569 set rule_set_config (where = (rule_set_group_id =
"CREDIT_PORTFOLIO"));
576%let responseStatus =;
577%irmc_get_dim_point_from_groovy(query_type = emptyLocationWithPerspectiveNodes
578 , perspective_id = EWST
579 , outVar = dim_point_key
580 , host = &rgf_protocol:
581 , server = &rgf_service.
582 , solution = &rgf_solution.
584 , username = &sasUser.
585 , password = &sasPassword.
586 , outVarTicket = ticket
587 , outSuccess = httpSuccess
588 , outResponseStatus = responseStatus
592%irm_rest_create_rgf_ruleset(host = &rgf_protocol:
593 , server = &rgf_service.
594 , solution = &rgf_solution.
595 , dimensional_points = %quote(&dim_point_key.)
597 , username = &sasUser.
598 , password = &sasPassword.
599 , name = DQ Rule Set - &content_version.
600 , description = Sample Data Quality rules
601 , ds_in = dq_rule_set_config
602 , ruleset_type = BusinessRuleSet
603 , ruleset_category = DQ
604 , outds = ruleSetInfoDQ
605 , outVarTicket = ticket
606 , outSuccess = httpSuccess
607 , outResponseStatus = responseStatus
615%let rule_set_dq_key =;
617 set ruleSetInfoDQ(obs = 1);
618 call symputx(
"rule_set_dq_key", ruleSetKey,
"L");
622%let data_def_ptf_key =;
624 set data_definition_ptf;
625 call symputx(
"data_def_ptf_key", key,
"L");
630%irm_rest_create_rgf_link_inst(host = &rgf_protocol.:
631 , server = &rgf_service.
632 , solution = &rgf_solution.
634 , username = &sasUser.
635 , password = &sasPassword.
636 , link_type = ruleSet_dataDefinition
637 , business_object1 = &rule_set_dq_key.
638 , business_object2 = &data_def_ptf_key.
639 , outds = rule_dq_link_instance
640 , outVarTicket = ticket
641 , outSuccess = httpSuccess
642 , outResponseStatus = responseStatus
652%let libref = MART_DP;
653libname &libref. meta liburi =
"SASLibrary?@Name = '&mart_library_name.'" metaout = data;
657%include
"&irm_fa_path./source/sas/misc/ddl/static/va_report_config.sas" / lrecl = 32000;
659proc datasets library = &libref. nolist nodetails nowarn;
660 delete st_va_report_config;
661 change va_report_config = st_va_report_config;
665%include
"&irm_fa_path./sampledata/config/%lowcase(&config_set_id.)/static/va_report_config.sas" / lrecl = 32000;
667 base = &libref..st_va_report_config
668 data = va_report_config;
672%irm_upload_to_lasr(ds_in = &libref..st_va_report_config
673 , lasr_library_name = &lasr_library_name.
674 , target_table_nm = st_va_report_config
675 , meta_repository = Foundation
676 , meta_folder = &lasr_meta_folder.
684%let perspective_id_lst=%str(EWST,ICAAP,CCAR);
685%let num_perspective_ids = %sysfunc(countw(&perspective_id_lst., %str(,)));
690 %
do p = 1 %to &num_perspective_ids.;
693 %let perspective_id=%scan(&perspective_id_lst.,&p.,%str(,));
697 %irm_rest_get_rgf_cycle(host = &rgf_protocol:
699 , server = &rgf_service.
700 , username = &sasUser.
701 , password = &sasPassword.
702 , filter = filter=and(hasObjectLinkToEq(%27RMC%27,%27cycle_controlFramework%27,%27solutionCreatedIn%27,%27%upcase(&perspective_id.)%27,0),eq(statusCd,%27init%27))
709 set cycle_ds end=last;
710 call symputx(cats(
"cycle_key_", put(_N_, 8.)), key,
"L");
712 call symputx(
"tot_cycles", _N_,
"L");
720 %include
"&rmc_fa_path./source/sas/misc/ddl/reportmart/control_execution_results.sas";
721 %include
"&rmc_fa_path./source/sas/misc/ddl/reportmart/control_limit_results.sas";
727 %let baseRequestUrl = &rgf_protocol:
728 %let uiRequestUrl = &baseRequestUrl.-%lowcase(&perspective_id.)/uiContexts/cycles;
731 %
do c = 1 %to &tot_cycles.;
734 filename payload temp;
741 %let httpSuccess = 0;
742 %let responseStatus =;
744 %irm_rest_request(url = &uiRequestUrl./&&cycle_key_&c..
746 , server = &rgf_service.
747 , username = &sasUser.
748 , password = &sasPassword.
749 , headerIn = Accept:application/json
750 , body = %bquote({
"SCREENID":
"CustomObject214",
"TEMP.CREATEDINBATCH":
true})
754 , outVarTicket = ticket
755 , outSuccess = httpSuccess
756 , outResponseStatus = responseStatus
759 %
if &httpSuccess ne 1 %then %
do;
761 %put
"Execution stopped due to errors.";
765 %let httpSuccess = 0;
766 %let responseStatus =;
768 %irm_rest_request(url = &uiRequestUrl./&&cycle_key_&c..
770 , server = &rgf_service.
771 , username = &sasUser.
772 , password = &sasPassword.
773 , headerIn = Accept:application/json
777 , outVarTicket = ticket
778 , outSuccess = httpSuccess
779 , outResponseStatus = responseStatus
781 %
if &httpSuccess ne 1 %then %
do;
783 %put
"Error updating cycle to create control rules tables. Execution stopped due to errors.";
787 filename payload clear;
790 %irm_upload_to_lasr(ds_in =work.control_execution_results
791 , lasr_library_name = &lasr_library_name.
792 , target_table_nm = &perspective_id._CNTRL_EXEC_RESULTS
793 , meta_repository = &meta_repository.
794 , meta_folder = &lasr_meta_folder.
798 %irm_upload_to_lasr(ds_in =work.control_limit_results
799 , lasr_library_name = &lasr_library_name.
800 , target_table_nm = &perspective_id._CNTRL_LIMIT_RESULTS
801 , meta_repository = &meta_repository.
802 , meta_folder = &lasr_meta_folder.