Для пути метаданных потока задания, вы можете попробовать использовать следующий код. Код подхватывает имя задания из & etls_jobName макропеременной и извлекает метаданные путь к папке задания. Чтобы узнать больше о функциях, которые используются, обратитесь к интерфейсам языка SAS к метаданным. Надеюсь это поможет!
data path_output;
length jobName $ 100 uri headuri $ 256 jobPath head_path $ 500 ;
jobName="&etls_jobName";
rcJob =metadata_getnobj("omsobj:[email protected] ='&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;
UPDATE:
Если Job Flow URI должен быть выбран на основе имени потока Работа затем использовать то, что показывают в коде выше, а именно:
rcJob =metadata_getnobj("omsobj:[email protected] ='&etls_jobName'",1,uri);
Если работы потока URI необходимо выбрать на основе идентификатора метаданных, а затем использовать:
rcJob =metadata_getnobj("omsobj:[email protected] ='&jobID'",1,uri);
Я знаю ноль о DIS, b ut is etls_jobName, возможно, макро переменная вместо переменной данных? '" & etls_jobname. "' возможно? – Joe
Я эхо, что @Joe говорит, убедитесь, что вы помещаете кавычки вокруг макропеременной. Кроме того, тот факт, что вы получаете. в поле говорит мне, что вы можете назначить значение символа в числовое поле. Убедитесь, что поле является символом и достаточно длинным, чтобы сохранить значение & etls_jobName. – DomPazz
Спасибо! Это отлично работало для задания. Любые идеи о иерархии папок? – Rookatu