如何解决如果源文件只有标题行,如何中止 Informatica 工作流
我有一个要求,其中我要检查 CSV 格式的源文件是否只有标题行,即只有 1 行,然后我需要使 informatica 工作流程失败。 Informatica 安装在 Windows 服务器中,因此仅支持命令任务,不支持 Unix 或 bash。 我正在使用以下代码在工作流中使用命令任务计算源文件中的行数。
for /f "usebackq" %%b in (type $$outputfile ^| find "" /v /c
)do (
echo 行数为 %%b> $$count_file.txt
)
)
这里的 $$outfile 和 $$count_file 路径和文件名是从参数文件中选取的。
解决方法
有一个 ABORT()
函数可用于表达式转换。
创建一个虚拟列并在源限定符之后放置一个排序器、聚合器。在聚合器中,获取所有数据的计数,然后将其连接回主流。在joiner之后,用下面的条件进行表达式转换-
IIF( cnt_all > 1,NULL,ABORT( 'Only header exists in the input file! Session will be aborted.'))
整个映射应该是这样的 --
SQ -- EXP(add dummy_col) -->SRT on dummy_col -->AGG on dummy_col,calculate Count(*)->|
|--------------------------------------------> JNR on dummy_col -->EXP (abort if count <=1) --> existing mapping logic...
编辑:
从命令任务中,您可以在条件满足时调用 pmcmd abortworkflow
。正常语法如下 -
pmcmd abortworkflow -service service -user username -password password -f folder workflow
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。