无法在Informatica中无法正常工作的不同平面文件中的目标分开了

时间:2019-01-21 23:51:39

标签: informatica informatica-powercenter

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

我的来源中有一个计划使用的字段。例如,我的表包含以下列:

IDCATEGORYNAMEOFFICEPOSITIONSALARY

目标文件将具有列

IDNameCategoryPositionSalary

每个办公室我只有一个文件。

我正在使用Sorter转换按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

到目前为止,根据文档。

但是它没有为每个Office写下单独的文件。

这些是我在WorkFlow管理器中的“会话任务”设置:

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

当前,我正在使用LookUp转换获取这些字段,并在PREV_OFFICE != OFFICE时创建用于移动每个文件的外壳脚本指令(否则为null)。指示还可以,但是我有太多空白行。 (顺便说一句,这证明PREV_OFFICEOFFICE字段是正确的)

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

1 个答案:

答案 0 :(得分:1)

在目标上勾选Filename port选项,它将生成一个新目标,其名称与您连接到该目标的输入端口值相同