ABAP - SAP与企业微信集成

  • 最近接到一个SAP直接给企业微信推送消息的需求,说实话之前一直没接触过,脑袋空空的,最终通过在百度搜索案例成功解决了,百度虽然一直被诟病,但却无法否认它的神奇。
  • 实现效果

  • 实现思路:从需求出发,SAP给企业微信推送消息,其本质上是SAP调用企业微信对外发布的API,按照这个思路去找企业微信的API就好了。
  • 1.获取企业内部开发>服务端API>开发指南>获取access_tokenicon-default.png?t=N7T8https://developer.work.weixin.qq.com/document/path/910392.企业内部开发>服务端API>消息推送>发送应用消息icon-default.png?t=N7T8https://developer.work.weixin.qq.com/document/path/90236 
  • 开发技巧
  1. 获取access_token请求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=企业ID&corpsecret=SECRET;两个参数企业ID和SECRET可以去找企业微信管理员的同事获取,拿到两个参数可以在postman测试;
  2. 根据第一步获取的ACCESS_TOKEN再次调用企业微信API发送应用消息;请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN


  • ABAP 代码
    DATA lv_get_url   TYPE string.
    DATA lv_post_url  TYPE string.TYPES:BEGIN OF ty_get_receive,errcode      TYPE i,errmsg       TYPE string,access_token TYPE string,expires_in   TYPE i.
    TYPES:END OF ty_get_receive.DATA ls_get_receive TYPE ty_get_receive.TYPES:BEGIN OF ty_content,content TYPE string.
    TYPES:END OF ty_content.TYPES:BEGIN OF ty_post_request,touser                   TYPE string,msgtype                  TYPE string,agentid                  TYPE i,text                     TYPE ty_content,safe                     TYPE i,enable_id_trans          TYPE i,enable_duplicate_check   TYPE i,duplicate_check_interval TYPE i.
    TYPES:END OF ty_post_request.DATA ls_post_request TYPE ty_post_request.TYPES:BEGIN OF ty_post_receive,errcode TYPE i,errmsg  TYPE string,msgid   TYPE string.
    TYPES:END OF ty_post_receive.DATA ls_post_receive TYPE ty_post_receive.START-OF-SELECTION.lv_get_url = `https://qyapi.weixin.qq.com/cgi-bin/gettoken?` &&`corpid=企业ID` &&`&corpsecret=企业应用Secret`.ls_post_request-text-content = |外购产品同步销售订单通知:\n|&& |{ sy-datum DATE = ISO } { sy-uzeit TIME = ISO }\n|&& |1234567890|&& |采购订单没有同步销售订单,请知悉! |."设置传输内容ls_post_request-touser = `8073|404|613|646`.ls_post_request-msgtype = `text`.ls_post_request-agentid = 1000061.ls_post_request-safe = 0.ls_post_request-enable_id_trans = 0.ls_post_request-enable_duplicate_check = 0.ls_post_request-duplicate_check_interval = 0.*** 第一步:获取access_token请求cl_http_client=>create_by_url( EXPORTING url    = lv_get_urlIMPORTING client = DATA(io_http_client) ).io_http_client->request->set_content_type( content_type = 'application/json; charset=utf-8' ).io_http_client->request->set_method( if_http_request=>co_request_method_get ).io_http_client->send( EXCEPTIONS http_communication_failure = 1http_invalid_state         = 2  ).IF sy-subrc NE 0.io_http_client->get_last_error( IMPORTING message = DATA(lv_message) code = DATA(lv_code) ).CONCATENATE '获取access_token失败原因:' lv_message INTO lv_message.ENDIF.io_http_client->receive( EXCEPTIONS http_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3 ).IF sy-subrc EQ 0.DATA(lv_get_res) = io_http_client->response->get_cdata( ).ELSE.io_http_client->get_last_error( IMPORTING message = DATA(lv_msg) code = DATA(lv_code1) ).CONCATENATE '企业微信服务器响应失败原因:' lv_msg INTO lv_msg.ENDIF."将Json报文转换成SAP结构/ui2/cl_json=>deserialize( EXPORTING json = lv_get_respretty_name = /ui2/cl_json=>pretty_mode-camel_caseCHANGING data = ls_get_receive ).IF ls_get_receive-errmsg NE `ok`.MESSAGE '获取access_token失败' TYPE 'E'.ENDIF.*** 第二步:发送到企业微信CLEAR:io_http_client.lv_post_url = `https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=` &&ls_get_receive-access_token.cl_http_client=>create_by_url( EXPORTING url    = lv_post_urlIMPORTING client = io_http_client ).io_http_client->request->set_content_type( content_type = 'application/json; charset=utf-8' ).io_http_client->request->set_method( if_http_request=>co_request_method_post ).DATA(lv_send_data) = /ui2/cl_json=>serialize( data        = ls_post_requestcompress    = abap_falsepretty_name = /ui2/cl_json=>pretty_mode-camel_case ).io_http_client->request->set_cdata( data = lv_send_data ).io_http_client->send( EXCEPTIONS http_communication_failure = 1http_invalid_state         = 2  ).IF sy-subrc NE 0.io_http_client->get_last_error( IMPORTING message = lv_message code = lv_code ).CONCATENATE '发送POST请求给企业微信失败:' lv_message INTO lv_message.ENDIF.io_http_client->receive( EXCEPTIONS http_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3 ).IF sy-subrc EQ 0.DATA(lv_post_res) = io_http_client->response->get_cdata( ).ELSE.io_http_client->get_last_error( IMPORTING message = lv_msg code = lv_code1 ).CONCATENATE '企业微信服务器响应失败原因:' lv_msg INTO lv_msg.ENDIF."将Json报文转换成SAP结构/ui2/cl_json=>deserialize( EXPORTING json = lv_post_respretty_name = /ui2/cl_json=>pretty_mode-camel_caseCHANGING data = ls_post_receive ).IF ls_post_receive-errmsg NE `ok`.MESSAGE '发送POST请求给企业微信失败' TYPE 'S' DISPLAY LIKE 'E'.ELSE.MESSAGE '发送POST请求给企业微信成功' TYPE 'S'.ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建数字社会:Web3时代的社会治理与价值重构

