2

我想在流程模型中使用拆分块,以便它创建具有相同参数的传入代理的副本。

我所做的:声明一个函数 SetupCopy(agent, original),输入参数 agent(即副本)和 original(即传入代理)。该函数将相关参数设置为agent.someBooleanParameter = original.someBooleanParameter。该函数在“退出副本:SetupCopy(agent, original)”中的拆分块中调用。

问题:在拆分块的outCopy端口之后,我使用了一个带有设置的selectOutput块选择真输出:如果条件为真:agent.someBooleanParameter我希望这个参数等于原始代理的各个参数。但是,输出块始终将参数评估为 false。

我已经尝试通过设置 On exit(false): System.out.println(agent.someBooleanParameter); 来获取参数控制台的输出。

如果原始代理的参数为真,则控制台上的输出也为真,尽管选择块通过假端口退出。让我很困惑。我的错误是什么?

谁能帮助我如何设置代理复制实例的参数并正确引用参数

谢谢

4

2 回答 2

0

在您完成代理的完整副本之前,似乎触发了 SelectOutput 块的事件。

要验证这一点,只需在这些块之间添加一个队列并检查问题是否仍然存在。

于 2016-06-28T12:39:52.430 回答
0

这是因为在代理副本退出拆分块之前检查了 SeletOutput 块中指定的条件,因此在退出复制代码框中初始化之前。您需要在 Split 块的参数 New agent (copy) 中指定以下 Java 代码,以在检查之前初始化传入代理的副本:

new MyAgent(agent.someBooleanParameter, ...)
于 2016-07-08T14:46:02.700 回答