如何在informatica的会话属性中动态提供平面文件源文件名?

时间:2012-10-28 13:01:48

标签: flat-file informatica-powercenter informatica

我有一个问题,我得到平面文件,日期和时间扩展到平面文件名,如 test_28-10-2012.txt

我可以通过检查Source Analyzer中的AddCurrentlyProcessedFileName属性来获取映射中的平面文件名,从那里我可以做我的逻辑,但我的问题是

如何在会话的源文件名属性中动态提供平面文件名。

4 个答案:

答案 0 :(得分:4)

执行此操作的一种方法是使用间接来源。您可以将会话配置为使用间接源,其中源文件名来自文本文件(列表文件中的每个条目都是源文件会话将读取)。

然后您可以安排代码将该动态文件名添加到该列表文件中。

答案 1 :(得分:1)

您可以参数化源文件的名称 - 在会话属性中用参数(例如$$ SOURCE_FILENAME)替换硬编码的源文件名值,并在参数文件中定义其值:

$$SOURCE_FILENAME=test_28-10-2012.txt

答案 2 :(得分:1)

来自IPC帮助:

按交易创建目标文件

每次Integration Service启动新事务时,您都可以生成单独的输出文件。您可以动态命名每个目标平面文件。

要为每个事务生成单独的输出文件,请将FileName端口添加到平面文件目标定义。在映射中连接FileName端口时,Integration Service会在每次提交时创建单独的目标文件。 Integration Service根据每个事务中第一行的FileName端口值命名输出文件。默认情况下,Integration Service将输出文件写入$ PMTargetFileDir。

答案 3 :(得分:0)

使用创建文件列表的会前脚本。

<强>窗

dir /b part_of_file_name*.txt > FILELIST_NAME.LST

<强> UNIX

ls part_of_file_name* > FILELIST_NAME.LST

在Workflow Manager中编辑会话任务并转到“映射”选项卡。 选择平面文件源。 在“属性”下,输入列表文件名(“FILELIST.LST”)。 在源文件名下,将源文件类型的值更改为间接。