随着数字化技术的飞速发展,我们正逐渐迈入Web3时代,这是一个以去中心化、开放性和透明性为特征的新时代。在这个时代,数字技术将不仅仅改变我们的生活方式和商业模式,还将对社会治理和价值观念产生深远影响。本文将探讨Web3时代下…

夏日骑行新宠降临!VELO Eden Angel坐垫 —— 让你的征途如诗般惬意!

夏日炎炎,是时候与维乐Eden Angel坐垫(型号VL-6319)共舞,开启一场关于自由与舒适的长途骑行盛宴!这不仅是一款坐垫,它是你探索世界、追逐夏日风光的秘密武器。    聚丙烯底壳与钢弓的精妙组合&#xff…

Soildworks学习笔记(一)

1.如何添加M3,M4等螺丝孔: 有时候异形孔向导显示灰色是因为没有退出草图选项卡,选择异形孔向导就可以进行异形孔的设定和放置: solidwork放置螺丝孔以及显示螺纹的问题_.16-m3 solidwork-CSDN博客 2.如何修剪线条: 如何倒圆角或…

20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048

20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048 2024/6/7 13:59 1、背光部分&#xff1a;&backlight { pwms <&pwm2 0 25000 0>; status "okay"; }; &pwm2 { status "okay&…

海康威视综合安防管理平台 多处 FastJson反序列化RCE漏洞复现

0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 由于…

每日一练 2024.6.7

给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作&#xff0c;在每一步操作中&#xff0c;你可以从 s 中删除 任一个 "AB" 或 "CD" 子字符串。 通过执行操作&#xff0c;删除所有 "AB" 和 "CD" 子串&#x…

如何备份和恢复华为手机?

智能手机已成为我们日常生活中不可或缺的一部分&#xff0c;它们存储着大量敏感数据。因此&#xff0c;确保数据安全&#xff0c;定期备份至关重要&#xff0c;以防手机意外丢失、损坏或被盗。 如果您拥有华为设备&#xff0c;并且正在寻找如何将华为手机备份到PC的方法&#…

爱校对繁体字校对上线——让企业文档更精准

在港澳台地区&#xff0c;企业每天都要处理大量繁体字文档&#xff0c;确保文档的准确性和专业性至关重要。爱校对全新推出的繁体字校对服务&#xff0c;专为企业设计&#xff0c;自动检测并修正拼写和语法错误&#xff0c;让您的文档管理更加轻松高效&#xff0c;提升企业形象…

【权威主办|投稿优惠】2024年应用物理、力学与数学国际会议(APMM 2024)

2024年应用物理、力学与数学国际会议&#xff08;APMM 2024&#xff09; 2024 International Conference on Applied Physics, Mechanics, and Mathematics 【重要信息】 大会地点&#xff1a;南昌 大会官网&#xff1a;http://www.iacapmm.com 投稿邮箱&#xff1a;iacapmmsu…

