呼叫从内部宏观不工作
问题描述:
metadata_getattr我有一个SAS DI工作的前置宏,里边有我有以下代码:呼叫从内部宏观不工作
%let mtransformid = %str(omsobj:TransformationStep\&TransformID);
%let rc = %sysfunc(metadata_getattr("&mtransformid","Name",transform_name));
%put &transform_name;
不过,我不断收到错误消息说在最后一步无法解决对&transform_name
的符号引用。我已经试过包装在宏观内的数据的步骤调用metadata_getattr
,但是这似乎并没有帮助或者:
%let mtransformid = %str(omsobj:TransformationStep\&TransformID);
data _null_;
rc = metadata_getattr("&mtransformid","Name",trans_name);
call symputx("transform_name",trans_name);
%put &transform_name;
run;
以上%put
语句错误消息导致“视符号引用TRANSFORM_NAME没有解决“,除非我更早地”初始化“了宏变量,在这种情况下,它的前一个值被输出。
作为参考,&TransformID
是一个宏变量,它在每次转换运行时都由SAS DI自动生成。另外,这里是我一直在试图使用从获得灵感一些相关链接:
任何帮助,不胜感激!
答
看起来你不能用那种方式使用%sysfunc
; metadata_getattr
函数期望将数据返回到数据步骤变量。
如this SAS Communities answer解释,你需要或者使用数据步或者把你的查询到钙镁磷肥功能使用%sysfunc
。
你在第二行缺少一个')' - 在实际的代码中是这样吗? – Joe
此外 - 如果您尝试在数据步骤中包装它,并且想要转到该路线,请在该问题中包含该代码,如果您需要帮助,请! – Joe
嘿@Joe。谢谢指出缺少的括号(不,这不是实际的代码,我做了重新输入而不是复制粘贴的愚蠢的事情)。我将使用该修复程序以及我用于数据步骤方法的代码进行更新,但无法使用。 – Rookatu