首页 > 解决方案 > 如何在任何逻辑中使用“等待”?

问题描述

我有一个在生产线末端创建的库存代理。我的产品以其型号为特征。我正在尝试创建一个逻辑,以便在将产品交付给客户时从该库存代理中取出产品。此交付由 Excel 表控制,我通过 SQL 代码获取信息。但是,我找不到正确的代码来取出要交付的产品。我的代理群体称为 ProdutoStock,它位于我的主屏幕中。

我已经尝试过:Main.remove_ProdutoStock()但我无法弄清楚我需要这个函数的参数,因为我必须从代​​理中取出特定数量的代理以及特定模型。

所以,我决定创建一个等待块并使用 free 函数来释放我想要的特定代理,main.waiting_delivery.free()但我也无法找出这个函数的必要参数。

有人知道我如何从我的代理/生产线中取出我需要为我的客户交付的产品(考虑到质量和型号)吗?此代码未输入到我的主屏幕中。

标签: anylogic

解决方案


free 方法的参数是代理本身。

所以你必须做main.waiting_delivery.free(yourAgent);

如果要释放最后一个进入等待块的代理:

if(main.waiting_delivery.size()>0)
    main.waiting_delivery.free(main.waiting_delivery.get(0));

如果您想在特定条件下释放特工

List <YourAgent> theAgents=findAll(main.yourAgentPopulation,a->a.condition==true);
for(YourAgent a : theAgents){
    main.waiting_delivery.free(a);
}

推荐阅读