Solutions are an advanced form of metadata management. Whilst exporting, importing, and synchronizing allow objects within one Space to be downloaded and shared, a Solution allows multiple Spaces to be combined, can contain system-wide objects (such as user Groups) and can create new Spaces as part of the deployment.

This all leads to a streamlined sharing and deployment experience for more complex cross-Space use cases.

Deploy a Solution

A Solution can be deployed within the System > Solution deployments sub-menu by clicking Browse for file and choosing a Solution .dmxs file.

Once the Solution file has been uploaded, the deployment wizard will display the Solution and its content in a hierarchical manner. Each Space within the Solution will be listed, followed by the different types of objects (e.g. Workflow, Chart) and then each object of that type. Any System objects (objects accessible by all Spaces) will then be listed at the bottom. The information will include:

Value Description
Name The object name, as well as an icon that indicates its type.
Action The action that will be performed to the object:
New :- The object is new to the target Environment.
Update :- The object already exists in the target Environment and will be updated with this deployed Solution.
For example, the object had previously been deployed in v1.0 of a Solution, but v1.1 includes changes to the object.
Reject :- Another object already exists in the target Environment that conflicts with this object, and so it cannot be deployed.
For example, the existing object has the same external label as the object in the Solution.
New version The version of the object in the Solution. This will be set to N/A for objects that cannot be versioned.
Current version The version of the object currently in the target Environment that will be updated as part of the deployment.
Info Additional information about the object; usually why a particular action has been set.

Unlike metadata management, objects within a Solution cannot be individually selected/unselected for deployment. It is assumed that the Solution objects are all required in order for the Solution to function as intended.

To finalize the deployment, click Deploy. This will update the target Environment with all objects (including Spaces) within the Solution that have not been marked with the Reject action.

Solutions that have been successfully deployed are listed at the top of the Solution deployments sub-menu, showing their name, version, and deployment date.

Upgrade a deployed Solution

Upgrading an already deployed Solution to a later version is done in the same way as deploying a Solution for the first time. However, Data Studio will detect that the Solution .dmxs file contains a newer version of a Solution that already exists in the target Environment, and will update the existing deployed objects instead of creating new ones.

As with new deployments, the deployment wizard will show a summary table of the Solution objects and its changes, and completing the wizard will update the associated objects.

You will not be able to successfully upgrade the Solution if any of the objects in it have the Reject action. Reasons could include:

  • the object in the Solution conflicts with an existing object in the target Environment
  • the object in the Solution has a dependency that you have insufficient access to; for example, a Dataset that originates from an External system you cannot modify

Create a Solution

Solutions can be created within any Space you have access to, provided you have the View Solution Packages and Manage Solution Packages capabilities. To create a Solution, click the hamburger menu next to the Spaces drop-down on Data Studio’s top navigation bar, then click Solutions.

To create a new Solution, click Create new Solution. This opens a new wizard and displays all Spaces you have access to, as well as any objects that exist within them. These can be selected individually to be added to the Solution, or the overall Space can be selected to automatically include the Space and every object within it.

System-wide objects can also be added to a Solution, including External systems and Data encryptions. Data tags will not be displayed and will be automatically added to a Solution if any Dataset that uses the Data tag has been included in the Solution.

After giving the Solution a name, external label, and content, click Apply to create the Solution in a draft state.

Download a Solution

Once a Solution has been created and is ready to be made generally available, it must be published first. This can be done by clicking Publish within the hamburger menu.

After the Solution has been published, it can be downloaded by clicking Download deployable Solution from the Solution’s hamburger menu. This will save a .dmxs file on your machine in the format <Solution name> <Solution version>.dmxs.

Update a Solution

After a Solution has been created, it can be edited further to include or remove objects. Selecting or unselecting objects (including Spaces) in the Solution wizard will automatically create a new draft version of the Solution after clicking Apply. The Solution wizard will also automatically detect any objects in a Solution that no longer exist and display them at the top of the wizard. Clicking Apply will subsequently remove them from the Solution and create a new draft version.

Unlike adding/removing objects, changes to objects themselves already contained in a Solution will not automatically create a new version of the Solution to pick up those changes. For example, you may have created an initial version of a Solution that contains a Workflow, then modified a step within the Workflow and published a new version of that Workflow. The Solution will not automatically pick up that new published version of the Workflow and will continue to use the previous version in case the new version is not intended for the Solution yet.

To create a new version of the Solution to pick up changes such as this, click the hamburger menu next to the Solution, then click Create new version. This will create a new draft version of the Solution that uses the latest published versions of the objects it contains.