我有在 SAS DIS 中生成一些特定于作业的变量的代码,并且不必为我编写的每个作业将此代码复制到用户编写的代码块中,我希望有一个预定义的转换来执行此操作,我将从转换窗格到任何给定的工作。
创建新转换时,在对话框的 SAS 代码组件中,我粘贴了一些简单的代码。假设它看起来像这样:
DATA CREATE_JOB_SPECIFIC_VARS;
job_name = "&etls_jobName";
job_date = date();
RUN;
我不需要任何提示,所以我在对话框的 Options 组件上选择“下一步”,并且我不需要任何输入,所以我将输入的最小和最大数量设置为 0。我需要 1 个输出(工作我用代码创建的表),所以我保留关联的值。我选择“下一步”和“完成”。
当我尝试将转换转化为工作并运行它时,会发生两件意想不到的事情:
- 无法查看转换的输出表,尝试这样做会产生错误:
访问元数据时出错:表没有列 2. 运行转换会导致作业中的另一个转换连接到新创建的转换的输入端(不应接受任何输入)。
我主要关心问题#1(#2 是次要的好奇心)。我猜这个问题出现了,因为软件希望在代码块以外的某个地方指定输出表的列,但我看不到其他地方可以做到这一点。
我想做的事可能吗?我是否必须将作业特定变量创建为宏变量(最好避免这种情况)?
非常感谢!