Java 符合等待对象特定条件的Anylogic释放代理

Java 符合等待对象特定条件的Anylogic释放代理,java,simulation,anylogic,Java,Simulation,Anylogic,我有一个生产某些产品的工厂,在这个工厂里,基本上有三种不同的产品。我试图编写一个动作图,这样,如果某个产品有一个具有一定数量的进货订单,那么该产品将从一个“等待”对象中释放,然后释放的产品将进入代表生产的延迟对象 该产品是一个带有名称参数的代理,有三种产品a、B、C。有没有办法实现这一点? 总之,有三种产品都保存在一个等待对象中。我想实现这样的一种方法,如果有数量为3的产品A的订单,那么产品A的3将从Wait对象中释放 我有两种类型的产品,A和B。所以在配送中心,产品会一直保存到发布。产品代理

我有一个生产某些产品的工厂,在这个工厂里,基本上有三种不同的产品。我试图编写一个动作图,这样,如果某个产品有一个具有一定数量的进货订单,那么该产品将从一个“等待”对象中释放,然后释放的产品将进入代表生产的延迟对象

该产品是一个带有名称参数的代理,有三种产品a、B、C。有没有办法实现这一点?
总之,有三种产品都保存在一个等待对象中。我想实现这样的一种方法,如果有数量为3的产品A的订单,那么产品A的3将从Wait对象中释放

我有两种类型的产品,A和B。所以在配送中心,产品会一直保存到发布。产品代理在配送中心流程中使用字符串参数“type”。订单代理在订单流中使用字符串参数“ProductType”和整数参数“Quantity”。也就是说,订单包含有关订购的产品以及订购的产品数量的信息


目前,我是这样编码的,但它当然不能在“池”中仅找到一个产品。。如果我这样做,我需要为每个产品都有一个单独的等待对象,但我希望避免使用它。

您需要创建一个订单代理,指定订单信息。。。该订单将有一个名为实例numProductA的参数,该参数说明该订单有多少产品

然后你可以为你的订单代理做些什么

List <Product> productsA=findAll(waitBlock,w->w.product.type.equals("A")).subList(0,agent.numProductsA);
for(Product p : productsA){
     p.order=agent;//You will probably need to associate that product to that order so you can know later in the flow.
     waitBlock.free(p);
}
List productsA=findAll(waitBlock,w->w.product.type.equals(“A”)).subList(0,agent.numProductsA);
对于(产品p:productsA){
p、 order=agent;//您可能需要将该产品与该订单关联,以便稍后在流程中了解。
免费(p);
}

在这里,我假设你的等待区总是有足够的产品。。。如果不是这样的话,您需要实现额外的逻辑,根据具体情况,这些逻辑可能会更加复杂。

Hi!谢谢实际上我忘了说我已经有一个单独的订单流程,其中包含另一个等待块。这里有订单,订单包含产品名称和产品数量。订单停留在另一个等待区,如果完成,将在该等待区释放订单。因此,总体行动图逻辑是,它首先检查产品在发布前停留的等待区中的数量,如果数量不足,则首先发送可用数量,剩余数量触发生产。因此,我猜在这种情况下,我可以首先声明一个整数,比如int deliverQuantity=orderQuantity-StockA,并将其设置为:List productsA=findAll(waitBlock,w->w.product.type.equals(“A”))。子列表(0,agent.deliverQuantity)您好,我尝试了代码,并给出了错误“产品无法解析或不是字段”以及“代理无法解析为变量”我目前有带类型参数的产品代理和带数量和名称参数的订单代理。我在检查股票后使用行动图。订单有它自己的等待块,产品保存在一个单独的等待对象中。有一个事件处理订单处理的动作图,订单处理有一个索引。此索引上升到订单的等待对象的大小。所以我尝试的是以下内容:if(order.get(index.Product=“A”){List productsA=findAll(db,w->w.Product.type.equals(“A”)).subList(0,agent.Quantity);for(Product p:productsA){db.free(p);}order.free(order.get(index));}。db是产品的等待对象的名称。我想我在芬德尔的部分搞砸了,但我不知道在哪里。。你能给我一些建议吗?提前非常感谢!老实说,我需要看看你的模型。。。很明显,我使用的产品假设你们称你们的代理类型产品,但若你们并没有,我不可能猜测。。。我很懒得在这里玩猜谜游戏。。。因此,您要么提供所需的所有信息,要么共享模型,要么接受自己的想法。。假设我是世界上最重要的人,15分钟的咨询将花费你一生的积蓄。。。为了让这15分钟变得有意义,你会怎么做?为了优化这15分钟,你将如何准备你的问题。。。