【问题标题】:Dinamically separate target in different flat files not working in Informatica不同平面文件中的动态分离目标在 Informatica 中不起作用
【发布时间】:2019-01-23 04:38:43
【问题描述】:

我有一个表格,我需要将其动态拆分为多个纯文本表格(制表符分隔)。

我的来源有一个我打算使用的字段。例如,我的表有以下列:

IDCATEGORYNAMEOFFICEPOSITIONSALARY

目标文件将包含列

IDNameCategoryPositionSalary

每个办公室都有一份文件。

我正在使用排序器转换按OFFICECATEGORYID 进行排序

然后是表达式转换,我在其中添加列PREV_OFFICEFILENAME,以及变量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)

最后是带有字段的目标

IDNameCategoryPositionSalaryFileName

到目前为止,根据文档。

但它并没有为每个办公室写下单独的文件。

这些是我在工作流管理器中对会话任务的设置:

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_OFFICEOFFICE 具有预期值(当OFFICE 有新值时,它们是不同的)。


关于第二个问题,应使用包含以下列的表格将每个文件发送到不同的 FTP 位置:

OFFICEFTP_SERVERFTP_USERFTP_PASSWDFTP_PATH

目前我正在使用查找转换来获取这些字段,并在PREV_OFFICE != OFFICE 时创建用于移动每个文件的 shell 脚本指令(否则为 null)。说明没问题,但我得到了太多的空白行。 (顺便说一句,这证明了 PREV_OFFICEOFFICE 字段是正确的)

我试图过滤掉不需要的行,但验证失败,声称两个流将由一个事务控制控制。

【问题讨论】:

  • 您想将数据移动到文件或表中吗?

标签: informatica informatica-powercenter


【解决方案1】:

在您的目标上勾选文件名端口选项,这将生成一个与您连接到那里的输入端口值具有相同文件名的新目标

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多