Skip to Content
Author's profile photo Maximiliano Colman

Custom Cloud Integration Content message monitor in SAP PO 7.5

Hi experts,

I’m a humble integration consultant, who has worked with SAP PI a few years and I’m starting my way in CPI.

I’m writing this post because SAP doesn’t provide a message monitor for CPI content based on SAPUI5 even in 2018 in SAP PO 7.5 system, I’m talking about the following monitor:

 

I’m  want to share with us one undocumented OData service called “MPLOData” provided by SAP in SAP PO 7.5 that you can use to build a custom Cloud Integration Content message monitor.

 

The OData service is provided in the following path:

<PROTOCOL>://<HOST>:<PORT>/MPLOData/MPLODataServlet.svc/

 

The metadata file looks very interesting:

<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
	<edmx:DataServices m:DataServiceVersion="1.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
		<Schema Namespace="http://sap.com/igw/mpl" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
			<EntityType Name="MPLHeader">
				<Key>
					<PropertyRef Name="messageGUID"/>
				</Key>
				<Property Name="messageGUID" Type="Edm.String" Nullable="false"/>
				<Property Name="logStart" Type="Edm.DateTime" Nullable="true"/>
				<Property Name="logEnd" Type="Edm.DateTime" Nullable="true"/>
				<Property Name="sender" Type="Edm.String" Nullable="true"/>
				<Property Name="receiver" Type="Edm.String" Nullable="true"/>
				<Property Name="integrationFlow" Type="Edm.String" Nullable="false"/>
				<Property Name="status" Type="Edm.String" Nullable="true"/>
				<Property Name="nodeID" Type="Edm.Int32" Nullable="true"/>
				<Property Name="messageSize" Type="Edm.Int64" Nullable="false"/>
				<Property Name="transactionCount" Type="Edm.Int32" Nullable="false"/>
				<NavigationProperty Name="MPLPart" Relationship="http://sap.com/igw/mpl.MPLHeader_MPLPart" FromRole="FromRole_MPL" ToRole="ToRole_MPL"/>
			</EntityType>
			<EntityType Name="MPLPart">
				<Key>
					<PropertyRef Name="messageGUID"/>
				</Key>
				<Property Name="messageGUID" Type="Edm.String" Nullable="false"/>
				<Property Name="mplPart" Type="Edm.String" Nullable="false"/>
				<NavigationProperty Name="MPLHeader" Relationship="http://sap.com/igw/mpl.MPLHeader_MPLPart" FromRole="ToRole_MPL" ToRole="FromRole_MPL"/>
			</EntityType>
			<Association Name="MPLHeader_MPLPart">
				<End Type="http://sap.com/igw/mpl.MPLHeader" Multiplicity="1" Role="FromRole_MPL"/>
				<End Type="http://sap.com/igw/mpl.MPLPart" Multiplicity="1" Role="ToRole_MPL"/>
			</Association>
			<EntityContainer Name="MPL_CONTAINTER" m:IsDefaultEntityContainer="true">
				<EntitySet Name="MPLHeaderSet" EntityType="http://sap.com/igw/mpl.MPLHeader"/>
				<EntitySet Name="MPLPartSet" EntityType="http://sap.com/igw/mpl.MPLPart"/>
				<AssociationSet Name="Association_set_mpl" Association="http://sap.com/igw/mpl.MPLHeader_MPLPart">
					<End EntitySet="MPLHeaderSet" Role="FromRole_MPL"/>
					<End EntitySet="MPLPartSet" Role="ToRole_MPL"/>
				</AssociationSet>
			</EntityContainer>
		</Schema>
	</edmx:DataServices>
</edmx:Edmx>

 

A JSON sample response looks like this:

 

