Disclaimer:
SOLUTIONS ARE PROVIDED ON AN "AS IS" BASIS. NEITHER FLEXERA NOR ITS SUPPLIERS MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, TITLE, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. LICENSEE MAY HAVE OTHER STATUTORY RIGHTS. HOWEVER, TO THE FULL EXTENT PERMITTED BY LAW, THE DURATION OF STATUTORILY REQUIRED WARRANTIES, IF ANY, WILL BE LIMITED TO THE SHORTER OF (I) THE STATUTORILY REQUIRED PERIOD OR (II) THIRTY (30) DAYS FROM LICENSEE’S ACCEPTANCE OF THE AGREEMENT.
Flexera One ITAM data can now be extensively integrated with other applications, using the just released "ReportsExecute" REST API.
This API (available only in the Cloud Version of ITAM) allows you to get the output of any custom web report created from the Web Client by calling the ReportID (that you can get from the ReportsIndex REST API).
Filtering is allowed on any indexed columns (you decide which columns are indexed when you create the report) by the SearchText parameter, just like the "Search" filter would be applied in a report.
The output is in JSON format, that can be easily converted into csv for instance.
The API call has the following grammar (CURL):
https://api.flexera.com/fnms/v1/orgs/{orgId}/reports/{id}/execute?searchText=&limit=&skipToken=
In the attached PowerShell example, an input allows you to enter the report name. The script finds the Report ID, queries the report, brings the result back, loads all pages, and converts the output to a csv.
A screenshot below.
Enjoy collecting any ITAM data now!
on
Jul 12, 2022
09:24 AM
- edited on
Dec 14, 2023
02:20 PM
by
tjohnson1
Great that this is available for F1 . What about On-premises? Are there any plans to backport this to On-premises?
@Ronny_OO7 - I am not aware of any plans to create a REST API for FNMS On-Premises. Unlike Flexera One ITAM, with FNMS-OP you have direct access to the database to pull any data that you want.
thanks Kclausen. Al tough you do have direct db acces many customers would like to see an API to integrate other products with FNMS. This is also because not everyone will get direct db acces and an API available from IIS FNMS webserver would be great then.Secondly for those customers who might migrate to F1 in the future it would save them developing things twice.
@Ronny_OO7 totally agree! We do not want to give direct database access to certain groups, and an API is the preferred method anyway. Would love to have that for On Prem.
Chiming in to support API for On-Prem as well.
David - NTT DATA Services
If you're interested in similar APIs in FlexNet Manager Suite (on premises), please vote for the following Idea that is logged against this product to help the Flexera team gauge the level of interest: FNMS-I-197: Getting Custom reports Using REST API and option to have PowerBI connection
Hello everyone,
That's right providing API access to external parties in an on premise instance of FlexNet Manager makes sense.
I published a while ago this article for Cloud Customers to show sophisticated things could be performed using the GetCustomViewResult SOAP API... that works nicely on premise.
Please check the pre requisites (activation request etc) and you will be able to use it.
There is no plan to develop a REST API for on premise instances at this stage but take note of your request (and please vote for the idea indeed).
Best regards,
Nicolas
Hi @nrousseau1 - is that the correct link (Allocation Automation Example for FNMS Cloud)? I briefly looked at the linked content and attachment and I didn't see mention of GetCustomViewResult SOAP API. Maybe I just missed it?
Thanks for responding. I have already added my vote to the idea.
Best, David
Hello all, thanks for the valuable feedback.
This is a SOAP API but is accessed through a Business adapter instead of through a PowerShell script. So it will make it slightly more packable in terms of dependencies. Personally, I would still opt to go the PowerShell route for more flexibility.
Apart from the permission challenges there were 2 other major limitations to the SOAP API:
1. FNMS data exposure was limited to the report model (similar to how Analytics is limited to its data models)
2. There’s a limit on how many data you can return and there’s no pagination built-in:
The last one was a major issue at several customers since we were looking for a solution to expose the Compliance inventory for further BI but the connection errored out on massive data sets which was their (Enterprise Architects) main interest.
For the first limitation we now have a solution in custom report SQL procedures.
So we can actually expose more data for On-prem (either directly with db access or through SOAP API with custom report SQL procedures) in comparison to the new ITAM REST API, but are limited on the latter on the amount of data we can return.
@nrousseau1 Nicolas do you knows a way to overcome this? A solution to paginate the data returned via the SOAP API, thanks and Regards Ronald
Hello @dmathias , Sorry, the document is not explicit on the fact it uses the GetCustomViewResult SOAP API. The embedded Business Adapter uses the API. Updating now (screenshot and text) the post to reflect this.
Thanks
Nicolas
Hello @Ronny_OO7 ,
Thanks for the precise (as usual!) information!
The SOAP API is indeed not paginated and I don't know work arounds.
When it comes to exposing objects beyond web reporting objects (whcih the REST API does not do neither today...). There is a nice way that works and that we have just used with the Windows Server Optimization flat report...
What I don't know is if using a SQL report that has no row limitations can lead to removing the limit on the query output. That said, I would be cautious has developers told me the SOAP API was brutal with loading the full data set and not paginating...
Best regards,
Nicolas
Example of Searchmapping xml:
<ArrayOfCustomViewColumnMapping>
<CustomViewColumnMapping>
<Column ColumnName="DeviceName" DefaultFilterType="2" />
<Index>1</Index>
<FieldName>DeviceName</FieldName>
<ShowInGrid>true</ShowInGrid>
</CustomViewColumnMapping>
<CustomViewColumnMapping>
<Column ColumnName="DeviceType" DefaultFilterType="2" />
<Index>2</Index>
<FieldName>DeviceType</FieldName>
<ShowInGrid>true</ShowInGrid>
</CustomViewColumnMapping>
<CustomViewColumnMapping>
<Column ColumnName="DeviceRole" DefaultFilterType="2" />
<Index>3</Index>
<FieldName>DeviceRole</FieldName>
<ShowInGrid>true</ShowInGrid>
</CustomViewColumnMapping>
<CustomViewColumnMapping>
<Column ColumnName="OperatingSystem" DefaultFilterType="2" />
<Index>4</Index>
<FieldName>OperatingSystem</FieldName>
<ShowInGrid>true</ShowInGrid>
</CustomViewColumnMapping>
</ArrayOfCustomViewColumnMapping>
HI
has anybody executed this and come up with JSON Serialization errors?
cheers
@nrousseau1 - Might want to update your script, $results is not getting updated with the data from $nextPage
Hi @nrousseau1 is it possible to get the results of the Application Transparency Report through API now? @shill2
has anyone really looked closely at <your web url>/ManageSoftServices/ComplianceAPIService/ComplianceAPIService.asmx
soap based api
it may not be turned on in your license.
under the ManageSoftServices in IIS on the WebUI server.
@jq3i4h9u - unfortunately there is not currently any API that can be used to retrieve the exact data shown in the Application Transparency report. The API discussed in this post is focused on retrieving data from custom reports that users have configured, not built-in reports or other UI pages.
General FYI - don't know if this is just me, but it seems like there's maybe a wait period between 1) creating a report and 2) querying it via this endpoint.
For example, I created a new custom report this AM, and then tested a working script and it gave this error:
Invoke-RestMethod : {"name":"fault","id":"OJGPXiVT","message":"internal error: Unable to retrieve saved report result","temporary":false,"timeout":false,"fault":true}
When I run it against an older report, it works just fine.
I am assuming maybe the system needs a few hours (or some sort of nightly reconcile?) before the reportID can be recognized by the query?
EDIT: just found this - not sure if it's related. Known Issue: Attempts to call the reportsExecute API fail after Flexera One ITAM maintenance with 40... - Community. However, I have ran the report in the UI before querying it, so I don't think it's the same error. Guessing maybe there are details saved (after running in the UI) in a nightly reconcile that the query uses.
Thanks !
@johnksilverwood , please confirm your tenant. I have not experienced this on the EU tenant where multiple reports have been built and immediately imported via teh API
@Nico_Erasmus - I am in United States / North America tenant. It looks like it's working now after 2 hours or so.
So - I guess it may just need to wait a few hrs to settle.
Hi, @johnksilverwood
I am not sure if this is related, but from my experience the reports need to reside in root folder of reports (not in any custom/built-in subfolders), otherwise the report cannot be found via the API. When they are in root Reports folder the URL is following:
https://slo.app.flexera.eu/Suite/Reports/View/<reportID>
If reports are in subfolders the URL is following:
https://slo.app.flexera.eu/Suite/Reports/<reportname>?_reportId=<reportID>
If they are in subfolders the URL is as follows I get the same type of error:
Invoke-WebRequest: {"name":"not_found","id":"jfc7ghBZ","message":"Cannot run the report execute the report once in the UI","temporary":false,"timeout":false,"fault":false}
@nrousseau1 maybe there is some way to circumnvent this?
@anttimustonen I believe I read somewhere that you need to run the report in the platform (UI) at least once before it is ready to be queried - maybe a different error - have you tried running it in ITAM first before hitting it via API?
@johnksilverwood I've rested just to confirm and still got the same error. The only solution seemed to be is having reports in the root folder.
My custom reports are in a sub folder and it works most days but still get the 'Cannot run the report execute the report once in the UI' a couple of times a month. It seems to happen more often after other new custom reports are created. It's quite an annoying issue and wish there was an ETA for when it'll get fixed.
The issue of needing to re-run a report in the UI every now and then is the issue described in the following article that @johnksilverwood noted in an earlier comment: Known Issue: Attempts to call the reportsExecute API fail after Flexera One ITAM maintenance with 404 NOT FOUND response and error: "Cannot run the report execute the report once in the UI" (IOK-885536).
The status of the issue is currently showing as "under consideration to be addressed in a future release". I've heard some chatter than it is getting attention - hopefully won't be too long!
Custom reports don't need to be (and typically are not) in the root folder in order to be accessible through the API, so @Anonymous's observations sound right. I don't have any immediate insight into what might be going on with @anttimustonen's API calls sorry.
Interested to hear what the group has configured to secure the refresh token. We created a system environment variable which our PS script calls which works but wondering if a 'better' method others have used to secure the refresh token.