Anylogic,根据一定条件从池中抢占资源

问题描述

问题之前已被提出和回答,请参阅Anylogic - dynamic specification of resources to seize。但是,stackoverflow 上的多个巨魔要求我再次提出同样的问题,无论如何.. - 因为在那里问它被视为“答案”而不是“问题”。

Anylogic 8.7.2.
我创建了一个资源池 myworkers
代理类型workers
打开 workers 代理并添加变量 offloadBay(或参数,无所谓),INT,default value 0。 在 main 中,我使用 seize 块从该池中获取 4 个资源,但它们需要满足条件 offloadBay == 0。 在 seize 块中,我选择 Customise resource choice == true ; Recource choice condition = (unit.offloadBay == 0)。 在运行项目时,我收到错误 - “offloadBay 无法解析或不是字段”。

似乎对关键字 unit 的引用实际上并未引用资源单元 - 在引用 unit's 时,没有任何 unit. 参数、变量、函数等可供调用

请建议我做错了什么?或者,如何根据资源的特定条件或属性从 ResourcePool 中选择资源? (可根据要求提供演示项目,请告知发送至何处

解决方法

尝试强制执行资源类型。发生这种情况是因为您处于 seize 块中,并且当您使用“单元”时,您可能指的是不同的资源代理类型。并非所有这些都可能具有“offloadBay”变量。所以,使用:

((Worker)unit).offloadBay == 0

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...