我有员工的叶子相关数据和付款相关信息。 例如员工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映射中动态创建第二条记录?
答案 0 :(得分:0)
一般来说,我们在informatica中使用java转换来动态创建新行。但是,对于您所描述的场景,您只需要根据某些条件创建一个额外的行,您可以通过添加两个目标实例并有条件地填充第二个目标实例(使用路由器或过滤器转换)来实现此目的。
您可以这样做:
在表达式中为 LeaveStartDate , LeaveEndDate 和 LeaveType 创建两组端口,并相应地计算它们的值。例如:
LeaveStartDate1 -> source LeaveStartDate
LeaveStartDate2 -> LeaveStartDate + Total_days_allowed + 1
现在将第一组端口直接连接到目标实例。通过过滤器将第二组端口连接到另一个目标实例。过滤条件类似Total_days_taken > Total_days_allowed
。如果您愿意,也可以使用路由器执行此操作。
答案 1 :(得分:0)
您可以在映射中使用两个管道 - 一个用于加载插入的记录,第二个用于将插入与更新组合。