Skip to main content

Import Operations

The import command deploys artifacts to a target Dataverse environment.

Import Command Syntax

flowon-dynamics import [options]

Options:
-c, --connectionstring <string> Connection string for Dynamics 365 (required)
-p, --package-file-path <path> Flowon package (.flop) to import
-s, --solution-file-path <path> Dynamics 365 solution file to import
-oc, --override-unmanaged-customizations Overwrite unmanaged customizations applied
over managed components (solution import only)
-m, --map-file-path <path...> Data mapping file(s) to apply during package import
-d, --data-file-path <path...> Business data file(s) to import
-l, --log-level <level> None | Info | Verbose (default: None)
What can be imported

At least one of --package-file-path, --solution-file-path, or --data-file-path must be supplied. Mapping files (--map-file-path) are applied while importing a package, so a package file is required whenever map files are provided. --map-file-path and --data-file-path each accept multiple file paths per token. Mapping transformations are applied automatically during the package import — there is no separate "apply mappings" switch on the import command.

Import Examples

Import managed solution:

flowon-dynamics import \
--connectionstring "$CONNECTION_STRING" \
--solution-file-path "./artifacts/solutions/CustomerPortal_1.0.0.0_managed.zip"

Import Flowon package with mappings:

flowon-dynamics import \
--connectionstring "$CONNECTION_STRING" \
--package-file-path "./artifacts/flowon/CustomerPortal.flop" \
--map-file-path "./mappings/production/configuration.datamap.xml" \
"./mappings/production/entity.datamap.xml"

Full deployment:

flowon-dynamics import \
--connectionstring "$CONNECTION_STRING" \
--solution-file-path "./artifacts/solutions/CustomerPortal_managed.zip" \
--package-file-path "./artifacts/flowon/CustomerPortal.flop" \
--map-file-path "./mappings/production/configuration.datamap.xml" \
--data-file-path "./artifacts/data/crm_documenttype.xml"

Import Order

When a single import invocation includes multiple artifact types, they are processed in this order:

  1. Solution - Base platform customizations (--solution-file-path)
  2. Data - Reference data and configuration records (--data-file-path)
  3. Flowon Package - Logic, APIs, Logic Process Orchestrator processes, with mapping transformations applied (--package-file-path + --map-file-path)

If any step fails, the remaining steps are skipped and the command returns a non-zero exit code.

Deployment Workflow

┌───────────────────────────────────────────────────────────────────────────┐
│ DEPLOYMENT WORKFLOW │
├───────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. PREPARE │
│ ┌──────────────────┐ │
│ │ Disable Plugins │ ◄── Prevent triggers during import │
│ └────────┬─────────┘ │
│ │ │
│ 2. IMPORT ▼ │
│ ┌──────────────────┐ │
│ │ Import Solution │ ◄── Platform customizations │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Import .flop │ ◄── Logic Fabric artifacts with mappings │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Import Data │ ◄── Reference data with mappings │
│ └────────┬─────────┘ │
│ │ │
│ 3. ACTIVATE ▼ │
│ ┌──────────────────┐ │
│ │ Publish Changes │ ◄── Make customizations active │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Enable Plugins │ ◄── Re-enable Logic Fabric plugins │
│ └──────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────────────┘

Scripted Full Deployment

#!/bin/bash
# Full deployment script

PROJECT="CustomerPortal"
ENV="production"
CONNECTION_STRING="$PROD_CONNECTION_STRING"

# 1. Disable plugins (environment-wide)
flowon-dynamics disable-plugins \
--connectionstring "$CONNECTION_STRING"

# 2. Import the solution
flowon-dynamics import \
--connectionstring "$CONNECTION_STRING" \
--solution-file-path "./artifacts/solutions/${PROJECT}_managed.zip"

# 3. Import the Flowon package with mappings and business data
flowon-dynamics import \
--connectionstring "$CONNECTION_STRING" \
--package-file-path "./artifacts/flowon/${PROJECT}.flop" \
--map-file-path "./mappings/$ENV/configuration.datamap.xml" \
"./mappings/$ENV/entity.datamap.xml" \
--data-file-path "./artifacts/data/crm_documenttype.xml"

# 4. Re-enable plugins (environment-wide)
flowon-dynamics enable-plugins \
--connectionstring "$CONNECTION_STRING"

echo "Deployment complete!"

Error Handling

If an import fails:

  1. Check the error message for specific component failures
  2. Verify mapping files are correctly configured
  3. Ensure dependencies exist in target environment
  4. Check user permissions in target environment

Use verbose logging for troubleshooting:

flowon-dynamics import \
--log-level Verbose \
--connectionstring "$CONNECTION_STRING" \
--solution-file-path "..." 2>&1 | tee deployment.log