ABAP 借助公司封装的钉钉URL,封装的RFC给钉钉发送消息

复制代码
FUNCTION ZRFC_BC_SMSSEND_DINGTALK.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(DESTUSRID) TYPE  CHAR255
*"     VALUE(CONTENT) TYPE  CHAR255
*"     VALUE(SRC) TYPE  CHAR50 OPTIONAL
*"  EXPORTING
*"     VALUE(STATUE) TYPE  BAPI_MTYPE
*"     VALUE(MESSTAB) TYPE  BAPI_MSG
*"----------------------------------------------------------------------
  DATA: LO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT,
        LV_LEN         TYPE I,
        LV_SMSURL(200) TYPE C,
        LV_RESPON      TYPE STRING,
        LV_SERVICE     TYPE STRING,
        LV_MSG         TYPE STRING,
        LV_CONTENT     TYPE STRING,
        HTTP_CLIENT    TYPE REF TO IF_HTTP_CLIENT, "http客户端
        LV_SERVER_NAME TYPE ZE_SERVER_NAME,
        LV_SRC         TYPE STRING,
        DEST           LIKE RFCDES-RFCDEST,
        LJSONNODE      TYPE REF TO ZCL_MDP_JSON_NODE,
        L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE,
        LV_RESULTS     TYPE STRING.
  DATA: ITAB TYPE TABLE OF STRING.

  DATA: P_CODE   TYPE I,
        P_REASON TYPE STRING.
  SRC = 'SAPS4' && SY-SYSID && SRC.
*https://market.chinajack.com/index.php?receiver=8256&sender=admin&thirdpartyCode=1001&title=尊敬的用户:您好,您的SAP账户(8256)因输错密码多次被锁定,现已经解锁并初始化,密码是(Jk12345678),请妥善保管!&s=/w2/Maintenance/DingTalkSystem/sendMessage/
  LV_CONTENT = CONTENT.
  CALL METHOD CL_HTTP_UTILITY=>ESCAPE_URL
    EXPORTING
      UNESCAPED = LV_CONTENT
    RECEIVING
      ESCAPED   = LV_CONTENT.

  LV_SRC = SRC.
  CALL METHOD CL_HTTP_UTILITY=>ESCAPE_URL
    EXPORTING
      UNESCAPED = LV_SRC
    RECEIVING
      ESCAPED   = LV_SRC.

  SELECT SINGLE VALUE INTO LV_SMSURL
    FROM /THINKWAY/TBUS0P WHERE PPKEY = 'DINGURL' AND EXCHANGE_SYSTEM = 'SMS'.
*  LV_SMSURL = '公司内部封装过的钉钉URL地址 '.
  CONCATENATE  'http://' LV_SMSURL '/index.php?receiver=' DESTUSRID '&title='
  LV_CONTENT '&thirdpartyCode=1001&sender=admin&s=/w2/Maintenance/DingTalkSystem/sendMessage/' INTO LV_SERVICE .

  CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
    EXPORTING
      URL                = LV_SERVICE
    IMPORTING
      CLIENT             = HTTP_CLIENT
    EXCEPTIONS
      ARGUMENT_NOT_FOUND = 1
      PLUGIN_NOT_ACTIVE  = 2
      INTERNAL_ERROR     = 3
      OTHERS             = 4.
  "设定传输请求内容格式以及编码格式
  HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).

  "设置http method 为Get
  HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).

  CALL METHOD HTTP_CLIENT->SEND
    EXCEPTIONS
      HTTP_COMMUNICATION_FAILURE = 1
      HTTP_INVALID_STATE         = 2
      HTTP_PROCESSING_FAILED     = 3
      HTTP_INVALID_TIMEOUT       = 4
      OTHERS                     = 5.

  "接收
  CALL METHOD HTTP_CLIENT->RECEIVE
    EXCEPTIONS
      HTTP_COMMUNICATION_FAILURE = 1
      HTTP_INVALID_STATE         = 2
      HTTP_PROCESSING_FAILED     = 3.
  "提取返回字符串
  LV_RESULTS = HTTP_CLIENT->RESPONSE->GET_CDATA( ).

  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  LJSONNODE = ZCL_MDP_JSON_NODE=>DESERIALIZE( JSON = LV_RESULTS ).
  L_SAP_COL_OBJECT = LJSONNODE->OBJECT_GET_CHILD_NODE( KEY = 'success' ).
  IF L_SAP_COL_OBJECT->VALUE EQ 1.
    STATUE = 'S'.
  ELSE.
    STATUE = 'E'.
  ENDIF.

ENDFUNCTION.

有了这个,可以减少这种低级损耗

相关推荐
yyxx4121236 天前
上海企业如何选择专业的钉钉服务商
java·大数据·人工智能·钉钉
小懿互联集成平台6 天前
金蝶云星空与钉钉OA审批对接-构建一体化财务付款管理体系
钉钉·金蝶云星空·数据对接·小懿互联·构建一体化财务付款
TMT星球10 天前
钉钉发布DingTalk A1豆蔻医生版,售价999元
人工智能·深度学习·钉钉
河北小博博11 天前
OpenClaw 接入飞书 / 钉钉 / 企业微信:从 HTTP Webhook 到 WebSocket 长连接
钉钉·飞书·企业微信
Linlingu11 天前
OpenClaw接入钉钉企业内部机器人完整实操教程(Stream模式无公网部署)
人工智能·windows·机器人·钉钉·办公自动化·小龙虾
神一样的老师14 天前
用 AI 助手直接操作钉钉?QoderWork 连接钉钉的体验分享
人工智能·钉钉
CIO_Alliance16 天前
鼎捷和钉钉系统集成破局:iPaaS成制造业破解“系统割裂”关键
人工智能·钉钉·ipaas·系统集成·制造业·企业数智化转型·零售电商
科技与数码17 天前
鸿蒙智能待办:钉钉学而思待办自动同步日历
华为·钉钉·harmonyos
roseonly_h18 天前
如何将钉钉微应用在浏览器打开
前端·钉钉
Miss roro19 天前
通用OA能不能替代专业法务系统?钉钉飞书和律杏法务云的实测对比
java·钉钉·飞书·法律科技·企业诉讼管理·法务管理系统