Introduction
FlowOn Tools provide a powerful suite of utilities designed to manage the export and import of customizations and configurations in Dynamics 365. These customizations, referred to as FlowOn constructs—including but not limited to Blocks, Flows, Recipes, and Business Processes—are stored as entity records within Dynamics 365.
To organize these customizations, FlowOn uses projects, which group related configurations into a modular structure. This modular approach allows for the easy management, export, and deployment of customizations across different environments. A FlowOn project is the primary mechanism for creating, exporting, and importing these customizations, encapsulated as a FlowOn package.
Additionally, FlowOn Tools provide the ability to export the CRM solution in either managed or unmanaged mode, further enhancing flexibility when working with FlowOn packages.
FlowOn Package
A FlowOn package is an archive file that contains the records for various FlowOn artifacts, along with zero or more data map files. Data map files are essential when moving customizations between environments, as they allow for environment-specific values to be overridden during the import process. This flexibility ensures that references to entity records or configurations can be adjusted according to the target environment.
Export Project
Exporting a FlowOn project involves extracting the entire set of customizations from a Dynamics 365 instance into a FlowOn package. This package can then be transferred and deployed in another environment, facilitating the seamless migration of configurations. You can also choose to export the associated CRM solution as either managed or unmanaged.
dotnet flowon-dynamics e --connectionstring <Connection_String> -p <FlowOn_Project_Name> -s true -m true -o <Output_Path>
| Option | Description | Required |
|---|---|---|
--c <Connection_String> | The connection string to the Dynamics 365 instance. This connects the tool to the Dynamics 365 environment. | Yes |
-p <FlowOn_Project_Name> | The name of the FlowOn project to export. This determines which project from Dynamics is exported. | Yes |
-s <true/false> | Set to true if you want to include the CRM solution in the export. Defaults to false if not specified. | No |
-m <true/false> | If -s is set to true, this option determines whether to export the CRM solution as managed (true) or unmanaged (false). Defaults to false. | No |
-o <Output_Path> | Specify the directory where the FlowOn package archive file will be saved. | Yes |
-?, -h, --help | Display help information about the command and available options. | No |
Example
dotnet flowon-dynamics e --connectionstring "AuthType=OAuth;Username=user@example.com;Password=...;Url=https://yourorg.crm.dynamics.com" -p "Legal Cases Management" -s true -m true -o "C:\Projects\ExportedFiles"
Extract Data Maps
Extracting data map files from an existing FlowOn package is crucial when preparing for deployment across different environments. These files provide the capability to customize environment-specific settings during the import process.
dotnet flowon-dynamics m -p <FlowOn_Package_Path> -o <Data_Map_Output_Path>
| Option | Description | Required |
|---|---|---|
-p, --project-file-path <project-file-path> | Specify the FlowOn for Dynamics project file path. | Yes |
-o, --output-directory <output-directory> | Specify the directory where the mapping files will be saved. | Yes |
-?, -h, --help | Show help and usage information. | No |
Example
dotnet flowon-dynamics m -p "C:\Projects\MyFlowOnPackage" -o "C:\Projects\DataMaps"
Import Project
The import process involves taking a FlowOn package and applying it to a Dynamics 365 instance. This operation inserts the FlowOn project into the target environment and updates associated artifacts according to the specifications in the data map files. Additionally, it is possible to import a CRM solution file along with the FlowOn project, ensuring that all necessary solution components are updated in the target environment.
dotnet flowon-dynamics i --connectionstring <Connection_String> -p <FlowOn_Package_Path> -m <Data_Map> -s <Solution_File_Path>
| Option | Description | Required |
|---|---|---|
-c, --connectionstring <connectionstring> | Specify the connection string to the Dynamics 365 instance. | Yes |
-p, --project-file-path <project-file-path> | Specify the FlowOn for Dynamics project file path to import. | Yes |
-m, --map-file-path <map-file-path> | Specify the FlowOn for Dynamics mapping file path to import. | No |
-s, --solution-file-path <solution-file-path> | Specify the file path to the CRM solution to import along with the FlowOn project. | No |
-?, -h, --help | Show help and usage information. | No |
Example
dotnet flowon-dynamics i --connectionstring "AuthType=OAuth;Username=user@example.com;Password=...;Url=https://yourorg.crm.dynamics.com" -p "C:\Projects\MyFlowOnPackage" -m "C:\Projects\DataMaps.xml" -s "C:\Solutions\MySolution.zip"
Continuous Integration
FlowOn Tools support Continuous Integration (CI) by allowing developers to automate the export of FlowOn projects. After exporting, the FlowOn package can be committed to a Git repository, where it is versioned and tracked as part of the CI pipeline. Steps:
Use FlowOn tools to export the designated FlowOn project.
Push the generated FlowOn package to a Git repository for version control.
Figure 1: FlowOn Continuous Integration
Continuous Delivery
Continuous Delivery (CD) builds upon CI by automating the deployment of FlowOn packages to specific Dynamics 365 environments. This process ensures that deployments are consistent and repeatable, triggered by pipeline automation whenever there is a need to deploy to a target environment.
Steps:
- Configure the CD pipeline to monitor the Git repository for new FlowOn packages.
- Deploy the FlowOn package to the specified Dynamics 365 environment upon pipeline execution.
Automation
Automation with the FlowOn Tools involves using data map files to adapt FlowOn packages for different environments. This process ensures that environment-specific configurations are correctly applied during deployment.
Steps:
Extract data map files from the FlowOn package.
Create copies of the data map files, one for each target Dynamics 365 environment.
Modify each data map file to reflect the configuration specific to its target environment.
Figure 2: FlowOn Automation
Deployment
Deployment using FlowOn Tools involves running the import command with the appropriate settings to ensure that the FlowOn package is correctly applied to the target Dynamics 365 environment. The data map files associated with the deployment dictate the environment-specific configurations.
Steps:
- Prepare the Dynamics 365 environment.
- Execute the import command with the FlowOn package and relevant data map files.
- Verify that the deployment has been applied correctly in the target environment.
Data Mapper Tool
The FlowOn Data Mapper Tool is designed to simplify the process of updating data map files. It allows users to easily override values in the data map files, making the customization of FlowOn packages for different environments more efficient.
Entity Data Map: This below screenshot illustrates how the FlowOn Data Mapper Tool enables users to update entity references when transitioning between different environments. It shows the process of mapping entity IDs from the source environment to the corresponding entities in the target environment, ensuring consistency across deployments.
Figure 3: Entity Data MapConfiguration Data Map: The below screenshot demonstrates how configuration values are adjusted between the source and target environments using the FlowOn Data Mapper Tool. Users can easily modify settings like connection strings, tokens, URLs, and other environment-specific configurations to ensure proper operation after deployment.
Figure 4: Configuration Data MapLocalized Resources Data Map: This below screenshot highlights the process of managing localized resources across environments. The FlowOn Data Mapper Tool allows users to update language-specific resources, ensuring that localized content is accurately reflected in the target environment after import.
Figure 5: Localized Resources Data Map
Conclusion
FlowOn Tools offer a robust and efficient way to manage customizations and configurations across Dynamics 365 environments. By leveraging FlowOn projects, users can group and export complex configurations as portable packages, simplifying the process of moving customizations between environments. The Data Mapper Tool further enhances this capability by allowing environment-specific values to be easily updated, ensuring seamless deployments. Whether it's for continuous integration, continuous delivery, or one-time deployments, FlowOn Tools streamline the entire lifecycle of customization management, making it easier to maintain consistency and integrity across your Dynamics 365 instances.