Search code examples
dynamics-365-operations

How can flight features be activated?


Some features of D365FO are locked as a so called "flight" feature. How can these features be activated?

Features flighted in data management and enabling flighted features describes this for data management flight features, but I want to enable the features described in Unit of measure conversions for product variants.

How can I determine the flight name of a feature and how I can use this name to correctly enable this feature?


Solution

  • As of April 26 2019, there seems to be no comprehensive list of all flight features in D365FO. This means you have to dig into the code to find out which feature uses which flight name. How to find new Feature-Flights in Dyn365FO has some information on this, but it does not cover the feature in question.

    In the case of feature Unit of measure conversions for product variants I dug into the form EcoResProductParameters shown in the description and took a look at the code of the form. The updateDesign method contains the line

    boolean flightModeEnabled = EcoResProductUnitConverter::isProductUnitConversionPerVariantFlightEnabled();

    which in turn uses the string constant 'EcoResProductUnitConversionPerVariantFeature' in class EcoResFlighting. This constant is the flight name of the feature in question.

    As described in the article on data management flight features, you can now use that name to create a new record in table SysFlighting. I found it easiest to create a new record using the table browser. Unfortunately, you still have to set the values for fields FlightName and Enabled via SQL command or the table edit mode in SSMS, because the fields are not enabled for editing (but curiously, field FlightServiceID is).

    This is how my final SysFlighting record looked in the table browser. Note that your values for Partition, RecId and recVersion can be different. Table browser of final SysFlighting record

    Note that the value 12719367 for the field FlightServiceID must also be added in the web.config file (usually located in C:\AOSService\webroot on a development box). Locate the following line in the file and add the value as shown:

    <add key="DataAccess.FlightingServiceCatalogID" value="12719367" />

    After that, do an iisreset, after which the functionality of the feature was available on my system.

    Note that this works only in development environments. Deployed environments may restrict access to iisreset, the database and the table browser. In some environments, the iisreset can be replaced by a restart of the "World Wide Web Publishing Service". For other systems, you may have to contact Microsoft support to have them enable the feature for you.