cancel
Showing results for 
Search instead for 
Did you mean: 

Import/Export Package Improvements

Let me start by saying the Export/Import package is a very important feature and works very well and couldn't be without it. However, while I really appreciate the ability to promote an app and associated connectors, connections, flows to another environment and I realize this is still in preview, I'd like to make some much needed suggestions to make this process much more efficient.

 

This process is very easy when you don't have to many items in the package, however, performing an import with 5 connections, 3 custom connectors and 50 flows, this becomes tedious, consuming and prone to a mistake.

 

I apologize that this is long ... but best to walk through an example;

 

Export your package from a "dev" environment, select the app and select from the shortcut menu to Export Package (preview). At this point, you can fill in the name and an optional description. 

 

The package contents are created for you. Each package resource provides a default action for Import Setup. Options are 

- Update, 

- Select during import 

- Create as new

 

Connections and custom connectors do not allow the Create as new option, these must be created in the new environment prior to importing.

For the first time migrating, select all resources as Create as new. You need to do this for each resource individually. Click the action link under Import Setup, a panel will appear on the right to change the action to Create as new. Click save. Go to the next resource, click the link, select, create as new, click save, .... repeat this for as many Flow resources in the list, gets tedious after 4 or 5 times.

 

** Here's the first needed improvement ** 

When you have a lot of resources, it would be much more efficient to be able to mark the entire package as create as new or allow changing the action inline without having to go to the separate panel dialog and click save every time. The former is the preference but the latter would still help save a lot of time in generating the package.

 

For the first promotion to the next environment, first change to that environment with the drop down list in the header. Click Apps and select Import Package (preview), you will be prompted to select the zip file to import, select the one you just created and click Upload. The file will upload, and show you the package contents that you must resolve the Import Setup for each app and resource.

 

What your goal is to change all of the red X's to green checkmark's.

 

Fortunately, because you selected Created as new in the export, the App all of the Flows will default as Create as new and therefore have the desired Green Checkmark.  To resolve the Connector and Connections, you must create them manually in the new environment for the first time.

Once created, click the link under Import Setup or the wrench icon on the far right. The panel will open to the right to select the connection.

 

DO NOT navigate away from the import screen, otherwise you will have to start the import process over again.

When you create the connection, SQL Server in this example, the name of the connection will default to the server name ... databasename - servername.database.windows.net, when in reality you want to name it something more readable like the name of the database or the application. 

 

image.png

 

This requires an extra step to edit the connection where you edit the display name to something more meaningful. This requires you to put the connection username and password in again (something you just did 15 secs ago). Would save time to simply allow the user to specify the display name on the original create connection dialog.

 

Now that we've created the connection, we can map this connection to connection in the package.

 

Select  your new connection, and click Save.

Once all connections are created.  Click import and you will be on your way.

 

Now when it comes to updating, this is where it starts to get really tedious. After making updates to your app and/or associated flow, you will need to create a new export. In this case, really easy because the default of update is correct and you can simply click export. Note: if your update includes an Flows new to the destination environment, change these to Create as new.

 

Switch to the destination environment, and import your update package. A few things that make this process tedious:

 

  1. The related resources are listed in no apparent order, so the first suggestion is to either default to alphabetical by resource type, i.e Connection, Connector, Flow, etc. or at least give the user the ability to click on Name header and have them sorted alphabetically. A search might be nice as well.

 

  1. Your goal again is to turn all resources into green checks. This is tedious as well since you have to perform the same steps over and over again (in this example, 50 time, including scrolling all the way to the bottom to hit save). On purpose however, we always keep the names identical, so it would be the #1 request, to auto-resolve the resources, matching what's in the import package to what’s already existing in the environment by name or even resource id. You'll notice below that in the Import setup panel, the 50 flows are listed, but again, in seemingly no particular order making it difficult to find the flow with the same name.

 image.png

As you can imagine, when you are in the cycle of testing, correcting and republishing, this can occur several times per day. I'm not looking for DevOps but certainly this process could take less time.

Status: New
Comments
PowerApps Staff

Thank you for your feedback. I think you'll be glad to hear that we've recently released solutions for canvas apps and flows. This allows you to package and export/import multiple canvas apps & flows together, while auto-detecting whether to perform a create or update operation if the component exists in the target environment. Please give this a try and let us know what you think. 

 

Note this doesn't currently solve all the problems you've listed above, but we are in the process of:

  1. Adding existing canvas apps and flows to solutions
  2. Adding connections and custom connectors to solutions
  3. Simplifying the configuration for connections, parameters, or other config data you want to transport with your solution package.  
Level 8

@caburk

 

Thanks, this is great as long as you are using the Common Data Service. I am not. I get the impression that everything is moving that way and that canvas apps based on other data sources, like Azure SQL, will be lagging way behind new functionality.

Just like the AppChecker.

 

cc: @Audrie-MSFT