Menu Close

Tag: #365blogpostsin365days

{Know} Layering Solutions in Power Apps

Hello Everyone,

Today i am going to share Solution Layers in Power Apps.
Lets gets started.
Unmanaged and Managed Soltions exist at different layers within a Microsoft Dataverse Environment. Solution Layering is at component level.
Two types of layers:
  • Unmanaged Layer: As we know all new solution developments start at unmanaged solution and on and off customizations exist at this layer. All unmanaged solutions share a single unmanaged layer.
                                                                        Component
  • Managed Layer: All imported, managed solutions and all system solution exist at this level. if multiple managed solutions installed, the last one installed is above the managed solution installed previously. if two managed solutions have conflicting definitions, the runtime behavior is either “Last one wins” or a merge logic is implemented.
    Note: If managed solution is uninstalled, the managed solution below it takes effect. if you uninstall all unmanged solutions. The default behavoir defined within the system solution is applied.
At the base of the managed layers level is the system layer. The system layer contains the entities and components that are required for the platform to function.

Managed Solution Layering:

There are layers within a solution for each managed component. depending on whether one or more patches or a pending upgrade to the solution has been imported  can include these layers:
Base : Located at the bottom of the solution layer “stack” is the base layer. this layer includes solution publisher, which identifies the owner of the component and the managed properties associated with it.
Top: is considered as current layer and defines the runtime behavoir of the component. The top layer can be an upgrade or a patch, or if no patches or upgrades have been applied to the solution determines the component runtime behavior.
Layers added from upgrade:
1. Pacthes: If the component  has one or more solution patches imported, they’re stacked on top of the base layer, with the most recent patch residing above the previous patch.
2. Pending upgrade: if a staged upgrade(named -Upgrade) is imported, it resides on top of the base and patch(if any) layers.
Note: Using patches isn’t recommended. More information click here

Merge behavior: Merge solution when a solution is updated or when multiple solutions are installed that effect the same component.

Only Model driven apps, forms, site maps are merged, all other components use TOP LEVEL WINS Behavior.

Top wins behavior: All other components use a top wins behavior where the layer that resides at the top determines how the components work at app runtime. A top layer can be introduced by a staged(pending) upgrade.
Top layer introduced by a pending upgrade:
1. The current top(base) layer has the Max length property of Comments text column for the account table using the default setting of 100.
2. A solution upgrade is imported using the stage for upgrade option, which creates a new top layer. The pending upgrade includes the Comments text column for the account table with MAX LENGTH property value chnaged to 150.
So Comments column for account records will allow up to maximum of 150 characters during app run time.
Solution update and upgrade merge behavior are stacked on top of the base solution. These can be merged by selecting Apply upgrade from the Solution area in Power Apps, which flattens the layers and creates a new base solution.
Multiple solutions merge behavior: when you prepare to distribute your managed solution, the target environement may have multiple solutions installed or that other solutions might be installed in the future.
Construct a solution that follows best practices so that your solution won’t interfere with other solutions.
According to Microsoft docs: regarding the multiple solution merge that although every effort is made to preserve the presentation, some incompatibilities between customizations might require that the computed resolution change some presentation details in favor of maintaining the customization functionality.
I hope this helps
Malla reddy(@UK365GUY)
#365Blogpostsin365Days
Share this:

{Know} Segmentation Solution in Power Apps & Dynamics 365 Apps

Hello Everyone,

Today i am going to share my thoughts on Segmented Solution.
Lets gets started.
Segmented Solution: Solution Segmentation is when you add the required components to your development unmanaged solution is known as Segmented solution.
Lets see this in action.
Sceanario: Suppose you want to add an entity “account” to your solution.

 

Now you click on the entity and all the entities will be displayed.
Choose “account” and click ok.
Now choose the form you want to add and click finish.

 

 

1. Include entity metadata:  if you check this box, it will include only metadata related to the entity not the forms, views and related entities. Metadata includes entity properties, like auditing. duplicate detection
 and change tracking.
2. Add all assets: It will include all the components related to the entity selected.
Now you can select the field required to add to your solution.

 

Now add all assets for the case entity(table)

 

Once you clicked on the finish another pop will appear

There are two options

1. Yes, include requried components:what that mean is the solution you are going to import into target environment dont have this entity components, so you can check the box to include.
2. No, do not include required components: If the entity you have included in this solution  is already available in the target and its related components already exists, so you can check the box, not to include into the solution.
Now you can include the contact into your solution and add then field “anniversary” field.

So your segmented solution created contains three entities “accounts, case, contact” and each entity have only components that were chosen.

Limitations of segmented solution:
1.Solution size is limited to 32 MB
2. Number of solutions is limited by Microsoft Dataverse capacity
3. Number of objects in a solution is limited by Dataverse capacity
I hope this helps
Malla Reddy(@UK365GUY)
Share this:

{Know} ALM Solution concepts

Hello Everyone,

As i am blogging regarding Application Lifecycle Management.
So today i am going to share solution concepts that are being used in Microsoft Power Platform.
Lets gets started.
Key solution concepts:
1. Two types of solutions:  Unmanaged Solution & Managed Solution.
Unmanaged Solution: Unmanaged Solution is used in the development environments when we are making changes to the application.
Unmanaged solution can be exported either unmanaged or managed. So the exported unmanaged solution can be checked into the source control system. 
 
