如果配置文件带有N标志需要插入到profile_id,如果带有U标志则更新到profile_temp。有时用户也带有N标志,用于更新,只需要更新到profile_temp。当它已经加载到我的配置文件之后,后来一些配置文件被分配了N标志,但这次它来更新。如何在infa中进行映射?
请先使用表达式转换,然后再使用更新策略。
- 首先使用一个表达式来创建一个标志。
flag_insert_update =
IIF ( user_flag = 'N', 'INS_PROFILE',
IIF ( user_flag = 'UPDATE', 'UPD_PROFILE_TEMP',
IIF (user_flag = 'n','UPD_PROFILE_TEMP'
))) -- You can calculate as per your logic.
- 使用路由器在profile和profile_temp之间分割数据
group 1 = flag_insert_update = 'INS_PROFILE'
group 2 = flag_insert_update <> 'INS_PROFILE'
- 然后使用多种更新策略。一个链接到PROFILE表,一个链接到PROFILE_TEMP表。
更新PROFILE表的策略逻辑-
IIF(flag_insert_update ='INS_PROFILE', 'DD_INSERT' ) -- pls note else condition is null.
更新PROFILE_TEMP表的策略逻辑
IIF(flag_insert_update ='UPD_PROFILE_TEMP', 'DD_UPDATE' ) -- pls note else condition is null.
- 然后将更新策略链接到相应的目标。
整个映射应该是这样的。
|-UPD_PROFILE --> TGT_PROFILE
EXP_FLAG_INS_UPD -RTR_SPLIT ->|-UPD_PROFILE_TEMP --> TGT_PROFILE_TEMP