Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
maxi1555_2022
Contributor
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
Labels in this area