使用Groovy在SAP CPI中重用SAP PI中的Java映射

2020-08-25 00:40发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

是否可以通过groovy调用CPI​​中的PI重用较旧的Java映射?

我想在CPI的PI/PO中重用我的旧Java映射。

我已将jar文件导入CPI,并且试图从groovy中调用映射类。

这是我的常规代码;

导入com.sap.gateway.ip.core.customdev.util.Message;

import java.util.HashMap;

导入Tester.TestBO; //从jar导入Java类

def消息processData(消息)

{

//正文为字符串def body = message.getBody(java.lang.String)为String;

def javaMapping = new TestBO(); //参考jar类

def结果= javaMapping.transform(body); //调用transform方法

message.setBody(result); //设置主体

返回消息; //返回应映射的消息

}

与此相关的是以下错误;

"没有方法签名:Tester.TestBO.transform()适用于参数类型:(java.lang.String)值;(我要映射的XML结构)"

任何帮助将不胜感激

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

是否可以通过groovy调用CPI​​中的PI重用较旧的Java映射?

我想在CPI的PI/PO中重用我的旧Java映射。

我已将jar文件导入CPI,并且试图从groovy中调用映射类。

这是我的常规代码;

导入com.sap.gateway.ip.core.customdev.util.Message;

import java.util.HashMap;

导入Tester.TestBO; //从jar导入Java类

def消息processData(消息)

{

//正文为字符串def body = message.getBody(java.lang.String)为String;

def javaMapping = new TestBO(); //参考jar类

def结果= javaMapping.transform(body); //调用transform方法

message.setBody(result); //设置主体

返回消息; //返回应映射的消息

}

与此相关的是以下错误;

"没有方法签名:Tester.TestBO.transform()适用于参数类型:(java.lang.String)值;(我要映射的XML结构)"

任何帮助将不胜感激

谢谢

付费偷看设置
发送
2条回答
95年老男孩
1楼-- · 2020-08-25 01:13

嗨,戴尔,

 def结果= javaMapping.transform(body); //调用transform方法

" body"是类型为 String 的变量,而方法transform的签名具有类型为 TransformationInput 的参数,而另一个类型为 TransformationOutput

通常,我采用方法转换的代码(在某些情况下,在方法执行中也通常使用方法转换来调用),并在groovy脚本中对其进行如下修改:

  1. 将" body"转换为类型为 InputStream
  2. 的变量
  3. 根据常规语法调整JM代码
  4. 将JM(通常是 OutputStream 对象)的结果转换回 String 以设置新主体

最终,您将开发出如下代码序列:

String-> InputStream-> Document-> [处理/编码]-> Document-> OutputStream-> String

问候。

JT

代楠1984
2楼-- · 2020-08-25 01:25

嗨,戴尔,

您对此有解决方案,因为我也在寻找相同的解决方案。

一周热门 更多>