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

发布时间 2023-11-09 09:43:44作者: BASIS/老应(Weikui)

前言

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的消息监控器

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

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

 

 

 

示意图

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

 

配置邮箱报警

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

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)

 

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

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

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

 

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

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

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

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

 

 

 

02

配置邮件客户端

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

 

 

因为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 参数值,登录邮件服务器发送邮件的用户(完整的用户邮件地址)

维护参数的位置

 

 

 

03

配置后台作业

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

后台作业维护路径如图

 

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

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

AlertConsumerJobV2 带模板单一消息

AlertStuckMessagesJob 集中报警

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

详见链接

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

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

 

设置任务参数

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

MailFrom 邮件发送方

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

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

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

AggregateAlerts 必选项 聚合警报?

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

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

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

 

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

 

 

04

测试结果

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

测试通过.

 

05

监控主页

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

 

 

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

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

 

疑问

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/

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

 

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

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

 

服务注册表为空.

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

 

 

 

总结

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/
————————————————
版权声明:本文为CSDN博主「syjf1976_ABAP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/syjf1976/article/details/121987685