CPI:通过OAuth访问MessageProcessingLogs OData API

2020-08-16 20:01发布

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

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


专家们,

我正在研究用于生成CPI监视报告的POC,我需要通过OAuth访问MessageProcessingLogs OData API。

我已关注有关OAuth设置的博客: https://blogs.sap.com/2019/02/14/cloud-integration-inbound-http-connections-using-oauth-client-credentials-grant/,并且在使用POSTMAN工具进行测试时效果很好。

我已将OAuth凭据存储在安全资料中,并已完成OData适配器配置。 部署iFlow时。 它因" com.sap.gateway.core.ip.component.odata.exception.OsciException :: 401:HTTP/1.1 "错误而失败。

我尝试取消选中受CSRF保护的选项,并多次检查了我的"客户端机密",并且它还分配了 ESBMessaging.send 角色。

任何指针都会有很大帮助。

此致

Pavan G

OData适配器配置:

(54.9 kB)

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

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


专家们,

我正在研究用于生成CPI监视报告的POC,我需要通过OAuth访问MessageProcessingLogs OData API。

我已关注有关OAuth设置的博客: https://blogs.sap.com/2019/02/14/cloud-integration-inbound-http-connections-using-oauth-client-credentials-grant/,并且在使用POSTMAN工具进行测试时效果很好。

我已将OAuth凭据存储在安全资料中,并已完成OData适配器配置。 部署iFlow时。 它因" com.sap.gateway.core.ip.component.odata.exception.OsciException :: 401:HTTP/1.1 "错误而失败。

我尝试取消选中受CSRF保护的选项,并多次检查了我的"客户端机密",并且它还分配了 ESBMessaging.send 角色。

任何指针都会有很大帮助。

此致

Pavan G

OData适配器配置:

(54.9 kB)
付费偷看设置
发送
4条回答
clever101
1楼-- · 2020-08-16 20:07

嗨,Pavan,

能否在维护OAuth凭据的同时尝试以下设置。

希望这会有所帮助!

感谢和问候,

Praveen T

亦是此间程序员
2楼-- · 2020-08-16 20:25

Praveen Tirumareddy

发布于

感谢您的回复。

我尝试了此选项。 但是没有运气。

失败,出现以下错误:

com.sap.gateway.core.ip.component.odata.exception.OsciException:检索授权标头时出错。 状态码:400; 原因:{" error":" invalid_scope"," error_description":"范围超出了为客户端注册的范围。"}

此致

Pavan G

My梦
3楼-- · 2020-08-16 20:09

嗨,Pavan,

请检查邮递员控制台,检查发出请求时设置的标头是什么。

您 可以相应地进行更改。

希望如此!

感谢和问候,

Praveen T

路亽曱_Ryan
4楼-- · 2020-08-16 20:21

Hi

我使用HTTP适配器并检查了最近30分钟的邮件处理情况

地址: https://xxx.hci .ap1.hana.ondemand.com/api/v1/MessageProcessingLogs

查询:$ {header.QUERY}

我在下面的常规脚本中形成了查询。

它正在提供预期的输出。

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

import java.util.HashMap;

导入静态java.util.Calendar。*;

def消息processData(消息){

def localTimeZone = TimeZone.getTimeZone('Australia/Melbourne');

def cal = Calendar.instance; 定义日期=校准时间; def var1 ="";

//标题

def dateFormat ='yyyy-MM-dd \'T \'HH:mm:ss';

使用(groovy.time.TimeCategory)

{

var1 = date-30.minutes;

}

def strdate = var1.format(dateFormat)

def enddate = date.format(dateFormat)

def query =" \ $" +" inlinecount = allpages&" +" \ $" +" filter = Status%20eq%20'FAILED'and%20LogStart%20gt%20datetime'" + strdate +"'%20and% 20LogEnd%20lt%20datetime'" +结束日期+"'%20and%20IntegrationFlowName%20eq%20'Iflow名称'"

message.setHeader(" QUERY",查询);

def messageLog = messageLogFactory.getMessageLog(message); messageLog.addAttachmentAsString(" FileName:",query," text/plain");

返回消息;

}

然后我使用流程调用并传递消息ID以获取详细的错误信息。

谢谢

Harsha

一周热门 更多>