点击此处---> 群内免费提供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)
嗨!
首先,您的请求XML不包含根元素。
关于Evgeniy。
还有一点, REST端点接受XML或JSON吗?
另一点,在调用通道时,您应按以下方式提供方-
String party =""; //不能将空值从Directory传递到映射参数。
Channel RESTchannel = LookupService.getChannel(party,service,channel);
不像下面那样会导致错误
也可以尝试邮递员 首先测试的工具。
谢谢
Sugata
您好叶甫基尼
谢谢您的投入。 我已经通过以json格式传递输入并在通道CC_REST_XXXXX_AUTH_RCV中进行更改来成功获得令牌,因为接收方仅接受Json。
字符串RESTinput =" {\"用户名\":\" 12345 \",\"密码\":\" 123444 \"}";
您好 Sugata ,
这对我来说是正常的,在传递正确的数据后我没有收到错误消息。
最好
Ram Binnari
一周热门 更多>