cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Author: Nicolas Rousseau
  • Author Email Address: nrousseau@flexera.com
  • Solution Type: Integration
  • Flexera Product & Version: FlexNet  Manager / Flexera One ITAM
  • Environment: On Premises / Cloud
  • Development Effort (Days): 2
  • Implementation Effort (Days): 0.5
  • 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.

Goal of the integration and approach

Citrix consumption is often related to metrics that cannot be managed by ITAM (concurrent users, named users). The Citrix Console provides all relevant data about license consumption by Citrix server.

Being able to aggregate the consumption data across Citrix servers brings visibility and is worth an integration. A Citrix API (Get-LicInventory) exposes the Console data. Please note that the concurrent consumption data exposed is not the peak (over e period) but the current concurrent consumption at the time the API is called.

The integration works in two steps:

  • A PowerShell collects the Citrix consumption on each Citrix server.
  • A Business Adapter creates software License allocations.
    • A first step aggregates the rows by Server / Citrix Product / License Metric. This step uses SQL and can be performed only by the full version of the Business Adapter Studio. To adapt this solution for Flexera One ITAM (Cloud), you would need the aggregation logic to happen in the PowerShell or in a staging database (on the beacon or accessible by the beacon)
    • A second step does a classical device license allocation.
      • Using License Name mapping

The implementer is expected to manage the scheduling of the Citrix data collection, the csv files transfer and renaming / archiving. Every week for the next allocations, each Citrix Server’s consumption data should be added to a unique file that will contain all allocations to perform.

Citrix Data Collection with PowerShell

The PowerShell below needs to be run from a beacon.

Each script will query one Citrix Server. All results should be appended to the same file.

The weekly processing of the allocation data should take the csv file, process it and rename / archive it so that the next PowerShell data collection re-creates a new file.

A variant of the implementation is to run multiple time (Every 30 minutes?) the API calls, feed the csv file with redundant measurements and extract the data with the (Max) of each Product / Server / Metric. Thus, concurrent usage license will have the peak of weekly consumption allocated.

The PowerShell code is embedded in the Word document attached to this article

Picture15.png

Business adapter

The Business Adapter Studio reads the CSV generated by the PowerShell and requires a SQL step to

  • Enforce the column formats (that can be interpreted as text for consumption)
  • Modify the Citrix server Names to make them consistent with the records that eventually exist in FlexNet Manager / ITAM (removes the domain name)
  • To aggregate the various rows that could be reported multiple times for the same Citrix servers / Product / Metrics if the servers had multiple licenses imported over the time (additional users)

This SQL step could be performed in a SQL staging database if the Business Adapter Studio has no direct connection to the database (ITAM Cloud).

The next steps do the following (that can be tuned):

  • If a Citrix Server is not found in existing inventory, it is created, otherwise, it is matched based on server name.
  • The Vendor (Citrix) will be either matched based on name or created and will be use as “Publisher” for the licenses.
  • Licenses are either matched by name (see below the license name mapping) or created.
  • Allocations are created to match the rows in the source csv for the licenses in scope of the import. If licenses A, B and C are present in the CSV, the importer will, for these three licenses, create allocations present in the file and delete the ones that are no longer in the file.
  • The consumptions reported by the Citrix servers (and aggregated) are summed by Server / Product / license model. Please note that this Business Adapter Studio integration will work only with a full version of the Business adapter because it contains a SQL step.
  • If you are a Cloud Customer, you need to import the data in a staging table and perform the SQL queries… then read the data in the SQL table to update the licenses using the Beacon version of the Business Adapter Studio. For the staging table, you must install a SQL Server Instance, that you will “fake” to be a FlexNet Manager database (so that the Business Adapter Studio can write in it). To do so, you need to run the SQL script embedded on an empty SQL Server instance that will create a DatabaseConfiguration table and will insert a CMSchemaVersion with the “17” value (FlexNet Manager 2020), feel free to tune to make sure your Business Adapter is compatible with the declared version.

(Files are embedded in the Word Document attached to this article).

Use this BAS mapping xml file.

Picture17.png

It reads a CSV file that has the format of the sample below.

The steps of the integration are visible below.

abe9b9b4-d972-4e90-b023-b4bac0f84b16.png

Notice the SQL Server step the performs the consumption aggregation.

Picture19.png

Notice the use of the data transformation feature to align the license names (as reported by the concatenated Localized License Product Name and License Model) and the actual license created.

Picture20.png

 Finally, notice the update rule that will lead into allocations for licenses in scope of the import matching exactly the ones in the csv file.

Picture21.png

Was this article helpful? Yes No
100% helpful (2/2)
Version history
Last update:
‎Aug 30, 2023 10:17 AM
Updated by: