云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_网站建设官网_促销

小七 141 0

这篇博文是与Mateusz Nowak联合创建的。

熟悉SAP PI/PO的人可能知道,在运行时,适配器引擎(AAE)和集成引擎(IE)中都可以存储不同的消息版本。对消息版本以及如何配置转移、日志记录和版本保存的明确说明在我们的int4自动化SAP应用程序接口测试套件的创建过程中,可以在SAP帮助链接

下找到我们正在寻找某种方法从PI(javastack-AdapterEngine)获取特定版本的消息:映射之前和之后。这可以通过调用SAP提供的web服务AdapterMessageMonitoringVi来完成,该VI可用于所有标准PI安装版本。

我们决定使用以下两种web服务方法:getMessageList检索消息列表,getMessageBytesJavaLangStringIntBoolean获取整条消息内容(包含业务数据的有效负载的消息头和消息体)。如果您想了解更多有关此特定web服务的所有其他方法或如何从ABAP堆栈获取消息,请访问Andreas的博客。

如果您只对快速获取感兴趣,请向下滚动到摘要。

但是,在测试我们的产品时,我们发现在调用getMessageBytesJavaLangStringIntBoolean方法时,只有当:

我们指向消息的分段版本,并且在ICO的高级设置中打开登台

另一方面,企业大数据,当:

登台关闭并且日志记录已打开。

图1显示了集成目录中集成配置对象中提到的高级设置选项卡,您可以在其中操作暂存和日志记录设置。

图1 ICO的高级设置–暂存和日志记录设置–PI集成目录。

发生getMessageBytesJavaLangStringIntBoolean仅适用于暂存消息,不允许下载已记录消息的内容。

幸运的是,SAP成功解决了此问题,并在发布的说明中提供了解决方案:2437778。该修补程序向AdapterMessageMonitoringVi引入了一个新方法getLoggedMessageBytesweb服务,它允许获取记录消息的特定版本。

下面您可以找到一些示例,解释通过调用每个方法可以从Java堆栈中检索哪些消息版本。我们已经使用WS-Navigator(测试Web服务的标准SAP工具)对它们进行了测试,每次传递一个不同的版本参数:

getMessageBytesJavaLangStringIntBoolean

如果我们传递'0'作为版本参数(图2),调用getMessageBytesJavaLangStringIntBoolean,它将从PI检索staging–0版本(图2)。3) :

图2:使用WS-Navigator(SAP PI)调用方法getMessageBytesJavaLangStringIntBoolean。版本参数值设置为"0"。

图3:消息监视器(SAP PI)中的消息详细信息。突出显示的版本:0,MS版本-暂存。

图3显示了一条消息的详细视图,其版本存储在PI持久性中,企业管理软件公司,可通过SAP PI消息监视器获得。可以直接从监视主页访问消息监视器::500/pimon=>适配器引擎=>消息监视器。为了获得消息版本的详细信息,请遵循图4a和图4b所示的步骤。在PI中,通过前两列中可见的两个参数来区分在不同处理步骤中保存的消息版本(图3):version–一个整数值和一个标题–除了自定义大小写之外,它是一个两个字母的参数。如果您想了解每个标题代表哪个处理步骤,大数据用什么数据库,淘客文案,请检查help.sap.com帮助: https://help.sap.com/viewer/5cf7d2de571a45cc81f91261668b7361/7.5.8/en-US/6c6b34b0297a4d2a95e7b1d9443d0fbb.html

图4a:点击Overview选项卡中的多条消息,进入详细消息列表。

图4b:选择一条消息单个消息并单击"打开消息"按钮,以了解PI持久性中存储的消息版本。

如果我们在调用getMessageBytesJavaLangString IntBoolean时传递"1"作为版本参数值,它将从PI检索暂存–1版本(图5):

图5:消息监视器(SAP PI)中的消息详细信息。突出显示的版本:1,AM version–staged.

调用getMessageBytesJavaLangStringIntBoolean时,当我们传递'2'作为版本参数值(在这种特殊情况下是记录消息的映射后版本的整数版本号)时,方法无法在暂存消息中找到此特定版本号,因此它从暂存中获取最新版本(图6)。

图6:消息监视器(SAP PI)中的消息详细信息。突出显示的版本:1,MS版本-分阶段。最新版本。

getLoggedMessageBytes

如果在调用getLoggedMessageBytes方法时,我们将传递一个标题"BI"(图7),其中引用对于仅暂存且没有记录版本的消息(图8),该方法将不返回任何结果(图9)。

图8:消息监视器(SAP PI)中的消息详细信息。突出显示的版本:0,BI版本-暂存。PI persistence中没有存储BI消息的日志版本。

图9:在WS Navigator(SAP PI)中调用getLoggedMessageBytes方法时,BI值作为版本参数传递。

图10:getLoggedMessageBytes方法在我们将'BI'标题参数值作为版本传递后,不返回任何结果。这是因为PI持久化中没有BI消息的记录版本。

如果调用getLoggedMessageBytes方法作为版本参数,建站快速,我们将传递标题"edi"(图12),它引用已记录的消息(图11),该方法将成功返回其有效负载(图13)。

图11:消息消息监视器(SAP PI)中的详细信息。突出显示的版本:0,edi版本–已记录。

图12:作为版本参数传递的edi值调用WS Navigator(SAP PI)中的getLoggedMessageBytes方法