SAP 接口主动推送企业微信异常消息
"推送企业微信格式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 接口主动推送企业微信异常消息相关推荐
- SAP-ABAP-企业微信:ZCSM37-后台JOB异常检查主动推送企业微信群
场景:异常JOB主动推送企业微信群 (企业微信机器人可百度创建,注意群不能有企业外的人员,否则接口无效) 报错提示场景:(报错图片如下) 1.JOB异常导致任务消失 2.通JOB多个任务同时执行 3. ...
- 企业微信api接口调用-触发推送企业微信微信好友
企业微信SDK接口API调用-触发推送企业微信微信好友 /*** 触发企业微信推送微信好友列表* @author wechat:happybabby110* @blog http://www.wlka ...
- 企业微信SDK接口API调用-触发推送企业微信微信好友
企业微信SDK接口API调用-触发推送企业微信微信好友 /** * 触发企业微信推送微信好友列表 * @author wechat:happybabby110 * @bl ...
- 企业微信api接口调用-触发推送企业微信联系人列表
企业微信SDK接口API调用-触发推送企业微信联系人列表 /** * 触发推送企业微信联系人列表任务 * @author wechat:happybabby110 * @blog http://www ...
- 企业微信SDK接口API调用-触发推送企业微信联系人列表
/** * 触发推送企业微信联系人列表任务 * @author wechat:happybabby110 * @blog http://www.wlkankan.cn ...
- gitlab推送企业微信机器人项目代码
一.gitlab推送企业微信机器人项目代码 # coding=utf-8 """@Project :pachong-master@File :gitlab_wechat. ...
- 小程序消息主动推送php,微信小程序有几种推送消息的方式
微信小程序有5种推送消息的方式,分别为:1.小票机订单提醒,实现对商家的消息提醒:2.短信提醒:3.模板消息,各种动态可及时掌握:4.公众号订单提醒:5.消息主动推送,商家主动出击.推销自己的最好手段 ...
- python-消息推送(企业微信)
目录 消息类型 文本 markdown 图片 图文 文件 卡片消息 发送请求 接口文档:发送应用消息 - 接口文档 - 企业微信开发者中心 消息类型 文本 ## qywx_data.pydef tex ...
- php socket主动推送消息,PHP使用WebSocket主动推送【微信小程序接收】
WebSocket.jpeg Websocket是一种服务端和客户端可以持久连接的通信协议,我们可以利用WebSocket的特性实现服务器主动向客户端推送消息的功能. 这里我们用TP5.1框架结合Wo ...
最新文章
- 不是微型计算机主板上的部件,微型计算机主板上安装的主要部件
- Redis设计与实现 第一部分
- C语言实现ICMP协议Ping命令
- 64位ODBC数据源配置
- 创新检查技术,赋能保密监管 ,您需要一款这样的数据库内容保密检查系统!
- 金蝶KIS商贸高级版V6.1开发实现‘序时簿中心’增加'联系人'字段列
- 前端如何进行seo优化
- HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)...
- TileMap大型地图网格属性设置
- 路由器桥接:老式路由器桥接隐藏网络并开启无线隐藏网络
- CUDA: 矩阵乘法优化
- Linux编译器-gcc/g++的使用
- 快时钟到慢时钟的同步问题
- python地形图渲染_地形渲染之彩色地形图(Painted Relief Map)
- 知乎上的48条神回复!看完人生透彻了许多!
- C语言实现当前时间的前后多少秒的时间计算
- 数据挖掘技术-使用函数进行简单的统计分析
- 简述余弦函数cos(x)和反余弦函数acos(x)------(附Demo案例)
- python 正则使用详解
- 学了一学期的C语言能干嘛,C语言实现显示汉字(bushi)