Informatica:如何将两个不同模式的源加载到同一个目标(平面文件)中?

时间:2016-06-17 02:14:22

标签: informatica informatica-powercenter

以下是该方案:

我有一个包含发票行详细信息的来源:

INV#    DATE    QTY     PRICE
123     12/16   1       50
123     12/16   2       20

我有另一个管道,我已经汇总了细节以形成标题

INV#    DATE    TOTALPRICE  PURCHASE#   LOC     TAX
123     12/16   70          456         1000    7

我想使用Informatica

对这些记录进行排序并加载到相同的制表符分隔平面文件中

因此平面文件输出将是:

123     12/16   70      456     1000    7   
123     12/16   1       50
123     12/16   2       20          

有什么建议吗?

我能想到的唯一方法是将一个字符串中的所有标题和详细信息列连接起来,并添加一个union转换来创建一个文件。

2 个答案:

答案 0 :(得分:1)

按照以下步骤完成此操作:

1)您需要为标头和详细信息管道创建一个整数类型的新端口(header_detail_ind)。为此,您可以为每个管道使用两个表达式转换。此端口的标头记录的值应为1,详细记录的值应为2.

2)接下来使用两个管道作为输入的并集转换。 使用上面步骤中的表达式转换使管道(没有端口和数据类型)的输出相同,以便它可以映射到并集转换。您可以在两个管道中添加一些空字段来实现此目的。

3)接下来,按 #INV 和新端口 header_detail_ind 添加分拣机转换和排序数据。通过这种方式,您将按照预期的顺序获得标题和详细记录。

4)现在,您可以使用表达式转换来根据目标定义的要求准备输出。这将为目标定义所需的每个端口提供一个输出端口。您可以为标头和详细记录创建不同的逻辑,这些逻辑可以通过端口header_detail_ind进行区分。

答案 1 :(得分:-1)

您可以将记录分别写入同一文件。首先让头管道创建文件并写入头记录。然后让详细信息管道向其追加记录。