Wednesday, June 1, 2022

 This is a continuation of a series of articles on Microsoft Azure from an operational point of view that surveys the different services from the service portfolio of the Azure public cloud. The most recent article on Service Fabric discussed the Dataverse and solution layers. This document talks about merging the layers.

Microsoft Dataverse is a data storage and management system for the various Power Applications so that they are easy to use with Power Query. The data is organized in tables some of which are built-in and standard across applications, but others can be added on a case-by-case basis for applications. These tables enable applications to focus on their business needs while providing a world class, secure and cloud-based storage option for the data that are 1. Easy to manage, 2. Easy to secure, 3. Accessible via Dynamics 365, has rich metadata, logic and validation, and come with productivity tools. Dynamics 365 applications are well-known for enabling businesses to quickly meet their business goals and customer scenarios and Dataverse makes it easy to use the same data across different applications. It supports incremental and bulk loads of data both on a scheduled and on-demand basis.

Solutions are used to transport applications and components from one environment to another or to add customizations to an existing application. It can comprise applications, site maps, tables, processes, resources, choices, and flows. It implements Application Lifecycle management and powers Power Automate. There are two types of solutions (managed and unmanaged) and the lifecycle of a solution involves create, updates, upgrade and patch.

Managed and unmanaged solutions can co-exist at different levels within a Microsoft Dataverse environment. They form two distinct layer levels. What the user sees as runtime behavior, comes from the active customizations of an unmanaged layer which in turn might be supported by a stack of one or more user-defined managed solutions and system solutions in the managed layer.  Managed solutions can also be merged. The solution layers feature enables one to see all the solution layers for a component.

Merge behavior is important because it affects the same component when a solution maker should understand the merge behavior when a solution is updated or when multiple solutions are installed that affect the same component. Merging involves only mobile-driven applications, forms and sitemap component types. All other components uses the “top level wins” behavior. The “top wins” behavior is one where the layers that reside at the top determine how the component works at app runtime. A top layer can be introduced by a staged pending upgrade. This behavior can be demonstrated with an example where the current top layer has a property say maximum length=100 and a solution upgrade is performed which adds a layer with the maximum length of 150.  In this case, the affected target will permit a maximum length of 150.

Update and Upgrade merge behavior are applied after they are stacked on top of the base solution. These can be merged by selecting “Apply upgrade” from the Solutions areas in the Power Application, which flattens the layers and creates a new base solution.  When the solution is prepared for distribution, the recipients may already have multiple solutions. Using segmented solutions to achieve isolated solutions is recommended.

Solution segmentation involves exporting solution updates with selected entity assets rather than entity fields, forms and views rather than entire entities with all the assets. A segmented solution is created by selecting one or more options when adding an existing entity to the solution. These include the option to add no components or metadata so that only the minimal entity solution information is added to the solution. Another option is to select components associated with the entity such as fields so that only those that have been added or changed are include in the solution update. Similarly, there is an option to include only the metadata associated with the entity but not the components. Lastly, there is an option to include all components and metadata associated with an entity.

No comments:

Post a Comment