背景:
最近有潜在需求,希望SAP能自动推送异常信息给对应的钉钉用户,和负责钉钉的同事讨论后,确定自动推送工作通知消息,本次仅做研究,为后续工作做技术刺探。
问题描述:
研究钉钉发送工作通知API后,通过官方API Explorer和第三方工具均可以成功调用,不过最大的问题在于Token有效期仅2小时,如果通过SAP PI 调用就需要先解决动态Token的问题。(公司要求SAP对外网仅能通过SAP PI,只有这条路了)
分析钉钉请求结构(https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=ACCESS_TOKEN),需要将Token拼接到请求中,而SAP PI 提供的认证方式,仅Oauth 支持,但是钉钉并没有采用通用的Oauth 认证方式(参数不同,无法使用),这就是最大的问题点。
方案描述:
当你头大的时候,就要想,SAP作为行业解决方案的专家,这种例外情况没考虑到?如果没有,就不能叫专家了。如果有,那就是自己还没有发现,需要求助官网和各路大神了。这不,曲线报国的方案就来了,有两个方案可以实现本需求。
1、开发两个SAP PI接口,第一个接口专门负责获取Token,第二个接口专门负责推送(通过替换拼接到URL中)
2、研究SAP PI的UDF功能,在ESR的message mapping for request 组件中请求Token,而后在
Communication channel for receiver中通过替换拼接到URL中。
关于第一个方案,已经有大神实现了,这里不用赘述,本文中详细讲解第二个方案。
方案细节:
方案中与常规SAP PI的不同点主要有两处:1、UDF功能 2、替换拼接功能。
下面就根据这两个功能点做详细分析:
1、UDF功能

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



