提问者:小点点

Any逻辑为模拟实验的每次迭代导入新的Excel文件


在我的任何逻辑模型中,我的代理从基于Excel文件的数据库表中接收它们的参数。在Excel文件中,每个单元格都存储了自己的代码,因此每次打开文件时,单元格值都会发生变化。

我希望在我的模型每次自动运行时,Excel文件会随着数据库表的变化而再次读取(即代理的参数值发生变化)。在“参数变化实验”中,我在“迭代后”下输入了这段代码:

String tempString = excelFile_DatabasisLinks.getCellStringValue(1, rowCounter, 1);
ModelDatabase modelDB = getEngine().getModelDatabase();
Database myNewFile = new Database(this, "rohdaten2", tempString);
modelDB.importFromExternalDB(myNewFile.getConnection(), "Rohdaten", "rohdaten", true, false);
rowCounter += 1;

我有这个任何逻辑帮助页面的代码。使用变量来更改文件(即文件)的路径似乎可以工作(任何逻辑都不会抛出错误)。

在当前使用的虚拟模型中,代理在源处接收其参数。
在接收器处,参数值通过集合写入另一个excel(结果)文件。

我在我的数据文件中放入了明显的模式,以查看数据是否发生变化,但我总是在结果文件中收到相同的excel文件。
我读到any逻辑将excel表复制到其临时文件中,以使模拟运行更快。我希望上面的代码是一个解决方法,但事实并非如此。
我感谢任何关于如何使此工作的建议!


共1个答案

匿名用户

我找不到上面的代码有什么问题或者如何让它工作。
但是,我发现了一个使用“excelFile”-Block的解决方法。
在主代理(所有其他代理所在的代理)中,在“启动时”中的代理操作中:

excelFile.readFile();

确保每次运行前更新excel文件。参数是通过

agent.set_<parametername>(excelFile.getCellBooleanValue( sheet number, row number, column number)

源中的“退出”。
我希望这有助于解决类似问题的每个人。