2%let solution_id = %sysget(solution_id);
3%let installSampleModels = YES;*%sysfunc(coalescec(%sysget(installSampleModels), YES));
6%let irm_fa_id = %sysget(irm_fa_id);
7%let rmc_fa_id = %sysget(rmc_fa_id);
10%
if %sysevalf(%superq(rmc_fa_id) =,
boolean) %then %
do;
11 %let rmc_fa_id = rmc.*;
15%
if %sysevalf(%superq(solution_id) =,
boolean) %then %
do;
16 %let solution_id = %substr(&irm_fa_id.,1,%index(&irm_fa_id.,%str(.))-1);
20%let irm_fa_path = %sysfunc(metadata_appprop(IRM Mid-Tier Server, com.sas.solutions.risk.irm.fa.&irm_fa_id.));
23%let fa_name = %scan(%bquote(&irm_fa_path.), -1, /\);
24%let source_path = %sysfunc(prxchange(s/[\\\/]&fa_name.$
31options insert = (sasautos = (
"&source_path./&fa_name./source/sas/ucmacros"));
34%put NOTE: Input parameter RMC_FA_PATH has not been set.;
35%put NOTE: Fetching RMC federated area location from metadata searching
for IRM Mid-Tier Server property: com.sas.solutions.risk.irm.fa.&rmc_fa_id.;
36%irm_set_fa_sasautos(fa_id = &rmc_fa_id.
39 , insert_after = &source_path./&fa_name.
41 , outvar_prefix = irm_setup_rmc_fa
45%
if(&irm_setup_rmc_fa_count. = 0) %then %
do;
46 %put WARNING: Could not find any federated area with
id: com.sas.solutions.risk.irm.fa.&rmc_fa_id.;
50%irm_set_fa_luapath(fa_path = &source_path./&fa_name./source/lua
55%irm_set_fa_luapath(fa_id = &rmc_fa_id.
57 , insert_after = &source_path./&fa_name.
65%let rmc_version_nm = &rmc_fa_id.;
67%
if "&rmc_version_nm." eq
"rmc.*" %then %
do;
70 %irm_get_swc_property(swc_name = IRM Mid-Tier Server
71 , property = com.sas.solutions.risk.irm.fa.(?!readonly.)&rmc_fa_id.
73 , outvar = swc_property_value
74 , out_ds = irm_federated_areas
75 , pattern_match_flg = Y
79 proc sort data = irm_federated_areas;
80 by descending property_name;
85 set irm_federated_areas (obs=1);
86 call symputx(
"rmc_version_nm", substr(property_name, index(property_name,
".rmc.")+1),
"L");
91%put NOTE: Using RMC version &rmc_version_nm.
for Cycle data loader.;
98%let data_load_root = &source_path./rgf/data_loader_files;
99%let dynamic_field_location = &data_load_root./dynamic_fields;
100%let scripts_location = &source_path./rgf/sas/scripts;
101%let params_location = &scripts_location./script_params;
102%let workflow_location = &source_path./rgf/workflow_templates;
103%let data_loader_file = &solution_id._data_loader.xlsx;
107libname dl_dyn
"&dynamic_field_location.";
109%macro readFileContent(resolve_fields =, file_location =);
114 _file_content_ $32000.
127 array _resolve_fields_ {*} &resolve_fields.;
132 rx_path = prxparse(
"/^((\\\\?|\/)?([^\\\/]*[\\\/])*)([^\\\/\.]+\.[^\\\/\.]+)$/i");
136 do i = 1 to dim(_resolve_fields_);
137 if(prxmatch(rx_path, _resolve_fields_[i])) then
do;
139 call missing(_file_content_);
141 _filepath_ = catx(
"/", %unquote(&file_location.), _resolve_fields_[i]);
142 rc = filename(
"fref", _filepath_);
149 do while(rc_fread = 0);
151 rc_fread = fread(fid);
152 if(rc_fread = 0) then
do;
154 rc = fget(fid, _record_, 32000);
156 _file_content_ = catt(_file_content_,
"0a"x, _record_);
160 _resolve_fields_[i] = _file_content_;
165 put
"WARNING: Could not open file " _filepath_;
168 rc = filename(
"fref");
171 put
"WARNING: Could not assign a filename to " _filepath_;
184 objectId length = $100. label =
"businessObject.businessObjectId"
185 contentType length = $400. label =
"content.contentType"
186 groupNo length = 8. label =
"content.groupNo"
187 attachmentTypeCd length = $100. label =
"content.attachmentTypeCd"
188 fileNm length = $256. label =
"content.fileName"
189 newFileNm length = $256. label =
"content.newName"
190 description length = $400. label =
"content.description"
191 fileLocation length = $10000. label =
"content.location"
192 objectSSC length = $10. label =
"businessObject.sourceSystemCd"
193 contentSSC length = $10. label =
"content.sourceSystemCd"
194 objectTypeNm length = $100. label =
"businessObject.businessObjectTypeNm"
196 infile
"&data_load_root./Content.csv" dlm =
"," dsd firstobs = 2;
202 rx = prxparse(
"/^\s*(#.*)?$/");
208 if not prxmatch(rx, _infile_);
225 fileLocation = resolve(fileLocation);
235 sourceSystemCd length = $10. label =
"customObject214.sourceSystemCd"
236 custObj214Id length = $100. label =
"customObject214.custObj214Id"
237 custObjNm length = $150. label =
"customObject214.custObjNm"
238 versionNm length = $100. label =
"customObject214.versionNm"
239 rmcVersionNm length = $100. label =
"customObject214.rmcVersionNm"
240 entityId length = $256. label =
"customObject214.entityId"
241 baseDt length = $100. label =
"customObject214.baseDt"
242 cycleStartDt length = $100. label =
"customObject214.cycleStartDt"
243 statusCd length = $100. label =
"customObject214.statusCd"
244 userId length = $100. label =
"customUser1.user.userId"
245 initialRunFlg length = $10. label =
"customObject214.initialRunFlg"
246 iterationFlg length = $10. label =
"customObject214.iterationFlg"
247 solutionCreatedIn length = $10. label =
"customObject214.solutionCreatedIn"
248 auxOpDim1Id length = $10. label =
"auxOpDim1.auxOpDim1Id"
249 auxOpDim1SSC length = $10. label =
"auxOpDim1.sourceSystemCd"
250 auxOrgDim1Id length = $10. label =
"auxOrgDim1.auxOrgDim1Id"
251 auxOrgDim1SSC length = $10. label =
"auxOrgDim1.sourceSystemCd"
253 infile
"&data_load_root./Cycle.csv" dlm =
"," dsd firstobs = 2;
259 rx = prxparse(
"/^\s*(#.*)?$/");
265 if not prxmatch(rx, _infile_);
286 rmcVersionNm = resolve(rmcVersionNm);
293data controlFramework;
295 sourceSystemCd length = $10. label =
"customObject240.sourceSystemCd"
296 custObj240Id length = $100. label =
"customObject240.custObj240Id"
297 custObjNm length = $150. label =
"customObject240.custObjNm"
298 custObjDesc length = $1024. label =
"customObject240.custObjDesc"
299 ctrlRules_business length = $32000. label =
"customObject240.cntrlRules_business"
300 cntrlRules_exception length = $32000. label =
"customObject240.cntrlRules_exception"
301 cntrlRules_logAnalysis length = $32000. label =
"customObject240.cntrlRules_logAnalysis"
302 cntrlRules_metricTrend length = $32000. label =
"customObject240.cntrlRules_metricTrend"
303 cntrlRules_specific length = $32000. label =
"customObject240.cntrlRules_specific"
304 cntrlRules_technical length = $32000. label =
"customObject240.cntrlRules_technical"
305 controlRuleTypes length = $1024. label =
"customObject240.controlRuleTypes"
306 versionNm length = $100. label =
"customObject240.versionNm"
307 solutionCreatedIn length = $10. label =
"customObject240.solutionCreatedIn"
308 auxOpDim1Id length = $10. label =
"auxOpDim1.auxOpDim1Id"
309 auxOpDim1SSC length = $10. label =
"auxOpDim1.sourceSystemCd"
310 auxOrgDim1Id length = $10. label =
"auxOrgDim1.auxOrgDim1Id"
311 auxOrgDim1SSC length = $10. label =
"auxOrgDim1.sourceSystemCd"
313 infile
"&data_load_root./ControlFramework.csv" dlm =
"," dsd firstobs = 2;
332 rx_comment = prxparse(
"/^\s*(#.*)?$/");
334 rx_cr = prxparse(cats(
"s/\\n/",
"0a"x,
"/"));
341 if not prxmatch(rx_comment, _infile_);
350 cntrlRules_exception $
351 cntrlRules_logAnalysis $
352 cntrlRules_metricTrend $
353 cntrlRules_specific $
354 cntrlRules_technical $
365 custObjDesc = prxchange(rx_cr, -1, custObjDesc);
367 %readFileContent(resolve_fields = ctrlRules_business cntrlRules_exception cntrlRules_logAnalysis cntrlRules_metricTrend cntrlRules_specific cntrlRules_technical
368 , file_location =
"&dynamic_field_location."
371 %
if(&installSampleModels. = NO) %then %
do;
373 if(_optional_flg_ =
"N");
384 linkInstanceSSC length = $10. label =
"linkInstance.sourceSystemCd"
385 linkInstanceId length = $150. label =
"linkInstance.linkInstanceId"
386 linkTypeSSC length = $10. label =
"linkType.sourceSystemCd"
387 linkTypeId length = $150. label =
"linkType.linkTypeId"
388 bo1SSC length = $10. label =
"businessObject1.sourceSystemCd"
389 bo1Id length = $150. label =
"businessObject1.businessObjectId"
390 bo2SSC length = $10. label =
"businessObject2.sourceSystemCd"
391 bo2Id length = $150. label =
"businessObject2.businessObjectId"
392 creator length = $100. label =
"linkInstance.creator"
394 infile
"&data_load_root./LinkInstances.csv" dlm =
"," dsd firstobs = 2;
400 rx = prxparse(
"/^\s*(#.*)?$/");
406 if not prxmatch(rx, _infile_);
427 boTypeName length = $150. label =
"businessObject.typeNm"
428 boSSC length = $10. label =
"businessObject.sourceSystemCd"
429 boId length = $150. label =
"businessObject.id"
430 templateName length = $150. label =
"workflow.templateNm"
431 perspectiveId length = $10. label =
"workflow.perspectiveId"
432 wfDelete length = $32. label =
"workflow.delete"
433 wfClearRegistry length = $32. label =
"workflow.clearregistry"
435 infile
"&data_load_root./Workflows.csv" dlm =
"," dsd firstobs = 2;
441 rx = prxparse(
"/^\s*(#.*)?$/");
447 if not prxmatch(rx, _infile_);
466 sourceSystemCd length = $10. label =
"customObject1.sourceSystemCd"
467 custObj1Id length = $100. label =
"customObject1.custObj1Id"
468 custObjNm length = $150. label =
"customObject1.custObjNm"
469 custObjDesc length = $1024. label =
"customObject1.custObjDesc"
470 independentRunFlg length = $10. label =
"customObject1.independentRunFlg"
471 rolesForIndependentRun length = $1024. label =
"customObject1.rolesForIndependentRun"
472 businessCatCd length = $150. label =
"customObject1.businessCatCd"
473 typeCd length = $150. label =
"customObject1.typeCd"
474 subTypeCd length = $32. label =
"customObject1.subTypeCd"
475 versionId length = $32000. label =
"customObject1.versionId"
476 engineCd length = $150. label =
"customObject1.engineCd"
477 runTypeCd length = $150. label =
"customObject1.runTypeCd"
478 statusCd length = $150. label =
"customObject1.statusCd"
479 mipRunTypeCd length = $150. label =
"customObject1.mipRunTypeCd"
480 parameters length = $32000. label =
"customObject1.parameters"
481 codeEditor length = $32000. label =
"customObject1.codeEditor"
482 mipModelingSystemName length = $150. label =
"customObject1.mipModelingSystemName"
483 mipModelingSystemVersion length = $150. label =
"customObject1.mipModelingSystemVersion"
484 mipModelingSystemWorkgroup length = $150. label =
"customObject1.mipModelingSystemWorkgroup"
485 preCodeFlg length = $10. label =
"customObject1.preCodeFlg"
486 postCodeFlg length = $10. label =
"customObject1.postCodeFlg"
487 preCodeEditor length = $32000. label =
"customObject1.preCodeEditor"
488 postCodeEditor length = $32000. label =
"customObject1.postCodeEditor"
489 preMipFlg length = $10. label =
"customObject1.preMipFlg"
490 postMipFlg length = $10. label =
"customObject1.postMipFlg"
491 mipPreCodeEditor length = $32000. label =
"customObject1.mipPreCodeEditor"
492 mipPostCodeEditor length = $32000. label =
"customObject1.mipPostCodeEditor"
493 mipWeightedOutputVars length = $32000. label =
"customObject1.mipWeightedOutputVars"
494 scenWeightFlg length = $10. label =
"customObject1.scenWeightFlg"
495 bepConfigSetCd length = $32. label =
"customObject1.bepConfigsetCd"
496 scenarioFlg length = $10. label =
"customObject1.scenarioFlg"
497 solutionCreatedIn length = $10. label =
"customObject1.solutionCreatedIn"
498 auxOpDim1Id_1 length = $10. label =
"auxOpDim1[1].auxOpDim1Id"
499 auxOpDim1SSC_1 length = $10. label =
"auxOpDim1[1].sourceSystemCd"
500 auxOpDim1Id_2 length = $10. label =
"auxOpDim1[2].auxOpDim1Id"
501 auxOpDim1SSC_2 length = $10. label =
"auxOpDim1[2].sourceSystemCd"
502 auxOpDim1Id_3 length = $10. label =
"auxOpDim1[3].auxOpDim1Id"
503 auxOpDim1SSC_3 length = $10. label =
"auxOpDim1[3].sourceSystemCd"
504 auxOrgDim1Id_1 length = $10. label =
"auxOrgDim1[1].auxOrgDim1Id"
505 auxOrgDim1SSC_1 length = $10. label =
"auxOrgDim1[1].sourceSystemCd"
506 auxOrgDim1Id_2 length = $10. label =
"auxOrgDim1[2].auxOrgDim1Id"
507 auxOrgDim1SSC_2 length = $10. label =
"auxOrgDim1[2].sourceSystemCd"
508 auxOrgDim1Id_3 length = $10. label =
"auxOrgDim1[3].auxOrgDim1Id"
509 auxOrgDim1SSC_3 length = $10. label =
"auxOrgDim1[3].sourceSystemCd"
510 refreshUsingFuncVals length = $5. label =
"customObject1.refreshUsingFuncVals"
512 infile
"&data_load_root./Model.csv" dlm =
"," dsd firstobs = 2;
531 rx_comment = prxparse(
"/^\s*(#.*)?$/");
533 rx_cr = prxparse(cats(
"s/\\n/",
"0a"x,
"/"));
540 if not prxmatch(rx_comment, _infile_);
549 rolesForIndependentRun $
560 mipModelingSystemName $
561 mipModelingSystemVersion $
562 mipModelingSystemWorkgroup $
571 mipWeightedOutputVars $
584 refreshUsingFuncVals $
588 if not missing(auxOrgDim1Id_2) and not missing(auxOrgDim1SSC_2) then
do;
589 auxOpDim1Id_2 = auxOpDim1Id_1;
590 auxOpDim1SSC_2 = auxOpDim1SSC_1;
592 if not missing(auxOrgDim1Id_3) and not missing(auxOrgDim1SSC_3) then
do;
593 auxOpDim1Id_3 = auxOpDim1Id_1;
594 auxOpDim1SSC_3 = auxOpDim1SSC_1;
598 custObjDesc = prxchange(rx_cr, -1, custObjDesc);
600 %readFileContent(resolve_fields = parameters codeEditor preCodeEditor postCodeEditor mipPreCodeEditor mipPostCodeEditor
601 , file_location = %bquote(ifc(vname(_resolve_fields_[i]) =
"parameters",
"¶ms_location.",
"&scripts_location."))
604 %
if(&installSampleModels. = NO) %then %
do;
606 if(_optional_flg_ =
"N");
615data workflowTemplate;
617 sourceSystemCd length = $10. label =
"customObject225.sourceSystemCd"
618 custObj225Id length = $100. label =
"customObject225.custObj225Id"
619 custObjNm length = $150. label =
"customObject225.custObjNm"
620 fileNm length = $512. label =
"customObject225.fileNm"
621 wf_template_name length = $512. label =
"customObject225.wfTemplateNm"
622 wf_activity_model_mapping length = $32000. label =
"customObject225.wfActivityModelMapping"
623 wf_flow_diagram length = $32000. label =
"customObject225.wfDiagram"
624 reviewActivities length = $32000. label =
"customObject225.reviewActivities"
625 wf_tag length = $100. label =
"customObject225.wfTag"
626 taskDetails length = $32000. label =
"customObject225.taskDetails"
627 solutionCreatedIn length = $10. label =
"customObject225.solutionCreatedIn"
628 auxOpDim1Id length = $10. label =
"auxOpDim1.auxOpDim1Id"
629 auxOpDim1SSC length = $10. label =
"auxOpDim1.sourceSystemCd"
630 auxOrgDim1Id length = $10. label =
"auxOrgDim1.auxOrgDim1Id"
631 auxOrgDim1SSC length = $10. label =
"auxOrgDim1.sourceSystemCd"
633 infile
"&data_load_root./WorkflowTemplate.csv" dlm =
"," dsd firstobs = 2;
647 rx_comment = prxparse(
"/^\s*(#.*)?$/");
654 if not prxmatch(rx_comment, _infile_);
662 wf_activity_model_mapping $
674 wf_template_name = cats(
"wf_template_name",
"_",fileNm);
675 wf_activity_model_mapping = cats(
"wf_activity_model_mapping",
"_",fileNm);
676 wf_flow_diagram = cats(
"wf_flow_diagram",
"_",fileNm);
677 reviewActivities = cats(
"reviewActivities",
"_",fileNm);
678 wf_tag = cats(
"wf_tag",
"_",fileNm);
679 taskDetails = cats(
"taskDetails",
"_",fileNm);
683%let resolve_json_fields = wf_activity_model_mapping wf_flow_diagram reviewActivities taskDetails;
684%let resolve_txt_fields = wf_template_name wf_tag;
687 select distinct fileNm
688 into :file_list separated by
" "
689 from work.workflowTemplate;
694 local JSON = require
'risk.common.json'
695 local stringutils = require
'sas.risk.utils.stringutils'
696 --[[Loop through each workflow
template file]]--
697 local file_list = stringutils.split(sas.symget(
"file_list"),
" ")
698 for i,file_name in ipairs(file_list)
do
700 --[[Read the contents of the input json file from workflow_location/file_name]]--
701 local file_location = sas.symget(
"workflow_location")
702 sas.print(
"Reading file "..file_location..
"/"..file_name)
703 file = io.open(file_location..
"/"..file_name,
"r")
704 local fileJson = JSON:decode(file:read(
"*all"))
707 local out_file_location = sas.symget("dynamic_field_location")
708 local resolve_json_fields = stringutils.split(sas.symget("resolve_json_fields"), " ")
709 local resolve_txt_fields = stringutils.split(sas.symget("resolve_txt_fields"), " ")
711 --[[For each JSON field that needs to be resolved, create a corresponding json file]]--
712 for j,field in ipairs(resolve_json_fields) do
713 sas.print("Creating file "..out_file_location.."/"..field.."_"..file_name)
714 out_file = io.open(out_file_location.."/"..field.."_"..file_name, "w")
716 io.write(JSON:encode(fileJson[field]))
719 --[[For each text field that needs to be resolved, create a corresponding json file]]--
720 for k,field in ipairs(resolve_txt_fields) do
721 sas.print("Creating file "..out_file_location.."/"..field.."_"..file_name)
722 out_file = io.open(out_file_location.."/"..field.."_"..file_name, "w")
724 io.write(fileJson[field])
733data workflowTemplate;
734 set workflowTemplate;
737 %readFileContent(resolve_fields =&resolve_json_fields. &resolve_txt_fields.
738 , file_location = "&dynamic_field_location.");
747 sourceSystemCd length = $10. label = "customObject220.sourceSystemCd"
748 custObj220Id length = $100. label = "customObject220.custObj220Id"
749 custObjNm length = $150. label = "customObject220.custObjNm"
750 custObjDesc length = $1024. label = "customObject220.custObjDesc"
751 mappingInfo length = $32000. label = "customObject220.mappingInfo"
752 mapType length = $150. label = "customObject220.mapType"
753 solutionCreatedIn length = $10. label = "customObject220.solutionCreatedIn"
754 auxOpDim1Id_1 length = $10. label = "auxOpDim1[1].auxOpDim1Id"
755 auxOpDim1SSC_1 length = $10. label = "auxOpDim1[1].sourceSystemCd"
756 auxOpDim1Id_2 length = $10. label = "auxOpDim1[2].auxOpDim1Id"
757 auxOpDim1SSC_2 length = $10. label = "auxOpDim1[2].sourceSystemCd"
758 auxOrgDim1Id_1 length = $10. label = "auxOrgDim1[1].auxOrgDim1Id"
759 auxOrgDim1SSC_1 length = $10. label = "auxOrgDim1[1].sourceSystemCd"
760 auxOrgDim1Id_2 length = $10. label = "auxOrgDim1[2].auxOrgDim1Id"
761 auxOrgDim1SSC_2 length = $10. label = "auxOrgDim1[2].sourceSystemCd"
763 infile "&data_load_root./DataMap.csv" dlm = "," dsd firstobs = 2;
778 rx_comment = prxparse("/^\s*(
#.*)?$/");
779 /* Regex to convert \n to carriage return "0a"x */
780 rx_cr = prxparse(cats("s/\\n/", "0a"x, "/"));
783 /* Read entire record */
787 if not prxmatch(rx_comment, _infile_);
805 /* If multiple Solutions Shared With are provided, there needs to be an equivalent number of Solution Created In nodes */
806 if not missing(auxOrgDim1Id_2) and not missing(auxOrgDim1SSC_2) then do;
807 auxOpDim1Id_2 = auxOpDim1Id_1;
808 auxOpDim1SSC_2 = auxOpDim1SSC_1;
811 /* Convert \n into Excel Carriage Return ('0a'x) */
812 custObjDesc = prxchange(rx_cr, -1, custObjDesc);
814 %readFileContent(resolve_fields = mappingInfo
815 , file_location = "&dynamic_field_location."
820/* ************************************ */
821/* Solution Created In */
822/* ************************************ */
823data SolutionCreatedInDimension;
825 nodeId length = $100. label = "auxOpDim1.auxOpDim1Id"
826 nodeNm length = $150. label = "auxOpDim1.auxOpDim1Nm"
827 nodeDesc length = $150. label = "auxOpDim1.auxOpDim1Desc"
828 nodeSSC length = $10. label = "auxOpDim1.sourceSystemCd"
830 infile "&data_load_root./SolutionCreatedInDimension.csv" dlm = "," dsd firstobs = 2;
832 /* Compile Regex to identify comments */
836 rx = prxparse("/^\s*(#.*)?$/");
838 /* Read entire record */
842 if not prxmatch(rx, _infile_);
852/* ************************************* */
853/* Solution Shared With */
854/* ************************************* */
855data SolutionsSharedWithDimension;
857 nodeId length = $100. label = "auxOrgDim1.auxOrgDim1Id"
858 nodeNm length = $150. label = "auxOrgDim1.auxOrgDim1Nm"
859 nodeDesc length = $150. label = "auxOrgDim1.auxOrgDim1Desc"
860 nodeSSC length = $10. label = "auxOrgDim1.sourceSystemCd"
862 infile "&data_load_root./SolutionsSharedWithDimension.csv" dlm = "," dsd firstobs = 2;
864 /* Compile Regex to identify comments */
868 rx = prxparse("/^\s*(#.*)?$/");
870 /* Read entire record */
874 if not prxmatch(rx, _infile_);
884/* ********************************** */
885/* Named List Options */
886/* ********************************** */
887data NamedListOptions;
889 listNm length = $100. label = "namedList.listNm"
890 optionCd length = $32. label = "namedList.optionCd"
892 infile "&data_load_root./NamedListOptions.csv" dlm = "," dsd firstobs = 2;
894 /* Compile Regex to identify comments */
898 rx = prxparse("/^\s*(#.*)?$/");
900 /* Read entire record */
904 if not prxmatch(rx, _infile_);
912/* *************************************** */
913/* Named List Translations */
914/* *************************************** */
915data NamedListTranslations;
917 listNm length = $100. label = "namedList.listNm"
918 optionCd length = $100. label = "namedList.optionCd"
919 languageCd length = $10. label = "businessObjectLocalization.languageCd"
920 descTxt length = $250. label = "businessObjectLocalization.descTxt"
921 helpTxt length = $250. label = "businessObjectLocalization.helpTxt"
922 nameTxt length = $250. label = "businessObjectLocalization.nameTxt"
924 infile "&data_load_root./NamedListTranslations.csv" dlm = "," dsd firstobs = 2;
926 /* Compile Regex to identify comments */
930 rx = prxparse("/^\s*(#.*)?$/");
932 /* Read entire record */
936 if not prxmatch(rx, _infile_);
948/* *********************************************************** */
949/* Link Type Loaders */
950/* *********************************************************** */
954 sourceSystemCd length = $10. label = "linkType.sourceSystemCd"
955 linkTypeId length = $100. label = "linkType.linkTypeId"
956 businessObjectTypeNm1 length = $100. label = "linkType.businessObjectTypeNm1"
957 businessObjectTypeNm2 length = $100. label = "linkType.businessObjectTypeNm2"
958 defaultLanguageCd length = $10. label = "linkType.defaultLanguageCd"
959 otherLanguageCds length = $10000. label = "linkType.otherLanguageCds"
960 name1 length = $100. label = "linkType.name1"
961 description1 length = $250. label = "linkType.description1"
962 help1 length = $100. label = "linkType.help1"
963 name2 length = $100. label = "linkType.name2"
964 description2 length = $250. label = "linkType.description2"
965 help2 length = $100. label = "linkType.help2"
967 infile "&data_load_root./LinkTypes.csv" dlm = "," dsd firstobs = 2;
969 /* Compile Regex to identify comments */
973 rx = prxparse("/^\s*(#.*)?$/");
975 /* Read entire record */
979 if not prxmatch(rx, _infile_);
984 businessObjectTypeNm1 $
985 businessObjectTypeNm2 $
997/* *********************************************************** */
998/* Link Type Translation Loaders */
999/* *********************************************************** */
1001data LinkTypeTranslations;
1003 linkTypeId length = $100. label = "linkType.linkTypeId"
1004 sourceSystemCd length = $10. label = "linkType.sourceSystemCd"
1005 languageCd length = $10. label = "businessObjectLocalization.languageCd"
1006 name1Txt length = $250. label = "businessObjectLocalization.name1Txt"
1007 desc1Txt length = $250. label = "businessObjectLocalization.desc1Txt"
1008 help1Txt length = $250. label = "businessObjectLocalization.help1Txt"
1009 name2Txt length = $250. label = "businessObjectLocalization.name2Txt"
1010 desc2Txt length = $250. label = "businessObjectLocalization.desc2Txt"
1011 help2Txt length = $250. label = "businessObjectLocalization.help2Txt"
1014 infile "&data_load_root./LinkTypeTranslations.csv" dlm = "," dsd firstobs = 2 encoding='utf-8';
1016 /* Read entire record */
1019 /* Compile Regex to identify comments */
1023 rx = prxparse("/^\s*(#.*)?$/");
1026 if not prxmatch(rx, _infile_);
1042/* *************************************** */
1043/* Create Excel Data Loader */
1044/* *************************************** */
1046proc export data = work.Content
1048 outfile = "&data_load_root./&data_loader_file."
1054proc export data = work.Cycle
1056 outfile = "&data_load_root./&data_loader_file."
1062proc export data = work.controlFramework
1064 outfile = "&data_load_root./&data_loader_file."
1067 sheet = "ControlFramework";
1070proc export data = work.LinkInstances
1072 outfile = "&data_load_root./&data_loader_file."
1075 sheet = "LinkInstances";
1078proc export data = work.Workflows
1080 outfile = "&data_load_root./&data_loader_file."
1083 sheet = "Workflows";
1086proc export data = work.Model
1088 outfile = "&data_load_root./&data_loader_file."
1094proc export data = work.workflowTemplate
1096 outfile = "&data_load_root./&data_loader_file."
1099 sheet = "WorkflowTemplate";
1102proc export data = work.dataMap
1104 outfile = "&data_load_root./&data_loader_file."
1110proc export data = work.SolutionCreatedInDimension
1112 outfile = "&data_load_root./&data_loader_file."
1115 sheet = "SolutionCreatedInDimension";
1118proc export data = work.SolutionsSharedWithDimension
1120 outfile = "&data_load_root./&data_loader_file."
1123 sheet = "SolutionsSharedWithDimension";
1126proc export data = work.NamedListOptions
1128 outfile = "&data_load_root./&data_loader_file."
1131 sheet = "NamedListOptions";
1134proc export data = work.NamedListTranslations
1136 outfile = "&data_load_root./&data_loader_file."
1139 sheet = "NamedListTranslations";
1142proc export data = work.LinkTypes
1144 outfile = "&data_load_root./&data_loader_file."
1147 sheet = "LinkTypes";
1150proc export data = work.LinkTypeTranslations
1152 outfile = "&data_load_root./&data_loader_file."
1155 sheet = "LinkTypeTranslations";
1158/* Create data_load_sequence.txt */
1160 file "&data_load_root./data_load_sequence.txt";
1161 put "&data_loader_file.";