如何使用informatica powercenter动态创建新记录

时间:2014-06-27 10:45:18

标签: etl informatica informatica-powercenter

我有员工的叶子相关数据和付款相关信息。 例如员工E1今年休了产假。她需要支付6个月的费用,如果她休假的时间更长(比如8个月),我需要为她创建两条记录。

一个允许持续时间,另一个持续时间延长。

Employee  LeaveStartDAte  LeaveEndDate Total_days_taken  Total_days_allowed LeaveType
e1         1Jan2013       31Aug2013     242                 186                 ML

目标预期:

Employee  LeaveStartDAte  LeaveEndDate Leavetype
e1        1Jan2013        30June2013     ML
e1        1July 2013      31Aug2013      Extended ML

如何在informatica映射中动态创建第二条记录?

2 个答案:

答案 0 :(得分:0)

一般来说,我们在informatica中使用java转换来动态创建新行。但是,对于您所描述的场景,您只需要根据某些条件创建一个额外的行,您可以通过添加两个目标实例并有条件地填充第二个目标实例(使用路由器或过滤器转换)来实现此目的。

您可以这样做:

在表达式中为 LeaveStartDate LeaveEndDate LeaveType 创建两组端口,并相应地计算它们的值。例如:

LeaveStartDate1 -> source LeaveStartDate
LeaveStartDate2 -> LeaveStartDate + Total_days_allowed + 1

现在将第一组端口直接连接到目标实例。通过过滤器将第二组端口连接到另一个目标实例。过滤条件类似Total_days_taken > Total_days_allowed。如果您愿意,也可以使用路由器执行此操作。

答案 1 :(得分:0)

您可以在映射中使用两个管道 - 一个用于加载插入的记录,第二个用于将插入与更新组合。