栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

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

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

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

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

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

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

代码如下所示。

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号