{
	"d": {
		"results": [{
			"__metadata": {
				"id": "http://<HOST>:<PORT>/MPLOData/MPLODataServlet.svc/MPLHeaderSet('AFpg5m8s84Uo8rToykCiN9oq__Tf')",
				"uri": "http://<HOST>:<PORT>/MPLOData/MPLODataServlet.svc/MPLHeaderSet('AFpg5m8s84Uo8rToykCiN9oq__Tf')",
				"type": "http://sap.com/igw/mpl.MPLHeader"
			},
			"messageGUID": "AFpg5m8s84Uo8rToykCiN9oq__Tf",
			"logStart": "\/Date(1516299887520)\/",
			"logEnd": "\/Date(1516299887598)\/",
			"sender": null,
			"receiver": null,
			"integrationFlow": "dummy_project",
			"status": "COMPLETED",
			"nodeID": null,
			"messageSize": "0",
			"transactionCount": 0,
			"MPLPart": {
				"__deferred": {
					"uri": "http://<HOST>:<PORT>/MPLOData/MPLODataServlet.svc/MPLHeaderSet('AFpg5m8s84Uo8rToykCiN9oq__Tf')/MPLPart"
				}
			}
			}
		}
}

 

After a few lines of SAPUI5, you can get a custom Cloud Integration Content message monitor in SAPUI5:

 

Home screen:

Time period filter:

Status Group filter:

Status filter:

IFlow filter:

Maximun number of Results filter:

GUID filter:

I run a search by time period:

I built 4 basic reports:

you can choose the type of output, chart or table:

Example of the status chart:

Example of the status report table:

I click on a message, and I can see the detail, i.e. the log of a successfully processed message:

The log of a message processed in Failed status:

The IFlows report type looks like this:

The IFlows report type table:

The Days report type looks like this:

the table of the report type Days:

The processing time by IFlow chart looks like this:

The processing time by IFlow report :

 

I will explain how to add your custom Cloud Integration Content message monitor to the Cloud Integration Content Managment Cockpit in a few steps:

You need access to file system of the SAP PO 7.5 server.

1-Paste the view & controller in the following location:

2-Add the libraries as follow:

3-Add the view & controller scripts:

4-Add an ID and the view name:

5-Add a new IconTabFilter for the previous ID

6-Delete all the content of the following location:

7-Restart the application in NWA:

8-Clear the browser cache or open an incognito windows

9-Go to Cloud Integration Content Management Cockpit

10-A quick test

11-Check the results

 

I hope to see something similar or better in the next versions of SAP PO 😉

 

Enjoy it!

 

Max.

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Just what I needed!!! Thanks!!!

      Author's profile photo Alexander Bundschuh
      Alexander Bundschuh

      Hi Max,

      first of all I would like to clarify that providing APIs for building custom UIs such as a monitoring dashboard is definitely part of the solution. However, in this specific case, you use an internal API which hasn't been officially released. We actually use the API for monitoring the cloud integration
      content runtime in SAP Solution Manager. Btw, those UIs use SAP UI5 technology.

      We are currently working on providing parts of the official OData API (https://help.sap.com/viewer/DRAFT/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/a617d6f37ddc43db8eeb1279662ed5c2.html) supported on SAP Cloud Platform Integration in SAP Process Orchestration. This is planned for 7.5 SP12, due to changes.

      Since the API that you use hasn't been officially released, we might then remove or actually replace the API without further notice.

      I also like to point to a risk of your approach, i.e., wrt the tweaking of the management cockpit javascript. I hope you are aware that your changes of the standard cockpit are gone whenever you apply a new SP.

       

      Alex

      Author's profile photo Maximiliano Colman
      Maximiliano Colman
      Blog Post Author

      Hi Alexander,

      Thanks for the clarifications,  I will wait for that official OData API anxiously.

      Do you have more information about of monitoring cloud integration content runtime in Solution Manager?

      Do you know when the SAP PO 7.5 SP12 will be released?.

      I know the risks of my approach, don't worry 🙂

       

      Kind Regards.

      Max.

      Author's profile photo Alexander Bundschuh
      Alexander Bundschuh

      Hi Max,

      SP12 is targeted to be shipped by end of June this year.

      Regarding monitoring of cloud integration, check out the following links:

      https://help.sap.com/viewer/82f6dd44db4e4518aad4dfce00116fcf/7.2.06/en-US/cf4b8a54172bae3be10000000a4450e5.html for monitoring in SAP Solution Manager

      https://help.sap.com/viewer/f0c8fa21f41947cf8adb8e4594fc2314/120/en-US/2ab373356b384aa585ec8b42f8022372.html for Advanced Integration Monitor in Focused Run

      Alex

      Author's profile photo Mike Sibler
      Mike Sibler

      Hello,

      the official API was shipped with SAP Note 2610753-New Feature: OData API for Cloud Integration Content monitoring.

      Regards,
      Mike