informatica - 在 Informatica 中不起作用的不同平面文件中的动态分离目标
问题描述
我有一个表,我需要将其动态拆分为多个纯文本表(制表符分隔)。
我的来源有一个我打算使用的字段。例如,我的表有以下列:
ID
, CATEGORY
, NAME
, OFFICE
, POSITION
,SALARY
目标文件将具有列
ID
, Name
, Category
, Position
,Salary
每个办公室我都会有一份文件。
我正在使用排序器转换按OFFICE
, CATEGORY
,排序ID
然后是表达式转换,我在其中添加列PREV_OFFICE
andFILENAME
和变量V_OFFICE
。它们被定义为:
PREV_OFFICE := ISNULL(V_OFFICE, ' ', V_OFFICE)
V_OFFICE := OFFICE
FILENAME := 'Employees_' || OFFICE || '.xls'
然后是事务控制条件的事务控制转换:
IIF(PREV_OFFICE != OFFICE, TC_COMMIT_BEFORE, TC_CONTINUE_TRANSACTION)
最后是带有字段的目标
ID
, Name
, Category
, Position
, Salary
,FileName
到目前为止,根据文档。
然而,它并没有为每个办公室写下单独的文件。
这些是我在工作流管理器中对会话任务的设置:
Merge Type: No Merge
Append if Exists: unchecked
Create Target Directory: unchecked
Header Options: Output Filed Name
Header Command: --blank--
Footer Command: --blank--
Output Type: File
Output file directory: $PMTargetFileDir\
Output file: Employees.xls
Reject file directory: $PMBadFileDir\
Reject file: shortcut_to_employees_xls1.bad
包括字段在内的所有数据FileName
都写在Employees.xls
, 中(格式正确),并且不Employees_<office>.xls
创建任何文件。
我已经检查并且确实PREV_OFFICE
具有OFFICE
预期值(当有新值时它们是不同的OFFICE
)。
在第二个问题上,应使用包含以下列的表将每个文件发送到不同的 FTP 位置:
OFFICE
, FTP_SERVER
, FTP_USER
, FTP_PASSWD
,FTP_PATH
目前我正在使用查找转换来获取这些字段,并在何时创建PREV_OFFICE != OFFICE
用于移动每个文件的 shell 脚本指令(否则为 null)。说明没问题,但我得到了太多的空白行。(顺便说一句,这证明了PREV_OFFICE
和OFFICE
领域是正确的)
我试图过滤掉不需要的行,但验证失败,声称两个流将由一个事务控制控制。
解决方案
在您的目标上勾选 Filename port 选项,这将生成一个与您连接到那里的输入端口值具有相同文件名的新目标
推荐阅读
- python - 如何在嵌套元组中找到总和
- strapi - 有没有办法将自动生成的 created_by 字段链接到用户(创建关系)而不是与管理员用户相关?
- python - 反向计算 Pandas 行的正条纹
- r - 使用 plotly 时,绘图未显示在查看器中
- python - 无法使用 buildozer 构建 apk
- java - Spring @Constraint 注解无法解析
- spring - Spring Cache 命中标志/指示器
- json - 无法在 Flutter 项目中初始化 jsonResponse
- database - 如何在 cassandra 中以文本格式插入 dateof(now())
- bokeh - Bokeh + Holoviews 绘图的 M*N 布局