0

在 Anylogic 离散事件模型中,我试图根据我创建的数据库表设置到达率和每次到达的代理数量。该表包含一列表示材料进入的日期和时间,然后是分配给每种材料的唯一代码和订单号。每种材料只有一个代码,但每天都会分配几个订单号。此外,每天同时收到多种材料。当我设置源以从表中读取数据时,我在运行时收到错误消息:模型创建期间出错: 图片说明在这里 root:不是唯一的数据库值!

我在 Anylogic 上找不到任何解决此错误的帮助。

4

1 回答 1

0

我向 Any Logic 支持团队提出了同样的问题,得到了以下答案。

参数“到达日期”需要指定包含到达日期的表格列。然后,“源”块将逐行读取具有列的表,并在当前行的日期生成一个代理。当您指定具有特定条件的数据库引用时,“源”块将生成一个匹配该条件的代理。您会收到错误,因为表中匹配条件的行不止一行。为了实现您的任务,您可以基于您的表创建一个视图,该视图具有类似于数据库引用的定义:

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'

之后,只需告诉“来源”块根据视图中的到达日期生成代理。

希望这对您也有帮助。

于 2017-04-18T05:40:21.153 回答