在 SAS DIS 中引用作业路径和名称
Referencing job path and name in SAS DIS
在 SAS DIS 中,我想在代码中引用作业名称。我知道全局变量 etls_jobName
包含此信息,但是当我将此值分配给字段并查看输出时,我得到“.”。
最终,我还希望能够获取路径名称(在作业的文件夹结构中),但我不确定此类信息位于何处。
非常感谢。
对于作业流元数据路径,您可以尝试使用以下代码。该代码从 &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);
在 SAS DIS 中,我想在代码中引用作业名称。我知道全局变量 etls_jobName
包含此信息,但是当我将此值分配给字段并查看输出时,我得到“.”。
最终,我还希望能够获取路径名称(在作业的文件夹结构中),但我不确定此类信息位于何处。
非常感谢。
对于作业流元数据路径,您可以尝试使用以下代码。该代码从 &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);