Sas 从数据_null_uu或其他宏调用宏时,宏不执行

Sas 从数据_null_uu或其他宏调用宏时,宏不执行,sas,Sas,我有这种奇怪的情况 我使用此数据步骤运行宏: data _null_; set all_include_Stornos ; IF TREATMENT_IND in (4) AND DDS_ROW_IND NE 1 THEN DO; CALL EXECUTE ('%HAKPAA ('||POLICY_RK||','||POLICY_VERSION||');'); call execute ('%UPDATE(H

我有这种奇怪的情况

我使用此数据步骤运行宏:

 data _null_;
        set all_include_Stornos ;

        IF TREATMENT_IND in (4) AND DDS_ROW_IND NE 1  THEN DO;

            CALL EXECUTE ('%HAKPAA ('||POLICY_RK||','||POLICY_VERSION||');');
            call execute ('%UPDATE(HAKPAA_CUMULATE);');


        END;

run;
我调用的第一个宏(%HAKPAA)运行得很好。 另一个宏(%UPDATE), 看起来一点也不跑。 当我手动运行它时,而不是在数据Null中,只需调用它-它工作正常

我也尝试从第一个宏调用它(%HAKPAA) 但是,这个项目仍然没有达到目的

有人知道为什么吗?

好的,伙计们, 我发现了问题

宏拒绝运行,因为我使用了Exist函数。 Exist函数在元数据中找不到该表的名称,因为尚未创建该表

我删除了这个函数,我的程序运行得很好


谢谢大家帮我做这件事

在不知道%HAKPAA和%UPDATE应该做什么的情况下,很难准确地说出发生了什么。HAKPAA_CUMULATE是数据集中变量的名称吗?您正试图将其用作%UPDATE的位置参数?什么是“运行得很好”和“似乎根本不运行”?它要么运行,要么不运行;如果看不到日志文件或宏定义,则无法回答。尝试使用
选项mprint macrogen symbolgen运行
获取日志中的一些详细信息。另外,如果这两个参数是SAS字符变量,它们可能包含特殊字符(如逗号或百分号)?如果是数字,默认格式是否包含逗号?谢谢您的回答。“运行相当好”意味着当我手动运行宏的内容时,我会得到预期的结果。当我运行整个流程时,程序根本不会进入宏,但我注意到,如果我第二次单击播放按钮,宏会运行。也就是说,由于某种原因,第一个执行程序没有进入宏。第二次执行时,请不要输入它。我用“选项mprint macrogen symbolgen”来打印它,因此可以告诉你程序甚至不调用宏。我只是想知道为什么……如果不展示这两个宏的功能,就不可能回答这个问题。尝试创建一个简短的宏示例对,复制您正在体验的功能,并将它们发布在此处。