如何在 Gams 中 运行 来自 API Java 的 gms 模型并在文件中设置包含数据的文件夹

How to run a gms model from API Java in Gams and set a folder with data in files

我正在尝试通过 API Java 在 GAMS 中执行 GMS 模型。当我直接从 Gams Studio 执行该模型时,它运行良好。但是当我 运行 通过 API 模型时,我得到了很多错误。 我已经搜索过,我认为我需要将输入数据添加到作业或工作区(我不知道他们中的哪些人需要知道输入数据)。我有一个文件夹,里面有很多包含数据的文件,当我 运行 GMS 模型时,这些文件是从 GAMS Studio 处理的。

我想我也需要在Java Api中添加这些文件,但我不知道如何添加文件夹或是否需要一个一个添加以及如何做它。

我的代码很简单:

        GAMSWorkspace workspace = new GAMSWorkspace();
        workspace.setDebugLevel(DebugLevel.KEEP_FILES);
        GAMSJob jobGams = workspace.addJobFromFile("fileModelGms");
        jobGams.run();

我已经用 Lutz 的用户助手解决了这个问题。我需要在模型使用的输入中包含一个目录。

这是我的代码,每行注释一行,以了解 API Gams 的工作原理。我也使用了一个特定的工作区,因为 API 在您 运行 一个新作业时会在临时文件中创建一个文件夹。我确实也将 GDX 用于数据库 运行 我的模型。

//specific workspace information is created example: C:/Desktop/Workspace
GAMSWorkspaceInfo workspaceInfo = new GAMSWorkspaceInfo();
workspaceInfo.setWorkingDirectory("specificPathWorkspace");
//A new workspace is created with workspaceInfo.
GAMSWorkspace workspace = new GAMSWorkspace(workspaceInfo);
workspace.setDebugLevel(DebugLevel.KEEP_FILES);
//Options where you're going to set input file data.
GAMSOptions options = workspace.addOptions();
//Set path with input Data example: C:/Desktop/InputDate
options.IDir.add("PathWithInputData");
//Using a database where is data to be processed example: db.gdx
GAMSDatabase gdxdb = workspace.addDatabaseFromGDX("db.gdx");
// Creating a JOB to execute the model.
GAMSJob jobGams = workspace.addJobFromFile(entradasModeloGamsDTO.getPathModeloGams());
//Running model
jobGams.run(options,gdxdb);