Informatica:仅当所有记录都具有值 Accepted = Y 时才处理文件,否则不处理整个文件
Informatica: Process the files only if all records have value Accepted = Y else do not process the whole file
我有多个与源布局相同的文件。有一个字段叫
"Accepted"。可以有值 Y 或 N。我只想处理所有记录的值 = Y 的那些文件。
例如):-
File 1
ID Accepted
1 Y
2 N
File 2
ID Accepted
1 Y
2 Y
在上述情况下,我应该只处理文件 1。我正在使用 Informatica PowerCenter 处理文件。可以有n个文件,读取为"Indirect File"。间接文件是使用会话前 korn shell 脚本创建的。
我更喜欢使用 Informatica Mapping 处理它,但也欢迎任何使用 shell 脚本的解决方案。文件以“|”分隔并且有很多字段,不仅仅是 "ID" 和 "Accepted"
您可以在创建间接文件时使用 awk 语句处理此问题:
假设您所有的输入文件都以名称 "inputfile*"
开头
flag 变量将获取文件的第二个字段,分隔符为“|”
A filename is added to indirect file only if there is no "N" in flag variable
filename=inputfile*
for f in $filename
do
flag=`awk -F "|" '{print }' $f`
if [[ $flag =~ .*N.* ]]
then
echo 'Skipping file as one of the record has value =N as accepted'
else
echo pwd/$f >>indirectfile
fi
done
使用 Informatica:
- 将当前处理的文件名添加到源。
表达式:- 如果接受为 N,则设置值为 1 的端口,否则为 0
值 = IIF(已接受 = 'N',1,0)
根据当前处理的文件名聚合;取 SUM(值)
仅过滤 SUM(value)=0
的记录
根据当前处理的文件名正常加入原始来源
这应该会给出所需的结果。
Source --> Expression --> Aggregator --> Filter --> Joiner(join with original source)
我有多个与源布局相同的文件。有一个字段叫 "Accepted"。可以有值 Y 或 N。我只想处理所有记录的值 = Y 的那些文件。
例如):-
File 1
ID Accepted
1 Y
2 N
File 2
ID Accepted
1 Y
2 Y
在上述情况下,我应该只处理文件 1。我正在使用 Informatica PowerCenter 处理文件。可以有n个文件,读取为"Indirect File"。间接文件是使用会话前 korn shell 脚本创建的。
我更喜欢使用 Informatica Mapping 处理它,但也欢迎任何使用 shell 脚本的解决方案。文件以“|”分隔并且有很多字段,不仅仅是 "ID" 和 "Accepted"
您可以在创建间接文件时使用 awk 语句处理此问题:
假设您所有的输入文件都以名称 "inputfile*"
开头flag 变量将获取文件的第二个字段,分隔符为“|”
A filename is added to indirect file only if there is no "N" in flag variable
filename=inputfile*
for f in $filename
do
flag=`awk -F "|" '{print }' $f`
if [[ $flag =~ .*N.* ]]
then
echo 'Skipping file as one of the record has value =N as accepted'
else
echo pwd/$f >>indirectfile
fi
done
使用 Informatica:
- 将当前处理的文件名添加到源。
表达式:- 如果接受为 N,则设置值为 1 的端口,否则为 0
值 = IIF(已接受 = 'N',1,0)
根据当前处理的文件名聚合;取 SUM(值)
仅过滤 SUM(value)=0
的记录
根据当前处理的文件名正常加入原始来源
这应该会给出所需的结果。
Source --> Expression --> Aggregator --> Filter --> Joiner(join with original source)