在SAS DIS

时间:2015-04-22 13:38:42

标签: sas sas-dis

在SAS DIS中,我想在代码中引用作业名称。我知道全局变量etls_jobName包含此信息,但是当我将此值分配给字段并查看输出时,我得到了'。'。

最终,我也希望能够获得路径名称(在作业的文件夹结构中),并且我不确定那种信息的存在地点。

非常感激。

1 个答案:

答案 0 :(得分:2)

对于作业流程元数据路径,您可以尝试使用以下代码。代码从& etls_jobName 宏变量中选取作业名称,并提取作业的元数据文件夹路径。要了解有关正在使用的功能的更多信息,请参阅SAS语言接口与元数据。希望这有帮助!

data path_output;
    length jobName $ 100 uri headuri $ 256 jobPath head_path $ 500 ;

    jobName="&etls_jobName";
    rcJob =metadata_getnobj("omsobj:Job?@Name ='&etls_jobName'",1,uri);
    rcHead=metadata_getnasn(uri,"Trees",1,headuri);
    rcPath=metadata_getattr(headuri,"Name",jobPath);

    rcHead = 1;
    do while(rcHead>0);
        rcHead=metadata_getnasn(headuri,"ParentTree",1,headuri);
        rcPath=metadata_getattr(headuri,"Name",head_path);

        if (rcHead>0) then jobPath = catx('/',head_path,jobPath);
    end;

    output;
    keep jobName jobPath;
run;

proc print;
run;

<强>更新

如果需要根据工作流程名称选择工作流程URI,则使用上面代码中显示的内容,即:

rcJob =metadata_getnobj("omsobj:Job?@Name ='&etls_jobName'",1,uri);

如果需要根据元数据ID选择作业流URI,请使用:

rcJob =metadata_getnobj("omsobj:Job?@Id ='&jobID'",1,uri);