PO系列 配置消息报错自动发送邮件

您所在的位置:网站首页 pi邮箱 PO系列 配置消息报错自动发送邮件

PO系列 配置消息报错自动发送邮件

2024-06-06 11:54| 来源: 网络整理| 查看: 265

前言

PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO). 

企业通过PO提供统一的中间件服务平台,所有系统都调用PO的服务或者发布服务让PO调用.

如果PO处理消息时出现报错信息,可以通过PO的消息监控器查看报错的消息.这种方式依赖于人员主动的执行消息监控器,无法及时有效的获取PO系统的异常.

本文主要介绍PO的邮箱报警机制.把报错的消息信息发送到指定用户的邮箱

本文涉及的操作主要来自于如下链接,做了些翻译及细化的处理.

链接

https://blogs.sap.com/2012/03/25/michals-pi-tips-component-based-message-alerting/

本文涉及内容的SAP 标准帮助(千万别看, 会晕的)

链接

https://help.sap.com/viewer/bdfc9b7d99b544d8bbda40546b70967a/7.4.23/en-US/2cf0a3d4540c4c9a9af65139801ef826.html

PO的消息监控器

消息监控器可以概览查看所有接口的成功/失败信息, 图一

并且可以通过点击成功/失败的次数,链接到详细的消息信息中查看具体的报错日志. 图二

f8a0c98874ebace8bf78e3fce331a09b.png

8a8e81bc328fafcec36a042948fdf2ea.png

172022a0d6ed7c4e92610f187021ba85.png

图一

7b141abcfa925de585a3c798b8ac6784.png

图二

示意图

报警处理逻辑示意图来自标准的ONLINE HELP 文档.可以直观的理解PO的消息报警机制.

b339eb0d68bac84884784aef38449619.png

配置邮箱报警

基于组件的消息报警配置方式如下

Component-Based Message Alerting (CBMA) is the new way of sending alerts on SAP PI (either single or double stack) without the use of any additional components.

01

创建报警规则

进入 Integration Builder 创建报警规则( ALERT RULE)

115d84bbb0b936e25db67082f3120c83.png

basic标签页选择需要报警的组件. (图三)

报警对象可以按照多种类型选择, 推荐把相应的对象到放到 configuration scenario 中,在报警规则中使用 configuration scenario 来包含这些对象.最终根据包含的对象生成过滤消息的规则,详见图五

也可以维护一个空的PARTY 这样所有没有进入PARTY 的对象都会包含进去

1cd877e50b28345e52c9d0c4612370e9.png

extended标签页中选择组件,错误类型, consumers (图四)

components 报警的组件,包含了Central Adaper Engine 和相应的ABAP proxy对象(ABAP 也有消息监控器, 所以这里对ABAP proxy 对象的监控是可选项)

error sources 报错消息来源, 大致区分了PO处理的不同环节,不同的通道适配器.建议全选

consumers 中只有一个选项 ALERT-TO-MAIL ,代表报警信息发送到邮件中. 可以自定义consumer .

da68706d3d1d54e176a47d0a2a2a3293.png

图三

08c22279312a411f89a974a5b63b9441.png

图四

daad1166ab2dbbdc0908e42f4b177ef3.png

图五

02

配置邮件客户端

类似于其它的邮件客户端配置,比如FOXMAIL

43b54f768b4cbdca5c2d4efb84344623.png

a3af7e7246c25bef6da155e40d0f9fb6.png

因为PO只需要发送邮件. 所以只需要配置如下几个参数

– mail.from      邮件发送者. 需要为PO申请一个企业邮箱账号

– mail.smtp.host  SMTP发送邮箱地址 一般情况下把邮箱的浏览器地址mail替换成smtp即可 smtp.qq.com (mail.qq.com) (如果PO服务器能够连接公网,应该也可以使用公网邮箱)

– mail.smtp.password 用户密码

– mail.smtp.user  用户名 同 mail.from 参数值,登录邮件服务器发送邮件的用户(完整的用户邮件地址)

维护参数的位置

3ad37e869922612c2077c0185dca8a13.png

75ac2fb0a8cfa18bf6b6bba955837ed7.png

041f04cac7e31d6f6abd01f1777bd7ef.png

03

配置后台作业

一般情况下,报错消息信息记录在PO的表中. 必须用定时执行的后台作业推送把报错的消息信息推送给用户.

后台作业维护路径如图

28734f60487abd4c9c0b78e6921a0d42.png

8fcc201611888c50f74084be6c8413d4.png

有三种和报警相关的任务名称

AlertConsumerJob   简单的单一消息(测试时使用了这个任务)

AlertConsumerJobV2 带模板单一消息

AlertStuckMessagesJob 集中报警