Unmanaged solution should be considered as a source for the Microsoft Power Platform assets.
Note: When an unmanaged solution is deleted, only the solution container of any customizations included in it is deleted. All unmanaged customizations will remain uneffected and belong to the default solution.
Managed Solution: Managed solutions will be deployed to non development environments in simple terms.
Which may be UAT, SIT and Production environments.
A managed solution can be served as independently from other managed solution;
Note: As an ALM best practice managed solutions should be generated by exporting an unmanaged solution as managed and considered a build artifact.
Managed solutions can’t be edited directly, instead if you want to edit it, create an unmanaged solution and add the managed components into it and make changes and import into the environment as managed solution, so that changes will be layered. for managed properties click

 

Makers and developers work in development environment using unmanaged solutions, when the development work completes then export them to other environment like UAT as Managed Solutions.
NOTE: We can’t import a managed solution into the same environment that contains the orginating unmanaged solution. to test a managed solution, we need a separate environment to import it.
When you delete a managed solution, data will be lost from custom entities that are part of managed solution and data stored in custom attributes that are part of the managed solution on other entities that are not part of the managed solution.
2. Solution components: Like entity, attributes, relationships, metadata for detailed list click here

3. Lifecycle of solution: Solutions support these actions: Create, Update, Upgrade, Patch are the lifecycle of the solution.

4. Solution Publisher: A solution publisher will be the owner of the solution, which also contain prefix, where the prefix will be used when a new attribute is created it will be used as part of the schema name for example: gmr_businessunit, where gmr is the prefix.

 

5. Solution and Solution components dependencies: Solution components dependencies will appear when a managed/unmanaged solution is installed on top of the already managed solution.

Remove dependencies: here
Dependency tracking for solution components: here
Hope this helps
Malla Reddy(@UK365GUY)
#365Blogpostsin365Days
Share this:

{Did you know} Application Lifecycle Management Environment strategy

Hello Everyone,

Today i am to share my views on the ALM Environment Strategy.
Lets gets started.
ALM Principles: It needs individual environments for app or solution development and production.
So basically basic ALM can be performed with Development and Production environments.
Best practise is to have atleast one Test environment which is separate from development and production environment.
Some organisations use other environments like UAT(user acceptance testing) system integration testing(SIT) and training too.

Why development environment?

Because any development for app or solution can be done on it and also we check the changes. Separate environments helpful to reduce issues when a developer affects another while making changes.

Development environments?

You can discuss this like how many development environments required? here
Similarly you can provision environments from source code? here
What are the dependencies on my environments? here

ALM other considerations?

ALM should have a minimum of DEVELOPMENT, UAT AND PRODUCTION environments as any changes made on the development environment can be tested in the UAT and prior to deploying to Production.

Multiple geographical environments?

Power Platform have service updates frequently so service update schedule as environments are updated across the globe.
According to Microsoft there are total six stations, its defined by geographical location.
So any service update is done in sequencial order for example: station 3 service updates are applied before station 4.
i.e so its common for environments that are in different stations to have different versions at a certain point in time.

Things to be considered when importing the solution and environment version:

1. You can import newer version into an environment than the environment where the solution was exported.
2. We can’t import a solution into an environment that’s an older version than the environment where the solution was exported. Because there might be some missing components or required funtionality in the older environment.

Aligning environments with service update stations:

                                                                Image source Microsoft
Suppose we have a production environments in Canada and the United States. In that case your development environments should be in North America(station 5) and not in Canada (Station 2). so that your development environments will always be the same or an earlier version than your production environments, which will decrease solution import version conflicts.
I hope this helps.
Malla Reddy(@UK365GUY)
#365Blogpostsin365Days
Share this:

{How to} Resolve Relationship Mapping fields between Opportuntiy and Quote entities Dynamics 365 Sales

Hello Everyone,

Hope everyone doing good.
Today i am going to share simple OOTB feature which some of them aware but i want to bring this to my blog readers.
Scenario: Suppose there is a requirement to transfer some data from Opportunity to Quote when an Opportunity is qualified automatically.
Like When a lead is qualified some of the data will be automatically transferred to Opportunity, do you know how this is happening without any code written, its because of “Relationship Mapping” from the 1-N relationship between entities.
Lets see this in action.
So for this example i have created a business unit lookup field on the Opportunity entity, and also on the Quote entity same business unit lookup field is created.
Now i want to carry same field value of business unit of Opportunity to business unit of Quote.
Create a solution and add the opportunity and quote to it.
Steps taken:
1. Create a business unit lookup field on the opportunity

 

make sure select the target entity for the business unit field as ‘BUSINESS UNIT’
2. Similarly create the business unit lookup field on the Quote entity too, same as step 1.
3. Create a Relationship mapping.
4. Once Opportunity and Quote relationship selected, you need to open the relationship and click on the “mapping” on the left side of the screen,
Then mapping the fields like below screenshot.
5. Publish the changes on the solution.
6. Create an Opportunity fill the “busiess unit” as UK and qualify the  Opportunity

As you can see from the above screen when you qualify the opportunity prompt to create a  Quote.

Now you will see the Business unit has a value as UK on the next screen.

So its that simple to add relationship mapping and OOTB field mapping between the entities.

For more information please visit Microsoft Docs
I hope this helps.
Malla Reddy(@UK365GUY)
#365Blogpostsin365Days
Share this: