Maximo 中 Automation Script 之间调用可以通过下面几种方式实现
invokeScript(script_name: String, context: Map<String, String>): void
invokeScript(script_name: String): Map<String, Object>
invokeScript(script_name: String, function_name: String, function_arguments: Object[]): Object
方法一
MYLIB
库脚本中定义两个函数,并且在库函数内根据传递的参数调用库函数
function func1() {
return 'hello world';
}
function func2(name) {
return 'hello ' + name;
}
func1();
func2(name);
MYTEST
调用脚本使用 invokeScript 方法调用库脚本,并通过一个Map传递参数
load('nashorn:mozilla_compat.js');
importPackage(Packages.java.util);
var ctx = new HashMap();
ctx.put("name", "world");
service.invokeScript("MYLIB", ctx);
方法二
MYLIB
库脚本中定义两个函数
function func1() {
return 'hello world';
}
function func2(name) {
return 'hello ' + name;
}
MYTEST
调用脚步使用 invokeScript 方法导入库脚本,然后使用方法调用的方式调用库函数
var mylib = service.invokeScript('MYLIB');
mylib.func1();
mylib.func2('world');
方法三
MYLIB
库函数中只是声明了函数,没有调用,也没有导出。但是 在创建 Automation Script 的时候需要选中 “Allow Invoking Script Functions” 选项。
function func1() {
return 'hello world';
}
function func2(name) {
return 'hello ' + name;
}
MYTEST
调用脚步通过 invokeScript 方法调用库脚本,然后通过传递函数名和参数的方式调用库函数
service.invokeScript('MYLIB', 'func1', []);
service.invokeScript('MYLIB', 'func2', ['world']);