Skip to Content

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.

5 Comments
You must be Logged on to comment or reply to a post.