扩展datahub以在电子邮件中发送错误

2020-09-05 14:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们有一个要求,即应...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我们有一个要求,即应自动触发电子邮件,列出在数据中心的加载,编写和发布阶段发生的错误。 我们只需要在相应阶段完成后在电子邮件的"错误与失败"菜单中的后台办公室中看到的错误列表即可。

对于上述要求,我有以下问题:

1)如何扩展数据中心中的现有类?

2)应该在哪里创建扩展类(我们需要创建新扩展)吗?

3)需要扩展哪些类?

我们正在使用Hybris 1808。

详细的答案将是很好的。

谢谢

4条回答
愤怒的猪头君
2020-09-05 15:08

考施克,

1)当绝对没有其他方法可以满足您的要求时,我将保留类扩展作为最后的选择。 通常,组合(相对于继承)是更可取的方式,并且将来导致的问题更少。

2)是,您将需要一个新的扩展名。

3)希望没有。 您将编写自己的类来提供此功能。

这是您可以做的。 首先,您将需要在相应进程完成时通知 DataLoadingCompletedEvent CompositionCompletedEvent TargetSystemPublicationCompletedEvent 的侦听器,并启动您的自定义逻辑 发送电子邮件。 使用此示例来编写它们。

然后,您将需要一些服务,该服务包含 ErrorData 的列表,可能还包含一些上下文信息,例如 进程名称(数据负载,组成或发布)等。此服务将根据提供的数据组成一封电子邮件,并根据其配置发送该电子邮件。 实际上,可以将该服务分为几个类来划分职责,但这只是实现细节。 设计此服务的方法完全取决于您。

最后,您将需要一些服务,这些服务将检索对应进程的错误:

  • 调用 DataHubPoolActionFacade.getCompositionErrors(长actionId,DataHubPageable可分页)检索指定合成操作ID的合成错误(来自 CompositionCompletedEvent )。

  • 调用 PublicationFacade.getTargetSystemPublicationErrors(长PublicationId,DataHubPageable可分页)以检索指定发布ID的发布错误(来自 TargetSystemPublicationCompletedEvent )。

  • 数据加载是一种特殊情况。 该事件具有操作ID和状态,因此在发生错误的情况下,您知道加载操作失败。 最简单的方法是使用通用消息创建 ErrorData 实例,例如 电子邮件服务"数据加载#...失败"。 无论如何,在数据加载期间我们都不会收到良好的消息。 加载失败或成功的原因更多。

因此,最后,您将有听众捕获事件,然后调用服务,该服务检索数据并传递给电子邮件服务,该服务发送电子邮件。 所有课程都是新课程。 在spring.xml配置中将所有侦听器/服务注册为Spring Bean。 通过spring配置将所需的依赖项注入服务中。

一周热门 更多>