b099e82a62a1b1dffbfd0a094531560b.png

设置任务名称及任务的保留期(超过保留期的任务可以被删除作业自动删除),任务的删除作业应该不能等同于消息的删除作业 

详见链接

无峰,公众号:ABAP 技巧与实战PO系列之 过期消息的删除

暂时不太清楚怎么设置任务的删除作业.

b96a3d0333fa4becff161a191ffcdf17.png

设置任务参数

MailTo   邮件收件方,不确定是否可以通过分号分隔维护多个收件方(待测试验证,及时不行,应该也可以通过邮件系统的分组解决发送多人的问题)

MailFrom 邮件发送方

AlertsToMailLimit 含义不明,估计代表了邮件中包含警报的个数,暂时设置为1

Consumer ALERT-TO-MAIL 固定内容,与Alert rule 关联起来了.

SupressAlerts  必选项 抑制报警数? 纠结,必选还需要放出来选择

AggregateAlerts 必选项 聚合警报?

7f56ca70e496d14e0ac5774079e23293.png

设置作业有效期间及间隔时间,如图,设置了2年的有效期, 有效期内,每5分钟执行一次.设置后,记得添加到重复时间表中

83f77f74c3c5432feca7af4d55cee06d.png

设置后,可以看到作业的条目

573312c911ed08d2007820d568f7a5bc.png

可以看到作业的每次执行情况.

c79b5a97e822db1b8ff4240f8514ed71.png

可以通过暂停/发布按钮控制任务的执行

6274ea9af1b213d3dc7de7a17a94aea6.png

04

测试结果

修改接口配置,强制产生一个错误后, 邮箱会收到消息的报错信息, 点击连接会跳转到消息监控器.

测试通过.

2fb3374864705bb7edfdd303208b522d.png

05

监控主页

配置好的消息报警可以在监控主页中看到

afc61029e8247fcd591f7baf5ce17b7b.png

ac591a8d563f53a77d004d32bbd959e2.png

可以看到对象的消息头规则,来自于场景 CS_P10002_OFF_ICM 中的对象的所有可能的组合.

这意味着并非该场景中的特定接口才会进入报警,而是该场景中所有涉及到的对象都会生成一个规则,组合起来.按组合规则筛选消息.

649b7633940179fe9a9659ec541f7c66.png

疑问

PO的消息报错通过邮箱报警的配置过程还是比较简单的. 但是配置完成后,仔细理解了一下整个过程. 发现在任务中并没有指定报警规则, 这样就会带来一个疑问

报警规则可以组合接口对象.

配置了多个报警规则(每个报警规则包含不同的对象), 那么怎么让不同的人接收不同的报警规则中对象的报警呢?

因为所有的报警规则目前都只能使用一个consumer ALERT-TO-MAIL 后台作业似乎也是关联这个consumer 的. 怎么去创建不同的consumer ?

通过示意图也能看到 Consumer是联系报警规则和作业的关键点

创建消费者(CONSUMER)

网上查找了关于创建消费者(CONSUMER)的文章. 在所使用的PO系统中均无法重现. 原因未知. 

按照链接无法找到如图的入口 web serivce navigator

https://sapintegrationhub.com/pi-po/alerts/register-alert-consumer-sap-pi-po/

28bfc64a57c04755865c79913d515be1.png

可能是版本差异, 没有找到创建消费者的入口(下图中PO系统的主页少了 web services navigator )

2cfc70a9b08ca31c4ad79a672923694d.png

找到了另外一个创建consumer的链接,但是似乎也无法参照维护

https://blogs.sap.com/2015/07/17/alert-specific-to-interfaces-in-po-using-cbma/

b6554a9e254d666414aa70613cad3a6e.png

服务注册表为空.

看起来是所使用的PO系统有什么限制,无法修改已经注册的服务.原因未知.

6a898d3c909ef520ece0dfe8db49f224.png

总结

PO消息报警通过配置

报警规则组合对象

消费者(CONSUMER)组合多个报警规则

基于消费者(CONSUMER)配置后台作业指定邮件接收者

因为未知的原因(PO的版本原因?),使用的PO系统中无法配置消费者(CONSUMER).

这就导致了所有的报错信息只能通知同一个(组)人员.

这两个链接介绍了怎么创建consumer . 后续有机会测试一下自定义的consumer.

https://blogs.sap.com/2012/05/05/michals-pi-tips-component-based-message-alerting-api/

https://sapintegrationhub.com/pi-po/alerts/register-alert-consumer-sap-pi-po/

这个链接介绍了怎么创建一个发送短信的报警.后续有机会测试一下.

https://blogs.sap.com/2016/03/13/message-alerting-in-sap-pipo-sending-alerts-as-push-notifications-to-mobile-device/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3