(At this stage it's probably important to point out that we have an *internal* installation of EasyPush - we are not running off Futurecoms' servers in Switzerland. There are many reasons for this, but one of the advantages is that we have access to the back-end database for reporting)
EasyPush is actually a very special case as well as it's not only keeping the application up-to-date that's an issue but keeping the content up to date as well. When you install the application it includes only the barest bones of content - you need to click the "Update" button for it to connect to the server and download specific content for that iPad;
|EasyPush: Update button|
In addition as part of the log the current version of the software is recorded. This is useful in that MobileIron (at least in our configuration!) does not force the users to update their applications so having this information allows you to also identify those people who, while they are using the most up-to-date data within EasyPush, are not running the latest application.
The log information is held in three tables within the database; fucoLogEntry, fucoLogSession, and fucoDevice. Linking these together is fairly easy (in fact TOAD auto-completes the joins!) the SQL is;
SELECT LS.fkFucoAppVersion "EasyPush Version",
LS.startDate "Last Update Date"
FROM fucoLogEntry le
JOIN dbo.fucoLogSession LS
ON LS.id = le.fkFucoLogSession
JOIN dbo.fucoDevice D
ON D.id = LS.fkDevice
WHERE 1 = 1
AND le.logType = N'System'
AND le.message = N'Update'
AND LS.startDate = (SELECT MAX(LS1.startDate)
FROM fucoLogEntry LE1
JOIN dbo.fucoLogSession LS1
ON LS1.id = le1.fkFucoLogSession
WHERE LS1.fkDevice = LS.fkDevice
AND le1.logType = N'System'
AND le1.message = N'Update')
ORDER BY LS.startDate DESC
This gives you some fairly simple data to work with, I've included the UDID as it's the easiest thing to search for in MobileIron. As the two systems are separate (and not necessarily in sync) it's possible that the recorded Member in EasyPush isn't actually the user of the device according to MobileIron!
Using this SQL I put together a fairly simple SSRS report;
|EasyPush: SSRS Report on Versions and Update Dates|
I've added a couple of parameters to allow me to exclude versions (the current version for example) and people who have updated after a specific date.
Hope this is helpful to someone!