前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maximo Automation Script之间调用

Maximo Automation Script之间调用

作者头像
kongxx
发布2024-05-17 09:13:22
720
发布2024-05-17 09:13:22
举报

接前面几篇 Automation Script 文章,今天看看 Automation Script 之间怎么互相调用。

这里创建两个 Automation Script,第一个使用 Automation Script 查询数据库获取 workorder 列表,同时使用两个参数pageNum和pageSize来实现翻页,第二个 Automation Script 通过 service.invokeScript 调用第一个 Automation Script。

第一个Automation Script

Automation Script 代码如下(这里把脚本命名为 GETWOS):

代码语言:javascript
复制
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);

其中:

  1. pageNum 和 pageSize 不用声明,并且也不需要通过 request 对象的方法来获取,因为是通过另外一个 Automation Script 来调用的,在另一个 Automation Script 中会通过上下文来传递这两个参数,这里直接使用就可以了。
  2. 这个 Automation Script 最后会返回一个json。

第二个Automation Script

Automation Script 代码如下:

代码语言:javascript
复制
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;

其中:

  1. 使用一个Map来保存传递给被调用 Automation Script 的参数,这里就是pageNum和pageSize;
  2. 使用service.invokeScript(scriptName, context) 调用其它 Automation Script;
  3. 最后从context中获取执行结果;

验证

代码语言:javascript
复制
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'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一个Automation Script
  • 第二个Automation Script
  • 验证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档