假设我有以下供应链模型(参见模型model1
)代理通过定义的网络相互通信,通过端口相互发送消息。例如,通过客户的端口为客户生成需求,并作为"订单"发送。上游设施。上游设施发送"货物";下游设施并在每个节点收集统计信息。
该模型似乎适用于2梯队,但当一个设施按需要连接到下游的两个设施时,我得到以下错误"代理不能同时在几个流程图中。至少有两个流程图块存在冲突。看到错误。根据描述,似乎代理"装运"。被同时送到两个设施
我的问题是如何避免这种冲突?
每个节点的更多信息:
- 代理商的"orders"通过每个节点的端口输入,并捕获为enter。取(msg),按照流程图,退出代理"发货";每个目的地。每个代理商的"订单"有双金额和港口目的地。参见设施节点
有什么建议吗?
您必须确保您没有将代理发送到已经在另一个流程图中的流程图中,正确。这是糟糕的模型设计。
调试和查找根源问题的一种方法是:在发送任何消息代理之前,检查currentBlock()!=null
并跟踪代理和块。同时暂停模型。
你可以看到你想(重新)发送的代理已经在其他流程图块。
您可能发送的消息代理仍然在其他地方。
PS:对于消息,您可能根本不想使用流程图,而是使用正常的消息传递。这避免了这些麻烦,因为您可以轻松地向多个代理发送相同的消息。查看示例代理模型中消息传递是如何完成的