The Community is now in read-only mode to prepare for the launch of the new Flexera Community. During this time, you will be unable to register, log in, or access customer resources. Click here for more information.
Hi,
Is there any API call to retrieve the installed application(s) version on the server?
Aug 06, 2019 11:40 AM
Hi,
Can you please elaborate your question. You want an API call to retrieve the version of FNMS that is installed?
Aug 06, 2019 02:31 PM
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.
Aug 06, 2019 02:59 PM
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).
Aug 06, 2019 08:41 PM
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!
Aug 07, 2019 10:23 AM
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
Aug 07, 2019 10:30 AM
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:
It invoked it will return something like:
Otherwise the version numbers of individual FNMS app components can be seen in the registry:
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
Aug 06, 2019 08:08 PM - edited Aug 06, 2019 08:10 PM
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
Aug 07, 2019 05:48 PM