使用错误和中止在informatica中进行错误处理

时间:2015-02-25 12:41:01

标签: duplicates informatica

我是informartica的新手。请你帮我解决这个问题。

我有一个包含2个类别的列表。

硬检查:如果列为null,那么该记录不应该流到目标并且应该记录在错误表中(不是信息中的内置关系,我打算使用规范化器创建单独的错误表)

软检查:如果列为null,则记录应该转到异常以及目标表

我还想在错误表中进行重复检查,我希望在名为description的列中使用列名。

我知道在表达式中使用ERROR函数来检查not null。但是 我还想捕获带有重复项的记录并显示空记录。

示例:

record 1 has abc,wer column as null (soft check column)
record 5 has def column as null ( hard check column)

错误表示例:

date        id  reason              description
-----------------------------------------------
1/2/2014    10  duplicate record    duplicate
1/3/2014    1   null                abc,wer
1/4/2014    5   null                def

很抱歉在解释要求时不清楚。我已经在不同的映射中处理了重复的场景。

以下是硬/软检查的要求:

硬检查:记录不应流到目标表(仅限异常表)
软检查:记录应该流向目标表以及异常表

硬检查栏:Tarnsid
Soft Chech Column:Date Date2

源表

Position_id  trans_id      Date    Date2
1             abc123       31-dec  31-dec
2             abc1234      31-dec  31-dec
3             abc12345     31-dec  31-dec
4                          31-dec  31-dec
5             abc 123456 
6             abc 1234567

目标表

Position_id  trans_id      Date1   Date2
1             abc123       31-dec  31-dec
2             abc1234      31-dec  31-dec
3             abc12345     31-dec  31-dec
5             abc 123456   

EXCEPTION TABLE

Position_id  description         table_name    Column_Name   Check
4            transid is null      Source table  transid      Hardcheck
5            Date,Date2 is null   Source table  Date,Date2   SoftCheck
6            Date is null         Source table  Date,Date2   SoftCheck

加载到目标表时检查是否检查= Hardcheck in 然后它将不会流向目标。

请你帮我解释填充异常表的逻辑。

1 个答案:

答案 0 :(得分:0)

在表达式转换中,您可以执行以下操作:

o_check:= IIF(ISNULL(trans_id),'Hardcheck',IIF(ISNULL(date1) OR ISNULL(date2),'Softcheck','No Error'))
v_col_nm:= IIF(ISNULL(trans_id),'transid','')
            ||IIF(ISNULL(date1),',date1','')
            ||IIF(ISNULL(date2),',date2','')
o_col_nm:= v_col_nm
o_description:= v_col_nm||' is null'

这将为Exception表创建输出列。现在你可以分别为Target和Exception表放置一个带有两个组的路由器,组条件应如下所示:

目标:IN(o_check, 'No Error', 'Softcheck')
例外情况:o_check != 'No Error'

将适当的列连接到目标和异常表。