REST查找UDF异常:无法解析消息内容以添加接口元素

2020-08-27 02:17发布

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

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


专家们,

我在消息映射中使用REST查找UDF在将主数据传递到实际URL之前获取令牌,但不幸的是,它给出了错误。 我在其他开发中使用了相同的功能,效果很好。

 AbstractTrace跟踪= container.getTrace();

 字符串令牌="";
 尝试{

//实例调用服务的渠道。
 频道频道= LookupService.getChannel(" BC_XXXXX"," CC_REST_XXXXX_AUTH_RCV");
 SystemAccessor访问器= LookupService.getSystemAccessor(channel);


//XML的Request消息。 这是查询服务
 字符串RESTxml =" <?xml version = \" 1.0 \" encoding = \" UTF-8 \"?>" +" <用户名> 12345  <密码> 123444 ";


 InputStream inputStream =新的ByteArrayInputStream(RESTxml.getBytes());
 XmlPayload有效负载= LookupService.getXmlPayload(inputStream);
 有效负载RESTOutPayload = null;


//响应将是有效负载。 对此进行解析以获取响应字段。
 RESTOutPayload = accessor.call(有效载荷);


/*解析RESTPayload以获取REST响应。 转换率在字段名称ConversionRateResult下可用*/
 InputStream inp = RESTOutPayload.getContent();
 DocumentBuilderFactory工厂= DocumentBuilderFactory.newInstance();
  
/*从输入XML创建DOM结构*/
 DocumentBuilder builder = factory.newDocumentBuilder();
 文档document = builder.parse(inp);


/*从节点列表中获取令牌*/
 NodeList列表= document.getElementsByTagName(" id_token");
 节点node = list.item(0);
 if(node!= null){
 节点= node.getFirstChild();
 if(node!= null){
 令牌= node.getNodeValue();


/*动态配置声明*/
 DynamicConfiguration conf =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);


 DynamicConfigurationKey键= DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/REST","令牌");
 conf.put(key,Token);


 }


 }


 } catch(Exception e){


 trace.addWarning(" Error" + e);  }


 trace.addInfo("服务执行成功");


 返回"";
 

(46.2 kB)

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

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


专家们,

我在消息映射中使用REST查找UDF在将主数据传递到实际URL之前获取令牌,但不幸的是,它给出了错误。 我在其他开发中使用了相同的功能,效果很好。

 AbstractTrace跟踪= container.getTrace();

 字符串令牌="";
 尝试{

//实例调用服务的渠道。
 频道频道= LookupService.getChannel(" BC_XXXXX"," CC_REST_XXXXX_AUTH_RCV");
 SystemAccessor访问器= LookupService.getSystemAccessor(channel);


//XML的Request消息。 这是查询服务
 字符串RESTxml =" <?xml version = \" 1.0 \" encoding = \" UTF-8 \"?>" +" <用户名> 12345  <密码> 123444 ";


 InputStream inputStream =新的ByteArrayInputStream(RESTxml.getBytes());
 XmlPayload有效负载= LookupService.getXmlPayload(inputStream);
 有效负载RESTOutPayload = null;


//响应将是有效负载。 对此进行解析以获取响应字段。
 RESTOutPayload = accessor.call(有效载荷);


/*解析RESTPayload以获取REST响应。 转换率在字段名称ConversionRateResult下可用*/
 InputStream inp = RESTOutPayload.getContent();
 DocumentBuilderFactory工厂= DocumentBuilderFactory.newInstance();
  
/*从输入XML创建DOM结构*/
 DocumentBuilder builder = factory.newDocumentBuilder();
 文档document = builder.parse(inp);


/*从节点列表中获取令牌*/
 NodeList列表= document.getElementsByTagName(" id_token");
 节点node = list.item(0);
 if(node!= null){
 节点= node.getFirstChild();
 if(node!= null){
 令牌= node.getNodeValue();


/*动态配置声明*/
 DynamicConfiguration conf =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);


 DynamicConfigurationKey键= DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/REST","令牌");
 conf.put(key,Token);


 }


 }


 } catch(Exception e){


 trace.addWarning(" Error" + e);  }


 trace.addInfo("服务执行成功");


 返回"";
 

(46.2 kB)
付费偷看设置
发送
3条回答
骆驼绵羊
1楼 · 2020-08-27 03:09.采纳回答

嗨!

首先,您的请求XML不包含根元素。

关于Evgeniy。

打个大熊猫
2楼-- · 2020-08-27 02:55

还有一点, REST端点接受XML或JSON吗?

另一点,在调用通道时,您应按以下方式提供方-

String party =""; //不能将空值从Directory传递到映射参数。
Channel RESTchannel = LookupService.getChannel(party,service,channel);

不像下面那样会导致错误

 Channel channel = LookupService.getChannel(" BC_XXXXX"," CC_REST_XXXXX_AUTH_RCV"); 

也可以尝试邮递员 首先测试的工具。

谢谢

Sugata

Doze时光
3楼-- · 2020-08-27 03:15

您好叶甫基尼

谢谢您的投入。 我已经通过以json格式传递输入并在通道CC_REST_XXXXX_AUTH_RCV中进行更改来成功获得令牌,因为接收方仅接受Json。

字符串RESTinput =" {\"用户名\":\" 12345 \",\"密码\":\" 123444 \"}";

您好 Sugata

这对我来说是正常的,在传递正确的数据后我没有收到错误消息。

 Channel channel = LookupService.getChannel(" BC_XXXXX"," CC_REST_XXXXX_AUTH_RCV");
 SystemAccessor访问器= LookupService.getSystemAccessor(channel); 

最好

Ram Binnari

一周热门 更多>