在会话后命令中使用映射变量

时间:2015-11-17 06:08:36

标签: informatica

工作流生成三个文件(标题,详细信息,预告片),我通过会话后命令合并。在我的映射中设置了两个变量,我想在会话后命令中使用它,如下所示:

cat header1.out detail1.out trailer1.out > OUTPUT_$(date +%Y%m%d)_$$VAR1_$$VAR2.dat

但这不起作用且值为空,所以我得到OUTPUT_20151117 __。dat。

我尝试过创建工作流变量并通过会前变量赋值来分配它们,但这也不起作用。

我错过了什么?或者这永远不会起作用?

3 个答案:

答案 0 :(得分:0)

您是否可以在会话日志中看到分配给这些变量的值,或者它们是否也显示为空?

答案 1 :(得分:0)

我正在尝试创建工作流变量,但您需要使用 post -session变量赋值来分配值。

答案 2 :(得分:0)

基本上,您将值存储在映射中的变量中,并在会话成功后将值传递到工作流。以下是如何实现这一目标:

  1. 定义工作流程变量$$ VAR1和$$ VAR2
  2. 在映射中定义变量,但选择不同的名称!所以即$$ M_VAR1和$$ M_VAR2
  3. 在映射中,通过函数SetVariable(var为char,值为数据类型)将值赋给映射变量
  4. 在您的会话中,选择成功变量分配的会话后。
  5. 在步骤4中,来自$$ M_VAR1(映射变量)的当前值存储在工作流变量$$ VAR1中,然后可以像您要​​求的那样在命令任务的工作流程中使用。

    一些注意事项:

    • 我不能100%确定变量赋值是否在会话后命令之前执行。如果首先执行该命令,则可以在会话后在外部命令任务中执行命令任务。
    • 如果将工作流变量中的值传递给映射变量,则使用会话前变量分配。如果变量$$ VAR1或$$ VAR2在另一个映射中使用并且需要在开头初始化,则可以使用此方法。