• 从 PI Message Mapping 实时捕获错误信息


    在一个项目中,我们有一个定制的消息跟踪软件来跟踪我们的EDI消息。我们面临的一个问题是,我们想知道消息出了什么问题,以及为什么它在映射中失败。

    正如我所看到的,我们有三种选择。

    使用新的警报 API 获取警报
    创建一个应用程序,该应用程序读取 SAP PI 的状态表,并基于该应用程序创建警报。
    在消息映射中创建我们自己的错误处理例程。
    对于前两个解决方案,可以在警报和消息之间建立连接。它可以使用标准的java表和调度来构建。

    挑战在于是否必须始终批量运行或计划运行,因此无法实时执行验证。在大多数情况下,这是正确的。

    对于某些合作伙伴,我们希望执行实时警报,因此前两种方法并不理想。

    这里的想法是创建一个新的执行方法来覆盖固有的映射。然后,我可以先进行调用,然后通过调用 inhered execute 函数来执行映射。

    因此,API发生了变化,它看起来与我必须找到一种方法在PI 7.31上做同样的事情。在反编译(我做了很多试错实验)AMapping类之后,我能够找到它的工作方式。它看起来与Java映射API非常相似。它使它变得容易得多。

    所以我只需要转到“函数”选项卡,然后在 Attributes and Methods 中添加函数。

    从 PI Message Mapping 实时捕获错误信息

    然后我可以尝试一下 - 抓住对超级方法的调用,然后我可以在下面放置自己的错误处理。作为奖励,我能够使用转换输入来获取消息的动态属性。

    代码如下所示。

    1. public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException {
    2. // TODO Auto-generated method stub
    3. try {
    4. super.transform(in, out);
    5. } catch (Exception e) {
    6. // Custom Error handling.
    7. throw new StreamTransformationException("Custom Exception handler:" + e.getMessage(), e);
    8. }
    9. }

     

  • 相关阅读:
    智能电网中需求响应研究(Matlab代码实现)
    linux安装idea
    【缓存】OS层面缓存设计机制
    Python JSON
    Makefile--自动识别编译环境(x86还是arm)进行编译
    设计模式系列-外观模式
    柔性数组的使用及注意事项
    蚁群优化算法在具有时间窗的车辆路径问题中的应用:MATLAB实现及详解
    MAX插件CGMAGIC一键解决效果图在软包硬包上费时费力操作!
    v-for的用法及key值原理
  • 原文地址:https://blog.csdn.net/dwjnhkbc123/article/details/126168290