繁体   English   中英

Informatica PowerCenter 过滤器中的上一个工作流开始时间作为开始日期

[英]Previous Workflow Start Time as start date in a filter in Informatica PowerCenter

好的,情况看起来是这样的:我有一个运行许多映射的工作流。 在这些映射中,我需要一个过滤器来设置从 salesforce 到 oracle 数据库的重新迁移数据的特定增量加载时间。 对于数据的初始加载,我们设置了一个过滤器,如下所示:

CreatedDate >= TO_DATE('01/01/1900','MM/DD/YYYY') and CreatedDate <= $$EXPORTDATE

其中$$EXPORTDATE被分配给Workflow Manager中引用WORKFLOWSTARTTIME的工作流变量。 现在对于重新迁移数据的增量加载,我需要使用上一次运行的开始时间作为开始日期(对于工作流的下一次运行)。

为此,我们创建了一个 oracle 数据库表,我们在其中手动输入了运行的开始日期。 该表只有两列RECIDEXPORTDATE 它们与我正在使用的任何对象或表没有任何公共列。 任务是使用此表在过滤器中设置开始日期。

我怎样才能做到这一点? 查找是否可能,我试过了但没有成功?

你可以做 -

  1. 如果你的源和这个 oracle 表在同一个数据库中,你可以直接使用它。 如果在其他 Oracle 数据库链接中连接到 Oracle 并直接从该表使用它。
select * from source, oracle_datetab@Oracle_DB OraDT where CreatedDate >= TO_DATE('01/01/1900','MM/DD/YYYY') and CreatedDate <= OraDT.EXPORTDATE
  1. 您可以使用查找然后过滤。 查找将是未连接的,连接条件应该在虚拟数据上。 以及基于此的过滤数据。 返回导出日期。 Lkp 查询 -
select -99 as dummy_join_condition, EXPORTDATE as EXPORTDATE from oracle_datetab

连接条件应基于 dummy_join_condition。 然后使用过滤器转换 -
CreatedDate <=:lkp.LKP_oracle_datetab(-99)
如果您遇到任何问题,请告诉我。

  1. 第三种选择是使用带有基于虚拟列的源的连接器。
SQ1_source - create a dummy column with value = -99          --->
                                                                  JNR on this dummy column.  --> FIL on CreatedDate <= SQ2.EXPORTDATE
SQ2_oracle_datetab - create a dummy column with value = -99  ---> 

非常感谢您的建议,确实我使用了第三个选项并且效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM