超过最大重发次数后如何设置文件仍然发送失败的邮件告警?

在使用知行EDI系统时,客户常常会遇到由于某一段时间网路不稳定,而导致文件发送失败的情况, 但由于我们配置了自动重发机制,EDI系统会根据设置的时间间隔重新发送,但如果重发次数超过了设置的最大发送次数,自动发送将会暂停,发送失败的文件会一直保持未发送的状态,如果待发送的文件量较大,就会造成文件的大量堆积,而且这种问题往往很难发现,如果交易伙伴对客户有时效性的考核,这将会造成严重的损失。为了避免以上问题,本篇文章给大家分享一个解决方案:当文件重发次数超过配置的最大次数后,将报错信息邮件发送给更加关心EDI系统报错的人。

具体操作:在端口的“事件”页面,选择“发送前(After Send)”,配置超过最大发送次数邮件报错通知的代码。

edi

代码如下:

<rsb:check attr="FinalAttempt">

<rsb:equals attr="FinalAttempt" value="True">
<rsb:notequals attr="ErrorMessage" value="">
  <rsb:set attr="Subject" value="FinalAttempt Faied - [ConnectorId]"/>
  <rsb:set attr="Message" value="The file [Filename] has failed to resend automatically, please check! "/>
  <rsb:set attr="ASYNC" value="false" />
  <rsb:set attr="To" value="xxx@xxx.com.cn" />
  <rsb:call op="appSendEmail"/>
</rsb:notequals>
</rsb:equals>
</rsb:check>

注:

关于此段代码中涉及的参数说明如下:

(1)Subject 是邮件主题,可自定义,这里邮件主题是:FinalAttempt Faied – [ConnectorId]。其中[ConnectorId]为当前端口名称。
(2)Message是邮件内容,可自定义,这里邮件内容是:The file [Filename] has failed to resend automatically, please check!。其中[Filename]为当前失败的文件名称。
(3)To是收件人邮箱,可以配置多个收件人,多个邮箱间以英文逗号间隔。

edi

代码逻辑:先判断是否已达到端口配置的最大发送次数,当重发次数等于最大发送次数时,判断是否还存在报错,如果已发送成功,将不会触发此邮件通知;若依然报错,将根据我们配置的参数,将报错信息发到指定的邮箱。

edi

举例说明:创建一个名为test_AS2的端口,配置自动发送,并且将发送最大次数设置为3,重试间隔设置为1分钟。

edi

现在我们配置错误的AS2 ID模拟实际业务发送失败的情况,当文件自动发送失败三次时,就可以在配置的邮箱中收到报错邮件。

edi

此时我们发现,在文件每次发送失败时,都会收到报错邮件,最后一次发送失败时,会收到我们配置的报错邮件主题和内容。

在学习了如何配置超过最大发送次数发送报错邮件后,读者可能会有这样的疑问:我配置了超过最大重试次数报错邮件通知后,为什么这个端口每次报错都会收到邮件通知呢?

在解答问题前,先将我们上面配置邮件通知和每次报错收到的报错通知邮件内容进行对比。

如下是每次报错都会收到的邮件:

edi

如下是发送失败3次后收到的报错邮件:

edi

不难看出两者有明显的区别,这是因为我们在系统设置的“通知”页面已经配置了邮件通知,当文件每次失败都会触发报错通知,邮件主题和接收人以这里配置的为准。,而在端口的事件中配置超过最大发送次数进行报错邮件通知的方式,相当于一个重要系数更高的通知,而且这种通知的内容、主题以及收件人我们都可以自定义,往往收到这类邮件是希望引起客户的高度重视,尽快处理问题,从而避免业务受到严重影响。

如果读者想要了解如何配置“通知”页面中的系统邮件报错通知,请参考文章:如何监控文件已成功通过EDI系统发给客户-邮件通知方案

更多EDI信息,请参阅: EDI 是什么?

posted @ 2022-12-27 17:24  EDI电子数据交换  阅读(68)  评论(0编辑  收藏  举报