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

2020-09-05 14:50发布

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

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


专家们,

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

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

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

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

3)需要扩展哪些类?

我们正在使用Hybris 1808。

详细的答案将是很好的。

谢谢

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

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


专家们,

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

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

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

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

3)需要扩展哪些类?

我们正在使用Hybris 1808。

详细的答案将是很好的。

谢谢

付费偷看设置
发送
4条回答
愤怒的猪头君
1楼-- · 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配置将所需的依赖项注入服务中。

小熊yu生菜
2楼-- · 2020-09-05 15:16

由您决定。 似乎发送电子邮件功能本身具有价值,而与项目中的其他详细信息无关。 它可能可以被其他团队重用或供其他团队使用。 因此,我将从一个完全独立的项目开始该扩展。

关于开始一个新的Maven项目,这是非常标准的,您会在Web上找到大量文档和帮助来使用Maven。 我在这里无法解释太多。 但是,如果您尝试过并且有非常具体的问题,我会尽力提供帮助。 另外,具体步骤将取决于您是否有权使用hybris人工产物。

通常,您可以利用您的IDE创建maven项目。 启动新的Maven项目,IDE将提示您输入所需的内容。 没有特殊的Maven原型可以使用。 然后,您将需要配置对DataHub库的依赖关系,该依赖关系应该已经在当前项目中拥有。 只需将它们复制到新项目的pom.xml中即可。 然后编写代码。

clever101
3楼-- · 2020-09-05 15:06

在其中写一个扩展名来写一个事件。 每当您获得异常时,都会触发此事件以发送电子邮件。

如果您使用的是混合云。 日志将可从splunk获取。 因此,无需更改代码,您就可以在splunk上创建警报。 为此,我们真的不需要进行任何代码更改。

哎,真难
4楼-- · 2020-09-05 15:14

嗨,

感谢您的回答。

我们正在使用Hybris云。 我是Splunk的新手。

能否请您提供详细的步骤以创建有关Spunk的警报?

一周热门 更多>