Anylogic:如何向特定代理发送订单?

Anylogic: how to send order to specific agent?

我是 Anylogic 的新手,我有这些代理人:

对于每个不同的终端(我有 5 个),每个客户的订单率都不同。因此,我(在客户内部)为每个终端的订单率创建了五个时间表。现在我想在 Customer 中创建一个事件来创建订单(每个终端一个事件)。我现在有这个用于名称为 terminalA 的终端:

Order order = new Order(this, terminal.name("terminalA"));
Truck truck = getNearestAgentByRoute(filter(main.trucks,
            v -> v.inState(Truck.Free)));
if (truck != null)          
    send(order, truck);

但是,terminal.name("terminalA") 部分不起作用,因为它无法解析为变量。我如何为每个终端创建订单并告诉 Anylogic 它应该为哪个终端(使用什么名称)创建订单?

在此先感谢您的帮助!

亲切的问候, 艾拉

您不需要使用 terminal.name("terminalA"),如果您已将该特定代理命名为 terminalA,则只需使用 terminalA;否则你需要通过索引访问它们,例如 main.terminals(0)。 Order 代理中的参数类型应设置为 Terminal。例如,下面我创建了一个订单代理,其中包含许多不同的参数和变量,每个参数和变量都有一个自定义类型。

编辑。您还需要确保您的代理列表不为空: