我有一个问题,我得到平面文件,日期和时间扩展到平面文件名,如 test_28-10-2012.txt
我可以通过检查Source Analyzer中的AddCurrentlyProcessedFileName
属性来获取映射中的平面文件名,从那里我可以做我的逻辑,但我的问题是
如何在会话的源文件名属性中动态提供平面文件名。
答案 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”)。 在源文件名下,将源文件类型的值更改为间接。