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 数据库 table,我们在其中手动输入 运行 的开始日期。这个 table 只有两列 RECIDEXPORTDATE。它们与我正在使用的任何对象或 table 没有任何公共列。任务是使用此 table 在过滤器中设置开始日期。

我该怎么做?是否可以使用 Lookup,我试过了但没有成功?

你可以做到 -

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

非常感谢您的建议,确实我使用了第三种方案,效果很好。