"推送企业微信格式lv_json = '{ "msgtype": "markdown", "markdown": ' &&'{  "content": "### 异常JOB通知\n >JOB名称:' && gt_alv-jobname &&' \n 程序名称:' && gt_alv-progname &&' \n 变式名称:' && gt_alv-variant &&' \n 最后一次执行时间:'&& gt_alv-sdldate+0(4) &&'/'&& gt_alv-sdldate+4(2) &&'/'&& gt_alv-sdldate+6(2) && ','&& gt_alv-sdltime+0(2) &&':'&& gt_alv-sdltime+2(2) &&':'&& gt_alv-sdltime+4(2) &&' \n 频率:<font color=\"info\">**'&& gt_alv-pl &&'**</font> \n ' &&'距最后一次执行时间: <font color=\"warning\">**' && gt_alv-min_c && '**</font> '&&' \n 检查时间:'&& gt_alv-datum_check+0(4) &&'/'&& gt_alv-datum_check+4(2) &&'/'&& gt_alv-datum_check+6(2) && ','&& gt_alv-uzeit_check+0(2) &&':'&& gt_alv-uzeit_check+2(2) &&':'&& gt_alv-uzeit_check+4(2) &&'"  }'.

源码
FUNCTION zfm_send_check_job.
*“----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*” VALUE(IV_JSON) TYPE STRING OPTIONAL
*" EXPORTING
*" VALUE(EV_RESULTMSG) TYPE STRING
*" VALUE(EV_STATUS) TYPE I
*" VALUE(EV_MESSAGE) TYPE CHAR100
*" VALUE(EV_STATUS_C) TYPE CHAR1
*"----------------------------------------------------------------------
DATA:lv_url TYPE string.
DATA:lv_http_client TYPE REF TO if_http_client.
DATA:lv_http_method TYPE string.

  • iv_json = ‘{ “msgtype”: “markdown”, “markdown”: { “content”: "### 异常JOB通知\n >JOB名称:’ &&

  •        'XXXXXX \n 程序名称:XXXXXX \n 最后一次执行时间:\n 频率:<font color=\"info\">**5分钟**</font> \n ' &&
    
  •        '距最后一次执行时间: <font color=\"warning\">**50分钟**</font> \n 检查时间:"  }'.
    

    SELECT SINGLE url
    INTO lv_url
    FROM ztip
    WHERE proname = ‘ZFM_SEND_CHECK_JOB’.
    IF sy-subrc <> 0.
    MESSAGE ‘ZTIP配置表没有地址’ TYPE ‘E’ DISPLAY LIKE ‘S’.
    RETURN.
    ENDIF.

    "记录日志使用
    DATA: ls_log_tab TYPE zcat_log_info.
    DATA: lv_nr_range_nr TYPE inri-nrrangenr,
    lv_object TYPE inri-object.

  • *写入日志信息。
    lv_object = ‘ZCANR001’.
    lv_nr_range_nr = ‘01’.
    CALL FUNCTION ‘NUMBER_GET_NEXT’
    EXPORTING
    nr_range_nr = lv_nr_range_nr
    object = lv_object
    quantity = ‘1’
    IMPORTING
    number = ls_log_tab-zlogn "日志编号。
    EXCEPTIONS
    interval_not_found = 1
    number_range_not_intern = 2
    object_not_found = 3
    quantity_is_0 = 4
    quantity_is_not_1 = 5
    interval_overflow = 6
    buffer_overflow = 7
    OTHERS = 8.
    CALL TRANSFORMATION id
    SOURCE
    lv_url = lv_url
    iv_json = iv_json
    RESULT XML ls_log_tab-reque .
    ls_log_tab-zsyss = ‘企业微信消息’ .
    ls_log_tab-funco = ‘ZFM_SEND_CHECK_JOB’.
    ls_log_tab-intern = ‘后台JOB检查结果自动推送企业微信’ .
    ls_log_tab-ernam = sy-uname .
    ls_log_tab-erdat = sy-datum .
    ls_log_tab-ertim = sy-uzeit .
    ls_log_tab-ftype = ‘SOAP’ .
    MODIFY zcat_log_info FROM ls_log_tab .
    COMMIT WORK AND WAIT .

"URL接连
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_url
IMPORTING
client = lv_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CHECK lv_http_client IS NOT INITIAL.

lv_http_method = if_http_request=>co_request_method_post.
lv_http_client->request->set_method( lv_http_method ).

lv_http_client->propertytype_logon_popup = lv_http_client->co_disabled.

CALL METHOD lv_http_client->request->set_header_field
EXPORTING
name = ‘Content-Type’
value = ‘application/json’.

DATA(lv_len) = strlen( iv_json ).

CALL METHOD lv_http_client->request->set_cdata
EXPORTING
data = iv_json
offset = 0
length = lv_len.

"发送请求
lv_http_client->send( EXCEPTIONS http_communication_failure = 1
http_invalid_state = 2 ).

IF sy-subrc <> 0.
"操作失败,获取失败原因
lv_http_client->get_last_error( IMPORTING message = ev_resultmsg ).

ELSE.
"读取远程服务返回的处理过结果。
lv_http_client->receive( EXCEPTIONS http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
IF sy-subrc <> 0 .
lv_http_client->get_last_error( IMPORTING message = ev_resultmsg ).
ELSE.
"读取返回返回内容
ev_resultmsg = lv_http_client->response->get_cdata( ).
"获取HTTP返回值
lv_http_client->response->get_status( IMPORTING code = ev_status ).
ENDIF.
ENDIF.

IF lv_http_client IS NOT INITIAL.
CALL METHOD lv_http_client->close.
ENDIF.

"{“errcode”:0,“errmsg”:"ok. WARNING: json missing last curly brackets. "}
TYPES:BEGIN OF ty_json,
errcode TYPE string,
errmsg TYPE string,
END OF ty_json.

DATA:ls_json TYPE ty_json.
"解析异常捕捉
TRY.
CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = ev_resultmsg
CHANGING
data = ls_json.

  IF ls_json-errcode = '0'.ev_message = ls_json-errmsg.ev_status_c = 'S'.ELSE.ev_message = ev_resultmsg.ev_status_c = 'E'.ENDIF.CATCH cx_sy_move_cast_error.ev_message = ev_resultmsg.ev_status_c = 'E'.

ENDTRY.

*调用日志。
CALL TRANSFORMATION id
SOURCE
ev_message = ev_message
ev_status_c = ev_status_c
ev_resultmsg = ev_resultmsg
ev_status = ev_status
RESULT XML ls_log_tab-respo .
REPLACE FIRST OCCURRENCE OF ‘/’ IN ls_log_tab-innid WITH space .
CONDENSE ls_log_tab-innid .

UPDATE zcat_log_info
SET respo = ls_log_tab-respo
innid = ls_log_tab-innid
ifmsg = ev_status_c
WHERE zlogn = ls_log_tab-zlogn.
IF sy-subrc = 0 .
COMMIT WORK AND WAIT .
ENDIF .

ENDFUNCTION.

SAP 接口主动推送企业微信异常消息相关推荐

  1. SAP-ABAP-企业微信:ZCSM37-后台JOB异常检查主动推送企业微信群

    场景:异常JOB主动推送企业微信群 (企业微信机器人可百度创建,注意群不能有企业外的人员,否则接口无效) 报错提示场景:(报错图片如下) 1.JOB异常导致任务消失 2.通JOB多个任务同时执行 3. ...

  2. 企业微信api接口调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /*** 触发企业微信推送微信好友列表* @author wechat:happybabby110* @blog http://www.wlka ...

  3. 企业微信SDK接口API调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /**      * 触发企业微信推送微信好友列表      * @author wechat:happybabby110      * @bl ...

  4. 企业微信api接口调用-触发推送企业微信联系人列表

    企业微信SDK接口API调用-触发推送企业微信联系人列表 /** * 触发推送企业微信联系人列表任务 * @author wechat:happybabby110 * @blog http://www ...

  5. 企业微信SDK接口API调用-触发推送企业微信联系人列表

    /**      * 触发推送企业微信联系人列表任务      * @author wechat:happybabby110      * @blog http://www.wlkankan.cn   ...

  6. gitlab推送企业微信机器人项目代码

    一.gitlab推送企业微信机器人项目代码 # coding=utf-8 """@Project :pachong-master@File :gitlab_wechat. ...

  7. 小程序消息主动推送php,微信小程序有几种推送消息的方式

    微信小程序有5种推送消息的方式,分别为:1.小票机订单提醒,实现对商家的消息提醒:2.短信提醒:3.模板消息,各种动态可及时掌握:4.公众号订单提醒:5.消息主动推送,商家主动出击.推销自己的最好手段 ...

  8. python-消息推送(企业微信)

    目录 消息类型 文本 markdown 图片 图文 文件 卡片消息 发送请求 接口文档:发送应用消息 - 接口文档 - 企业微信开发者中心 消息类型 文本 ## qywx_data.pydef tex ...

  9. php socket主动推送消息,PHP使用WebSocket主动推送【微信小程序接收】

    WebSocket.jpeg Websocket是一种服务端和客户端可以持久连接的通信协议,我们可以利用WebSocket的特性实现服务器主动向客户端推送消息的功能. 这里我们用TP5.1框架结合Wo ...

最新文章

  1. 不是微型计算机主板上的部件,微型计算机主板上安装的主要部件
  2. Redis设计与实现 第一部分
  3. C语言实现ICMP协议Ping命令
  4. 64位ODBC数据源配置
  5. 创新检查技术,赋能保密监管 ,您需要一款这样的数据库内容保密检查系统!
  6. 金蝶KIS商贸高级版V6.1开发实现‘序时簿中心’增加'联系人'字段列
  7. 前端如何进行seo优化
  8. HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)...
  9. TileMap大型地图网格属性设置
  10. 路由器桥接:老式路由器桥接隐藏网络并开启无线隐藏网络
  11. CUDA: 矩阵乘法优化
  12. Linux编译器-gcc/g++的使用
  13. 快时钟到慢时钟的同步问题
  14. python地形图渲染_地形渲染之彩色地形图(Painted Relief Map)
  15. 知乎上的48条神回复!看完人生透彻了许多!
  16. C语言实现当前时间的前后多少秒的时间计算
  17. 数据挖掘技术-使用函数进行简单的统计分析
  18. 简述余弦函数cos(x)和反余弦函数acos(x)------(附Demo案例)
  19. python 正则使用详解
  20. 学了一学期的C语言能干嘛,C语言实现显示汉字(bushi)

热门文章

  1. 操作系统重要概念——虚拟性
  2. ping回显无法访问目标网络network unreachable故障模拟
  3. 什么是SOA?什么是ESB?及其在银行业中是如何发展的?
  4. 苏宁web前端电话面试
  5. 一文搞定JVM的内存结构
  6. CCF考试——201412-4最优灌溉
  7. github ip映射
  8. Weex生态质量建设
  9. Use Octavia to Implement HTTPS Health Monitors (by quqi99)
  10. [转]第三届标致汽车设计国际邀请赛部分获奖作品展示