Getting BCM Real Time Monitoring Data from an External Application
Usually you use Online Monitoring Interface to get real time monitoring data for SAP BCM. For historical data, you’d to use Reporting Infrastructure. You can use standart SQL Reporting or custom reporting such as NetWeaver BW or BusinessObjects based reporting.
One of our customer is using SAP BCM 7.0.3 for CRM InteractionCenter Call Center scenario.
They wanted a Wall Board application on big TV screens within Call Center to give real-time CC data. After reviewing the standart BCM monitoring, they decided to create a custom application.
Standart BCM Monitoring
If you have Monitoring authorization, you can access the BCM Monitoring via CDT menu (as below) or typing the http://<web_vu_ip>/monitor/ url.
Well, actually standart monitoring gives most of the data but in SAP format.
So I decided to dig the Monitoring database to get the sae data for a custom application.
SAP BCM Monitoring Database
All monitoring (up-to-date statistics and real-time-data) are kept in database <VU>_Monitoring database. There are 10 tables which contains these datas.
Here the problem is that most of the table fields are filled with GUID key values. To get the text values of them, you’ve to check the <VU> and <VU>_Directory database tables.
Here I share sample queries to give you some insight.
Query: Get Active Incoming Calls
SELECT COUNT(*) FROM [ACME_Monitoring].[dbo].[TAMCurrentContactList] where Type = 'CallIn'
Which returns 2 in the following case:
Query: Get Active Agents List
SELECT [UserGUID] ,[Number] ,[Status] ,[UserStatus] ,[ActiveIbCall] ,[ActiveIbCallCnt] ,[ActiveIbCallStartTime] ,[ActiveObCall] ,[ActiveObCallCnt] ,[ActiveObCallStartTime] ,[ProfileGUID] ,[ProfileReason] FROM [ACME_Monitoring].[dbo].[TAMOperatorStats] where UserStatus <> '-'
With the above query, you’ll get the online agents info.
If you want the Agent Profile Text, then you’ve to make another query to get profile text info from <VU> database as follow:
SELECT [Type] ,[Reason] ,[Availability] FROM [ACME].[dbo].[Presence] where GUID = '<ProfileGUID>'
e.g. ProfileGUID: A50FD4F5-ED3F-47FD-8B64-5BEE31843DC7
Result will be as follow: