计算节点计算来自先前流的数据

Compute Node computes data from previous flow

我的流程是这样的:

File Input -> File Read -> Compute -> Mapping -> Compute -> File Output

从文件读取节点我将数据保存到${LocalEnvironment}。也试过${Environment}。这就是计算节点背后发生的事情:

  1. 发送文件 A - 计算 A 环境中的数据(在回答后编辑 -> 未计算,流程意外停止)。
  2. 发送文件 B - 计算 A 环境中的数据。
  3. 发送文件 C - 计算 B 环境中的数据。
  4. 发送文件 D - 计算 C 环境中的数据。

这种抵消怎么可能? ${LocalEnvironment} 应在流程开始时重置。

编辑

切勿使用环境变量。局部变量应存储在 $LocalEnvironment/Variables.

Explanation

知道了。甚至现在我认为我的变量还没有被清除。文件读取仍然从之前的 运行.

产生 $LocalEnvironment/Variables/BLOB/BLOB

EDIT2:* 节点设置: 文件输入:

Input directory: C:\Users\User1\Documents\In
File pattern: *
Action on successful processing: move to mqsiarchive
Message domain: XMLNS (I know it should be XMLNSC but it works)
Use XMLNSC compact parser...: check

文件读取:

Input directory: C:\Users\User1\Documents\In\mqsiarchive
File name or pattern: *
Action: Delete
Request directory property location: $LocalEnvironment/Destination/File/Directory
Request filename property location: $LocalEnvironment/Destination/File/Name
Offset property location: $LocalEnvironment/Destination/File/Offset
Length property location: $LocalEnvironment/Destination/File/Length
Result data location: $ResultRoot
Output data location: $OutputLocalEnvironment/Variables
Copy local environment: check
Record selection expression: true()

计算节点:

Compute mode: LocalEnvironment and Message

文件输出(这个并不重要,因为即使没有它也会出现问题):

Output directory: C:\Users\User1\Documents\Out
Filename or pattern: test.txt
Stage in mqsitransit...: check
Data location: $Body
Request directory property location: $LocalEnvironment/Destination/File/Directory
Request filename property location: $LocalEnvironment/Destination/File/Name

我没有提到的属性:默认值

我认为它是这样工作的:

  • 在 1. 事务中,文件读取节点没有任何可读取的内容,因为存档目录是空的。因此,来自文件输入的消息 A 被处理。

  • 在 2. 事务中,文件读取节点从 1. 事务中找到消息 A。因此消息 B 刚刚被归档,来自文件读取节点的消息 A 被处理(再次)。