接前面几篇 Automation Script 文章,今天看看 Automation Script 之间怎么互相调用。
这里创建两个 Automation Script,第一个使用 Automation Script 查询数据库获取 workorder 列表,同时使用两个参数pageNum和pageSize来实现翻页,第二个 Automation Script 通过 service.invokeScript 调用第一个 Automation Script。
Automation Script 代码如下(这里把脚本命名为 GETWOS):
load('nashorn:mozilla_compat.js');
importPackage(Packages.psdi.server);
importPackage(Packages.psdi.security);
importPackage(Packages.java.sql);
// var pageNum = request.getQueryParam('pageNum');
// var pageSize = request.getQueryParam('pageSize');
var mxServer = MXServer.getMXServer();
var connKey = mxServer.getSystemUserInfo().getConnectionKey();
var conn = mxServer.getDBManager().getConnection(connKey);
var wos = [];
var stmt = conn.createStatement();
var rs = stmt.executeQuery('select * from workorder order by WORKORDERID');
var i = 0;
while(rs.next()) {
var wo = {};
if (i < (pageNum - 1) * pageSize) {
continue;
}
if (i >= pageNum * pageSize) {
break;
}
i++;
wo.wonum = rs.getString('WONUM');
wo.workorderid = rs.getString('WORKORDERID');
wo.description = rs.getString('DESCRIPTION');
wos.push(wo);
}
rs.close()
stmt.close()
conn.close()
var response = JSON.stringify(wos);
其中:
Automation Script 代码如下:
load('nashorn:mozilla_compat.js');
importPackage(Packages.psdi.server);
importPackage(Packages.psdi.security);
importPackage(Packages.java.util);
var ctx = new HashMap();
ctx.put("pageNum", "1");
ctx.put("pageSize", "10");
service.invokeScript("GETWOS", ctx);
var jsonResp = ctx.get("response");
var responseBody = jsonResp;
其中:
curl --request GET --url '<base_url>/maximo/api/script/test?apikey=<api_key>&lean=1' --header 'content-type: application/json' --header 'user-agent: vscode-restclient'