cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

API to retrieve the version number of installed application(s)

Hi,

Is there any API call to retrieve the installed application(s) version on the server?

(7) Replies

Hi,

Can you please elaborate your question. You want an API call to retrieve the version of FNMS that is installed?  

We have installed Flexnet Manager Suite 2019R1 in our environment, and the agent is installed in almost 2000 virtual machines to collect the license information. I also can able to see what all the application(s) and the version(s) of those application(s) installed in those individual servers.

I have a requirement to get the software's installed on each server and store them into a CMDB. In order to fulfill this requirement, I want to write a script that uses the FNMS API's, retrieve the inventory of each node and store that into our CMDB. So, I'm wondering if FNMS has any API's that we can use to accomplish this.

A bulk extract of data about all (or a significant number of) installations from FlexNet would normally be done by running an appropriate SQL query against the compliance database. This is only feasible for a FlexNet On-premises installation (not FlexNet Cloud).

FlexNet does have a SOAP API for extracting report data. See this thread for some more information: Access or Update FNMS Cloud Data using PowerShell. However be aware that this API is not directly supported, and likely isn't suitable to scale for extracting details of all installations (typical FlexNet installations will be tracking many tens to hundreds of millions of installations).

(Did my reply solve the question? Click "ACCEPT AS SOLUTION" to help others find answers faster. Liked something? Click "KUDO". Anything expressed here is my own view and not necessarily that of my employer, Flexera.)

Thank you @MurrayPeters , @ChrisG for your inputs!

I am looking for the inventory of each node/agent in FNMS. If you can provide me a SQL query which returns the Servers Names to Software's Mapping, that would be really helpful.

Thanks!

Hi,

SELECT
	cc.ComputerName
	,st.FullName
FROM ComplianceComputer cc
JOIN InstalledApplications ia
	ON cc.ComplianceComputerID = ia.ComplianceComputerID
JOIN SoftwareTitle st
	ON ia.SoftwareTitleID = st.SoftwareTitleID

You can improve form there, if you need additional fields.

Best regards,

Markward

FNMS itself has a SOAP based web API with a GetVersion operation - you can invoke it as follows:

http://localhost/ManageSoftServices/ComplianceCoreService/ComplianceCoreService.asmx/GetVersion

You can browse the API's and see what parameters apply & what attributes are returned:

API1.PNG

It invoked it will return something like:

API2.PNG

Otherwise the version numbers of individual FNMS app components can be seen in the registry:

registry.PNG

Here, the highlighted entries denote:

ComplianceVersion:   the FNMS application server version 
ETCPVersion:   the version of the FNMS agent installed
ETDPVersion:   the version of the FNMS beacon installed

 

 

 

Here is an additional query that returns additional detail such as the Domain/Serial Number of the inventory device (for matching up to an existing CI in your CMDB), as well as additional software details from our ARL such as Publisher Name, Version, Edition and the FlexeraID (which can be used to map Flexera Software Title against the Service Catalog in your CMDB).

SELECT
c.ComputerName,
d.FlatName as 'Domain',
c.SerialNo as 'SerialNumber',
pu.PublisherName,
t.FullName as 'SoftwareTitle',
p.ProductName,
v.VersionName as 'VersionNumber',
e.EditionName as 'Edition',
REPLACE(REPLACE(cl.DefaultValue,'[',''),']','') as 'Classification',
a.SoftwareRecognitionID as 'Flexera ID'
FROM ComplianceComputer c
LEFT JOIN ComplianceDomain d on d.ComplianceDomainID=c.ComplianceDomainID
JOIN InstalledApplications i ON c.ComplianceComputerID = i.ComplianceComputerID
JOIN SoftwareTitle t ON i.SoftwareTitleID = t.SoftwareTitleID
JOIN SoftwareTitleProduct p on p.SoftwareTitleProductID=t.SoftwareTitleProductID
JOIN SoftwareTitlePublisher pu on pu.SoftwareTitlePublisherID=p.SoftwareTitlePublisherID
JOIN SoftwareTitleVersion v on v.SoftwareTitleVersionID=t.SoftwareTitleVersionID
JOIN ARLStagingSoftwareTitle a on a.SoftwareTitleID=t.SoftwareTitleID
LEFT JOIN SoftwareTitleEdition e on e.SoftwareTitleEditionID=t.SoftwareTitleEditionID
JOIN SoftwareTitleClassification cl on cl.SoftwareTitleClassificationID=t.SoftwareTitleClassificationID