如果源文件只有标题行,如何中止Informatica工作流



我有一个要求,即我要检查CSV格式的源文件是否只有标题行,即只有1行,那么我需要使信息工作流失败。Informatica安装在Windows服务器中,因此只支持Command任务,而不支持Unix或bash。我正在使用下面的代码,在工作流中使用命令任务来计算源文件中的行数。

对于/f";usebackq"%%b在(type $$outputfile ^| find "" /v /c(do(回波线计数为%%b>$count_file.txt))

这里$$outfile和$$count_file路径和文件名是从param文件中选取的。

有一个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

最新更新