2020-09-05 14:50发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们有一个要求,即应自动触发电子邮件,列出在数据中心的加载,编写和发布阶段发生的错误。 我们只需要在相应阶段完成后在电子邮件的"错误与失败"菜单中的后台办公室中看到的错误列表即可。
对于上述要求,我有以下问题:
1)如何扩展数据中心中的现有类?
2)应该在哪里创建扩展类(我们需要创建新扩展)吗?
3)需要扩展哪些类?
我们正在使用Hybris 1808。
详细的答案将是很好的。
谢谢
考施克,
1)当绝对没有其他方法可以满足您的要求时,我将保留类扩展作为最后的选择。 通常,组合(相对于继承)是更可取的方式,并且将来导致的问题更少。
2)是,您将需要一个新的扩展名。
3)希望没有。 您将编写自己的类来提供此功能。
这是您可以做的。 首先,您将需要在相应进程完成时通知 DataLoadingCompletedEvent , CompositionCompletedEvent 和 TargetSystemPublicationCompletedEvent 的侦听器,并启动您的自定义逻辑 发送电子邮件。 使用此示例来编写它们。
DataLoadingCompletedEvent
CompositionCompletedEvent
TargetSystemPublicationCompletedEvent
然后,您将需要一些服务,该服务包含 ErrorData 的列表,可能还包含一些上下文信息,例如 进程名称(数据负载,组成或发布)等。此服务将根据提供的数据组成一封电子邮件,并根据其配置发送该电子邮件。 实际上,可以将该服务分为几个类来划分职责,但这只是实现细节。 设计此服务的方法完全取决于您。
ErrorData
最后,您将需要一些服务,这些服务将检索对应进程的错误:
调用 DataHubPoolActionFacade.getCompositionErrors(长actionId,DataHubPageable可分页)检索指定合成操作ID的合成错误(来自 CompositionCompletedEvent )。
DataHubPoolActionFacade.getCompositionErrors(长actionId,DataHubPageable可分页)
调用 PublicationFacade.getTargetSystemPublicationErrors(长PublicationId,DataHubPageable可分页)以检索指定发布ID的发布错误(来自 TargetSystemPublicationCompletedEvent )。
PublicationFacade.getTargetSystemPublicationErrors(长PublicationId,DataHubPageable可分页)
数据加载是一种特殊情况。 该事件具有操作ID和状态,因此在发生错误的情况下,您知道加载操作失败。 最简单的方法是使用通用消息创建 ErrorData 实例,例如 电子邮件服务"数据加载#...失败"。 无论如何,在数据加载期间我们都不会收到良好的消息。 加载失败或成功的原因更多。
因此,最后,您将有听众捕获事件,然后调用服务,该服务检索数据并传递给电子邮件服务,该服务发送电子邮件。 所有课程都是新课程。 在spring.xml配置中将所有侦听器/服务注册为Spring Bean。 通过spring配置将所需的依赖项注入服务中。
由您决定。 似乎发送电子邮件功能本身具有价值,而与项目中的其他详细信息无关。 它可能可以被其他团队重用或供其他团队使用。 因此,我将从一个完全独立的项目开始该扩展。
关于开始一个新的Maven项目,这是非常标准的,您会在Web上找到大量文档和帮助来使用Maven。 我在这里无法解释太多。 但是,如果您尝试过并且有非常具体的问题,我会尽力提供帮助。 另外,具体步骤将取决于您是否有权使用hybris人工产物。
通常,您可以利用您的IDE创建maven项目。 启动新的Maven项目,IDE将提示您输入所需的内容。 没有特殊的Maven原型可以使用。 然后,您将需要配置对DataHub库的依赖关系,该依赖关系应该已经在当前项目中拥有。 只需将它们复制到新项目的pom.xml中即可。 然后编写代码。
在其中写一个扩展名来写一个事件。 每当您获得异常时,都会触发此事件以发送电子邮件。
如果您使用的是混合云。 日志将可从splunk获取。 因此,无需更改代码,您就可以在splunk上创建警报。 为此,我们真的不需要进行任何代码更改。
嗨,
感谢您的回答。
我们正在使用Hybris云。 我是Splunk的新手。
能否请您提供详细的步骤以创建有关Spunk的警报?
最多设置5个标签!
考施克,
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配置将所需的依赖项注入服务中。
由您决定。 似乎发送电子邮件功能本身具有价值,而与项目中的其他详细信息无关。 它可能可以被其他团队重用或供其他团队使用。 因此,我将从一个完全独立的项目开始该扩展。
关于开始一个新的Maven项目,这是非常标准的,您会在Web上找到大量文档和帮助来使用Maven。 我在这里无法解释太多。 但是,如果您尝试过并且有非常具体的问题,我会尽力提供帮助。 另外,具体步骤将取决于您是否有权使用hybris人工产物。
通常,您可以利用您的IDE创建maven项目。 启动新的Maven项目,IDE将提示您输入所需的内容。 没有特殊的Maven原型可以使用。 然后,您将需要配置对DataHub库的依赖关系,该依赖关系应该已经在当前项目中拥有。 只需将它们复制到新项目的pom.xml中即可。 然后编写代码。
在其中写一个扩展名来写一个事件。 每当您获得异常时,都会触发此事件以发送电子邮件。
如果您使用的是混合云。 日志将可从splunk获取。 因此,无需更改代码,您就可以在splunk上创建警报。 为此,我们真的不需要进行任何代码更改。
嗨,
感谢您的回答。
我们正在使用Hybris云。 我是Splunk的新手。
能否请您提供详细的步骤以创建有关Spunk的警报?
一周热门 更多>