在Anylogic离散事件模型中,我试图根据我创建的数据库表设置到达率和每次到达的代理数量。该表包含材料进入的日期和时间列,然后是分配给每种材料的唯一代码和订单号。每种材料只有一个代码,但每天收到几个订单号。此外,每天同时收到多种材料。当我设置Source来从表中读取数据时,我在运行时遇到错误: 模型创建时出错: 根: 不是唯一的数据库值!
我无法找到解决此错误的Anylogic的任何帮助。
答案 0 :(得分:0)
我向Any Logic支持小组提出了同样的问题并得到了以下答案。
参数"到达日期"需要指定包含到达日期的表列。然后,一个"来源" block将逐行读取包含列的表,并在当前行的日期生成一个代理。 当您指定具有特定条件的数据库引用时," Source" block将生成一个匹配条件的代理。您收到错误,因为有多个行匹配表中的条件。 为了实现您的任务,您可以根据您的表创建一个视图,该视图的定义类似于数据库引用:
SELECT \all the columns you need for your query
tabelle1.all_id,
tabelle1.date,
tabelle1.maschine
FROM \the reference table
tabelle1
WHERE \with the WHERE you can specify which rows should generate an agent
tabelle1.maschine = 'M31'
之后,只需告诉"来源"阻止根据视图的到达日期生成代理。
希望这对你也有帮助。