IBM BPM JS 从另一个工具包调用外部服务(来自依赖)

IBM BPM JS Calling external Service from another Toolkit (from dependency)

我正在使用

  1. 每个外部系统的集成工具包...externalService 定义、服务器注册数据、ENV 指的是要使用的 J2C 信用、数据映射、业务错误处理等。 (业务层 TK ex. TK_SAP)
  2. 用于常见功能,例如日志记录、标记化、 伪化,常见的 http 错误处理我想使用另一个 工具包(传输层的通用实现,例如 TK_COM)。

所以它看起来像这个依赖链:

ProcessApp -> TK_SAP -> TK_COM

有一个带有输入 externalServiceNameoperationName 的 serviceFlow 和一个 serviceFlow 请求 oAuth-token 并使用 [= 调用目标系统23=]externalServiceName, operationName.

问题是 - 当我尝试从 TK_COM 调用 BPMRESTRequest 时,我得到 NullPointerException 因为“externalServiceName”无法解析。

var request = new BPMRESTRequest();
request.externalServiceName = "language-translator-v2";
request.operationName="checkout";
...
var response = tw.system.invokeREST(request);
  1. 是否可以将服务定义存储在另一个 TK(上)中并从 Toolkit-invoker 引用它?
  2. 或者 BPMRESTRequest-Construct 是否有回调说明必须使用哪个 ServiceDefinition 并避免 NPE。
  3. 或者以编程方式调用 Rest 支持环境的另一种方式。

我知道切换层会有帮助(较低 TK 依赖性中的 serviceDefinition),但它不合逻辑:

ProcessApp -> TK_COM -> TK_SAP

答案是:JS-lib 实现。 在 TK_COM 中将通用功能实现为 JS-Server-file 使得从 TK_SAP 调用它会在 TK_SAP 命名空间中实例化 JS 执行上下文,因此所有定义都在 TK_SAP 中外部服务和变量将通过执行 JS 代码访问(实际上由低依赖性工具包提供)