Archive

Archive for January, 2022

Model Driven App | Modern advanced find

January 28, 2022 1 comment

Finally the most awaited upgrade to the Legacy ‘Advanced Find’ Experience is coming up as part of 2022 Wave 1 release.

Legacy Advanced Find Experience

With Modern advanced find, you can access any table in a model-driven app through search and use advanced filters to explore the data easily.

Modern advanced find benefits:

  • Explore any table in a model-driven app through structured search and filters. Edit columns and filter data to construct views that help you apply the right lens on your data easily.
  • Choosing the right view to access is easier with the latest enhancement to view selector having the ability for you to search for a view.
  • Managing views is simpler with personalization options to build your own set of views, hide views, and order them differently. Your personalized view list travels with you across all apps and all devices, online and offline.
  • Collaborate with your team by sharing views easily and managing the views shared to you.
  • All of the capabilities mentioned above will replace the legacy advanced find experience.

Availability Dates:

Enabled forPublic previewEarly accessGeneral availability
Users by admins, makers, or analystsFeb 2022Apr 2022

🙂

Power Apps | Business Rule | Set Field Value vs Set Default Value

January 19, 2022 Leave a comment

While configuring Business Rules you might have noticed ‘Set Field Value’ and ‘Set Default Value’ Actions.

Though the ‘Set Field Value’ and ‘Set Default Value’ Actions look identical, there are following subtle differences.

Set Default Value:

  • ‘Set Default Value’ only triggers on ‘Create’ event and does not trigger on ‘Update’.
  • To understand this better lets go with an example, I’ve a ‘Student’ table with ‘Department’ and ‘College Fee’ columns.
  • In my ‘Business Rule’, I am setting ‘College Fee’ field value to ‘10000’ using ‘Set Default Value’, when the ‘Department’ sets to ‘IT’.
  • Now in my App, on Student’s ‘Create‘ form, the ‘College Fee’ field sets to ‘10000’ when the Department is IT as configured in Business Rule.
  • If I open an Existing ‘Student’ record, and set the ‘Department’ to ‘IT’, ‘College Fee’ field will not get set to ‘10000’, which proves that ‘Set Default Value’ action defined in ‘Business Rule’ does not trigger on ‘Update’ event.
  • One more key point is, ‘Set Default Value’ can’t override an existing field value.
    • For example, on ‘Student’ create form, manually type some value in ‘College Fee’ and then change the ‘Department’ to ‘IT’ .
    • This triggers ‘Set Default Value’ action, but the ‘College Fee’ value wont get changed to 10000 as there was already a manually typed presented in ‘College Fee’.
  • Also, ‘Set Default Value’ does not have ‘Clear’ option.

Set Field Value:

  • ‘Set Field Value’ triggers on both ‘Create’ and ‘Update’ of the record.
  • Also, ‘Set Field Value’ has a ‘Clear’ option.

Hope these differences helps you while choosing between ‘Set Default Value’ and ‘Set Field Value’,

🙂

Dataverse | Traditional Quick Find vs Enhanced Quick Find (2020 Wave 1 Update)

January 10, 2022 Leave a comment

I got a following question from a blog follower who recently started working on Dataverse on ‘Quick Find Search’.

Why the ‘Quick Find’ view not fetching the data though there are matched records?

So this article is for those who recently started working on Dataverse to differentiate Traditional vs Enhanced Quick Find view.

Traditional ‘Quick Find’:

  • Traditional ‘Quick Find’ fetches the matched rows irrespective of the current view.
  • As an example, below ‘Male Students’ view contain 2 records where Gender=Male.
  • If I search for a ‘Female’ record which is not part of this view, it will show up as below.

Enhanced Quick Find (2020 Wave 1 update):

  • With the 2020 Wave 1 update, by default ‘Quick Find’ fetches the matching records only from the currently selected view.
  • As an example, If I search for a ‘Female’ record while a ‘Male Students’ view selected, no records would be fetched. This is because of the search confined to the selected ‘Male Students’ view.

How to enable Traditional Quick Find post 2020 Wave 1 Update:

  • Post 2020 Wave 1 Update, ‘Traditional’ Quick Find will be turned off, by default.
  • To enable ‘Traditional’ Quick Find, from the Admin Center, select the Environment, go to Settings -> Features and turn on the “Use quick find view of an entity for searching on grids and sub-grids” setting.

🙂

Categories: PowerApps Tags: ,

C# | Telesign | Send SMS | Couldn’t load type Telesign.MessagingClient

Telesign is a Communications Platform as a Service company. We can Send and receive text messages effortlessly with TeleSign’s global text message API.

Other day I’ve subscribed to Telesign trial and was trying to send SMS from my C# console application.

As a first step I’ve installed ‘Telesign’ NuGet package to my C# console project and pasted the code copied form Telesign portal.

I got following “Couldn not load type ‘Telesign.MessagingClient’ from assembly Telesign” exception when I ran the code.

Reason and Fix:

  • My C# console project name was ‘TeleSign’ which conflicted with ‘Telesign’ NuGet package assembly.
  • Rename the Project solved the issue.

Its trivial issue but took sometime to figure out the reason. Hope this helps.

🙂

Categories: C# Tags: ,

Dataverse | Plugins | ILMerge Alternative | Shared Project

Role of ILMerge in Plugin Development:

If you are familiar with writing Plugins in Dataverse, chances are that you would have used ILMerge to merge the Assemblies.

In a typical Dynamics Plug-in development, we will have following .Net Class Library Projects.

  • Plugins.csproj
  • Plugins.Helper.csproj

When you compile above projects, you get two .dlls (i.e., Plugins.dll and Plugins.Helper.dll). As we can only deploy one .dll to Dataverse, we use ILMerge to merge both Plugins.dll and Plugins.Helper.dll in to one.

Is it recommended to use ILMerge in Plugin development? Answer is No. As per this Microsoft article ILMerge is not supported in Plugins development.

Now whats the alternative? Answer is Shared Projects.

Steps to use Shared Projects in Plug-in Development:

To explain the Shared Projects, I am going to build a simple Plugin project ‘Plugins.csproj’ with ‘PreAccountCreate’ class, which refers a ‘Shared’ Helper project ‘Plugins.Helper’.

  • Create a new C# class library project and add ‘PreAccountCreate’ class as below.
    • You can copy the code I’ve used from here.
  • Now lets add a ‘Shared’ Helper project which our Plugin project would refer.
  • Right click your Solution and click ‘New Project’.
  • Select a Project template of type C# ‘Shared Project’.
  • Give a Name to your ‘Shared Project’.
    • I’ve named it as ‘Plugins.Helper’.
  • ‘Plugins.Helper’ Shared Project, looks as below in the Solution Explorer.
  • Now add a Class file ‘AccountHelper.cs’ to the ‘Shared Project’.
  • I’ve added a simple function ‘GetAccountName()’ which returns ‘Microsoft India’.
  • To use the ‘Shared Project’ in our Plug-in project, right click ‘Plugins’ project and add ‘Reference’.
  • From ‘Shared Projects’, choose your project (i.e., Plugins.Helper in my case).
  • Once you referred the ‘Shared Project’ in your Plugin project, it looks as below.
  • Now its time to call ‘GetAccountName()’ from our ‘PreAccountCreate’ class.
  • Sign the Assembly.
  • Build the Plug-in project and you would get the ‘Plugins.dll’ in bin/Debug folder.
  • Go ahead and deploy the ‘Plugins.dll’ to Dataverse and register step using Plugin Registration Tool.

🙂

Categories: Plug-Ins Tags: , ,