我有一个像
这样的映射 SA-->SQ--->EXPR--->TGT
源将具有相同的结构和tartget。
有一堆文件(具有相同的结构)将通过此映射。
所以我想使用一个参数文件,我将手动为每次运行提供文件名。
如何在Source filename
属性
请建议..
答案 0 :(得分:0)
你可以使用间接源类型,其中你的源文件基本上是一个文件列表,然后会话逐个读取每个文件。
参数文件可以将源文件名(列表)引用为
$ InputFile_myName = / A / B / c.list
答案 1 :(得分:0)
根据Raghav的说法,指出一个文件的名称,该文件将包含“源文件名”中的输入文件列表。 “映射”选项卡中有问题的SQ的属性框,使文件'源文件类型'是在会话属性中指定的间接'如果您已经提前知道输入文件的名称,则可以在该文件中指定它们,并将该文件与工作流一起部署到您在“源文件目录”中指定的位置。财产箱。但是,如果您在运行时之前不知道输入文件的名称,但知道文件'命名标准(例如:" Input_files_name_ABC_ "其中" "表示变量文本,例如由某个其他进程生成的每个输入文件递增的数值),那么解决这个问题的一种方法是使用“组件”中可指定的会前命令。会话选项卡。创建一个将在该位置构建新文件,并使用Unix shell(或者如果在Windows上运行cmd shell)为上面引用的间接输入文件指定名称,以列出符合其命名标准的文件并将列表输出重定向到该文件。
棘手的是,必须是间接类型的输入文件中列出的一个或多个文件。如果该文件为空,则工作流将失败(异常终止)。间接文件类型必须在其中列出至少一个文件(即使该文件为空)并且文件必须存在。如果间接文件读取器没有要读取的文件,或者其中列出的文件不在要读取的服务器上,则工作流将失败。解决此问题的一种方法是确保始终存在符合命名标准的空文件。这可以通过创建一个" touchfile"来确保。在执行listing命令之前构建间接文件类型列表文件。在Unix中,您可以使用触摸{路径} / {文件名}'例如,命令({filename}可以是" Input_files_name_ABC_TOUCHFILE"),或者在Windows上,您将空字符串重定向到同样通过cmd shell进程命名的文件。无论哪种方式,这将帮助您避免异常终止。清理该文件很容易:会话后命令可用于删除空的touchfile。同样,如果需要,您可以对间接类型的文件执行相同的操作。