香港优才diy推荐信很难写?看看140分获批的人怎么写!(附上模板)

大家好&#xff0c;我是已获批香港优才的糖爸。 香港优才diy推荐信作为申请材料中的重要一环&#xff0c;对于申请人过往工作的综合软实力和入境处的审核具有重要影响。如何撰写一份优秀的雇主推荐信呢&#xff1f;就我的获批经验来谈谈。 一、明确推荐信的目的 雇主推荐信的主…

外贸干货|如何提高商机转化率?

常常听到外贸业务员抱怨“询盘质量不高”、“有询盘没转化”、“有些客户只是来比价格的”……想必大家都不陌生&#xff01; 但难道只有询盘问题、客户问题吗&#xff1f;我们自身的处理真的没问题吗&#xff1f;我想只有更多的自省自查我们可以控制的问题&#xff0c;优化我们…

大模型在信用卡行业的应用探索

2022年11月&#xff0c;OpenAI发布ChatGPT3.5&#xff0c;迅速引起各界广泛关注&#xff0c;引发了人工智能领域新一轮发展热潮。ChatGPT作为一款基于人工智能技术的大语言模型&#xff08;LLMs&#xff09;&#xff0c;在文本生成、对话理解、多领域知识覆盖等方面具有卓越表现…

替代LT3741大功率20A恒压恒流驱动器

1. 产品特性(替代LT3741) ➢ CTRL 引脚对输出电流提供精确控制 ➢ 2%的电压调节精度 ➢ 6%的电流调节精度 ➢ 输入电压范围&#xff08;外接达林顿 NPN 管&#xff09;&#xff1a; 6V~40V ➢ 输入电压范围&#xff08;外接单颗 NPN 管&#xff09;&#xff1a; 5.25V~40V…

markdown图片离线备份,批量替换url

之前在某站写了很多笔记&#xff0c;最近想着迁移备份下&#xff0c;找到了接口写了个脚本将文章爬取下来了。文章是基于 Markdown 格式的&#xff0c;在写作时粘贴图片&#xff0c;直接上传到他们图床服务器了。Markdown 文本里面是个<img src"https://aaa.com/bbb.jp…

神经网络 torch.nn---Containers

torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) nn是Neural Network的简称&#xff0c;帮助程序员方便执行如下的与神经网络相关的行为&#xff1a; &#xff08;1&#xff09;创建神经网络 &#xff08;2&#xff09;训练…

RERCS系统开发实战案例-Part01 快速启动面板创建新功能启动面板

需求背景&#xff1a;RERCS系统设计合同应收付比例调整界面&#xff0c;目的为合同与应收付款调整关联&#xff0c;保证数据的完整性与准确性。 步骤① 参数化快速启动板事务码 &#xff1a;LPD_CUST_PARAM 选择对应的角色与实例 可以看到系统中的快速启动面板菜单中已有的功能…

SD卡格式化怎么恢复?一键扫描,轻松找回丢失的数据

SD卡格式化怎么恢复数据&#xff1f;在日常生活中&#xff0c;我们常常会使用SD卡来存储各种数据&#xff0c;如照片、视频、文档等。然而&#xff0c;当SD卡意外格式化或者出现其他问题时&#xff0c;里面的数据就会面临丢失的风险。 此时&#xff0c;如何恢复格式化的SD卡就…

2024-06-06 问AI: 在深度学习中,什么是欧几里德长度?

文心一言 在深度学习中&#xff0c;欧几里德长度&#xff08;也称为欧几里得距离或欧氏距离&#xff09;是一个常用的概念&#xff0c;它衡量的是在多维空间中两个点之间的真实距离&#xff0c;或者说是向量的自然长度&#xff08;即该点到原点的距离&#xff09;。以下是关于…

【ARM Cache 及 MMU 系列文章 6.3 -- ARMv8/v9 Cache Tag数据读取及分析】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Cache Tag 数据读取测试代码Cache Tag 数据读取 在处理器中,缓存是一种快速存储资源,用于减少访问主内存时的延迟。缓存通过存储主内存中经常访问的数据来实现这一点。为了有效地管…

问题:卫生事业的发展受多种因素的影响和制约,以下属于卫生事业发展影响因素的有(? ?)。 #微信#其他

问题&#xff1a;卫生事业的发展受多种因素的影响和制约&#xff0c;以下属于卫生事业发展影响因素的有&#xff08;? ?&#xff09;。 A、经济水平 B、管理水平 C、人口素质 D、科技发展 参考答案如图所示