A Place for Sharing and Inspiration

Total Pageviews

Thursday, October 21, 2021

Tip - How to convert a XML file to filters in Advanced Find in Dynamics 365 (CRM)


XML file

For instance, if we’ve already got a XMl file like below,

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">  <entity name="contact">    <attribute name="fullname" />    <attribute name="telephone1" />    <attribute name="contactid" />    <order attribute="fullname" descending="false" />    <filter type="and">      <condition attribute="firstname" operator="eq" value="alex" />      <condition attribute="mobilephone" operator="eq" value="619-555-0129" />    </filter>  </entity></fetch>

Convert the xml file to JavaScript string

Open the xml file using notepad++ or any other text and source code editor that you can get, then follow below steps:

  1. Press Ctrl + A on your keyboard to select the entire script
  2. Press Ctrl + J on your keyboard to change xml to a single string, and then assign it to a variable fetchxml (you can also use other name as long as it meet Naming and declaration rules for variables of JavaScript)
fetchxml = '<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">   <entity name="contact">     <attribute name="fullname" />     <attribute name="telephone1" />     <attribute name="contactid" />     <order attribute="fullname" descending="false" />     <filter type="and">       <condition attribute="firstname" operator="eq" value="alex" />       <condition attribute="mobilephone" operator="eq" value="619-555-0129" />     </filter>   </entity> </fetch>';

Convert JavaScript to filters in Advanced Find

  1. Open Advanced Find, and find the Contact entity (or the entity you’re looking for), then ensure there is no existing filters set up,

image-20211021233801601

  1. Hit F12 on your keyboard
  2. Select the ‘contentIFrame0’ from the dropdown list as the red arrow shown on below snip

image-20211021234555643

  1. Copy the variable and the value into the Console, hit Enter

image-20211021235053383

  1. Enter below magic script into the Console, and hit enter again,

    $find(‘advFind’).set_fetchXml(fetchxml);

image-20211021235213827

Bingo! you will see the filters in Advanced Find accordingly

image-20211021235451476

Saturday, October 16, 2021

How to configure the Lookup views for a lookup field on a form


A Typical Layout in a Lookup Field

Below information is from Microsoft Doc, you can refer to below link to find it

https://docs.microsoft.com/en-us/powerapps/user/lookup-field

below is a screen shot of the layout from new Unified Interface

How to use lookups.

Legend

  1. Look for records: Select the textbox and type your search criteria to look for rows.
  2. Recent: Rows that were recently searched (new unified interface)
    • Note: for the legacy web client, only the first three columns (from left to right) of the related entity Lookup View are displayed.
  3. New Record: Create a new row.
  4. Types of records: Select to filter by a table type such as Contact table or Account table. The number in front of type of records represents how many table are available to filter from.
  5. Browse in a lookup column: To browse a lookup, select the lookup icon (magnifying glass). A full list of items will be shown in the dropdown.
  6. Expand item: the first two columns are shown, and clicking on the dropdown will show all Lookup view columns. Some lookups such as Customer – which can be either Accounts or Contacts – display both to be selected as shown in the above screenshot. For more information on keyboard shortcuts, see Use keyboard shortcuts in Power Apps.
  7. Change View: by clicking on Change View – if the data filter applied to the Lookup View excludes the data being searched for. For example, the Account Lookup view filters on Active Accounts only by default, so selecting another view may be more appropriate. For more information on views, see Use grid filters.

In today’s post, we will use the the out of the box Primary Contact lookup field on the account form as a example,

image-20211016203318867

Different Views that will be involved

Two views of the contact entity will be involved:

Lookup View:

A typical Lookup View of contact entity is shown as below -> the view you will see when select the textbox of the lookup field.

There is one lookup view per entity. Lookup views cannot be deleted or deactivated, but they can be edited. You are unable to create any additional lookup views at the moment.

image-20211016202437862

Quick Find View

A typical Quick Find View of contact entity is shown as below, where you can also setup the Find by property that means based on which fields (columns) the search will be performed -> the view you will see after searching the results in the textbox of the lookup field.

When entering a value into a lookup field and the button or lookup icon is pressed, a search is carried out on the related item’s data using the Find columns defined in the related entity’s Quick Find View

image-20211016202416728

Configure Lookup view for a lookup field on a form

we still use the Primary Contact lookup field on the account form as the example

image-20211016203318867

Go to the solution -> navigate to Account entity -> find the main account form and open the classic form designer -> find the Primary contact field and double click on it to open the Field Properties configuration window.

FILTERED LOOKUPS

Filtered lookups will display a subset of records when looking up to an entity.

For instance, Account entity has an out of the box lookup to Contact entity called ‘Primary Contact’. by default, this lookup is filtered to only show Contacts who have the current record (#2 indicated by below screen shot) as their Parent Account, which means that you can only enter someone as the Primary Contact for an Account if they work at that Account. This makes sense.

image-20211016134416758

Default view in a lookup field

If you’d like to set up the default view in the textbox of a lookup field, when you select it, then you should configure in the Additional Properties section as below screen shot shown. You can switch to another view as well.

When configuring the lookup field on the forms, any other view could be chosen as well.

Additionally, View Selector can be locked and/or limited to user’s own records.

image-20211016140115748

Different types of lookups


When you create a new lookup field you are creating a new Many-to-One (N:1) entity relationship between the entity you’re working with and the Target Record Type defined for the lookup.

There are additional configuration options for this relationship that are described in Creating and editing entity relationships. But all custom lookups can only allow for a reference to a single record (a single target record type).

However, you should be aware that not every lookup behaves this way. There are several different types of system lookups as shown here.

image-20211016124755259

Customer: Allows for a single reference to either an account or a contact record. These lookups are available for the Opportunity, Case, Quote, Order, and Invoice entities. These entities also have separate Account and Contact lookups that you can use if your customers are always one type. Or you can include both instead of using the Customer lookup.

image-20211016121421173

Owner: Allows for a single reference to either a team or a user record. All team or user-owned entities have one of these.

image-20211016121057338

PartyList: Allows for multiple references to multiple entities. These lookups are found on the Email entity To and Cc fields. They’re also used in the Phone and Appointment entities.

image-20211016122122105

the partylist allow you to select multiple reference shown as below snap shot

image-20211016122525893

Regarding: Allows for a single reference to multiple entities. These lookups are found in the regarding field used in activities.

image-20211016122711755

Monday, October 11, 2021

How to set up Regional Settings in Windows 10


Scenario:

When you’re using Power BI, Excel, etc., you may come across some data format issues, when you try to import some data that contain the Date & time, Number, or Currency data type. it’s probably because that your system Regional Setting may be not able to recognize those data, for instance, US-specific date format should be like (MM/DD/YYYY), but if your system Regional Setting set the date format as (YYYY/MM/DD), then you will see the errors during the data importing.

with that being said, you should be able to fix the issue by following below steps,

Method #1

Windows 10

\1. Click the Start button at the bottom left corner of your screen, and then click Settings

image-20211011111516582

\2. Click Time & Language

image-20211011111737199

  • The new window pops up, where you can set up the Region format.

\3. Under Regional Format item, select the format you want to change from the drop-down list, and then click the Change data formats button

  • The Change data formats dialog box appears. Click the placeholder that contains the settings that you want to modify and make your changes. For example, to change part or all of a short date format, click the Short date: dropdown list and change the setting that you want

image-20211011112425183

Method #2

\1. Navigate to the search bar at the bottom left corner of your desktop screen, and then search for Control Panel

\2. Click Change date, time, or number formats, then you will below new window popping up

image-20211011114006105

\3. Select the Formats tab, select the format you want to change from the drop-down list. then you can also click the Additional Settings button

  • The Customize Format dialog box appears

image-20211011114259939

\4. Click the tab that contains the settings that you’d like to change. For example, to change a number format, click the Numbers tab and change the setting to fit your needs.

Sunday, October 10, 2021

How to create a new XrmToolBox connection right away using Connection Wizard


Scenario

For some of you that just start using XrmToolBox the 3rd party tool recently, and you may be wondering how to make a connection to one of your Dynamics 365 (CRM) environments as soon as possible, then you can utilize those amazing 3rd party tools in it to improve the efficiency of your learning, development or validation , ect. for your projects.

If that’s the case, you come to right place. Without further ado, let’s get started.

After download the zip file from below link, then you can unzip the zip file to a folder where you think it fits

https://www.xrmtoolbox.com/

image-20211010112043696

then after clicking on and open the XrmToolBox tool, you will see below window, then you can hover over to the bottom left corner to Not connected, and create a new connection from there.

image-20211010104848192

Choose a connection method

then there will be a new window popping up, where you can choose which connection method you prefer. if you are new to XrmToolBox, you could just go with "Connection Wizard" option,

image-20211010105935358

General information and options

after clicking on and open the wizard, you will see below window, where you have to use your own organization url to replace the existing value of the Organization url placeholder, then click on Next,

image-20211010110441233

User Credential

you need to enter your Username and Password to the placeholder respectively, then click on Next. After that, the tool will validate your credential.

image-20211010110542749

Enter a name for this connection

you need to input a name that is meaningful for yourself into Name placeholder, and click on Finish button.

image-20211010110948628

it’s done right away. it’s so simple and straightforward, right?

Saturday, October 9, 2021

Tip - How to change Default Font style and size for email form in Rich text editor control in Dynamics CRM


Tip - How to change Default Font style and size for email form in Rich text editor control in Dynamics CRM

Scenario:

Sometimes, we would come across a business requirement to change the default font for email forms or some other forms. Unfortunately, there is no such out of the box feature in Dynamics 365 (CRM) for users to utilize in order to fulfill this requirement at the moment; however, we can still use JavaScript to achieve it. below is how.

First of all, you can refer to below link from Microsoft for the sample code:

https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/rich-text-editor-control#rich-text-editor-properties

https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/rich-text-editor-control#use-the-webresource-for-organization-wide-changes

Two types of configurations from the sample codes

There are two types of configurations: the defaultSupportedProps section, and individual configuration settings that provide various functionality.

today, we will use defaultSupportedProps to configure the default font style and size for one of the email forms. Below are the key attributes of rich text editor control that we will update and configure:

  • font_defaultLabel

  • fontSize_defaultLabel

  • stickyStyle

defaultSupportedProps

You can configure all of the CKEditor-supported properties under this property. A few of the commonly used and custom configurations are described below. For complete documentation about CKEditor configurations, see CKEditor.config.

AttributeDescriptionDefault value
font_defaultLabelSets the default label that is displayed in the toolbar for font style. The default is Segoe UI."font_defaultLabel": "Segoe UI"
fontSize_defaultLabelSets the default label that is displayed in the toolbar for font size. The default is 9."fontSize_defaultLabel": "9"
stickyStyleSets the actual default font size and style. Additionally, you can include any other CSS properties you'd like to set as part of your default styling. The stickyStyle plugin creates a wrapper around your content using the element specified by "stickyStyles_defaultTag", which is initially configured as "div"."stickyStyle": { "font-size": "9pt", "font-family": "'Segoe UI','Helvetica Neue',sans-serif" }

Font option available in Dynamics 365

Below are the font options that are available in Dynamics 365 by default.

"font_names": "Angsana New/'Angsana New', 'Leelawadee UI', Sathu, serif;Arial/Arial, Helvetica, sans-serif;Arial Black/'Arial Black', Arial, sans-serif;Calibri Light/'Calibri Light', 'Helvetica Light', sans-serif;Calibri/Calibri, Helvetica, sans-serif;Cambria/Cambria, Georgia, serif;Candara/Candara, Optima, sans-serif;Century Gothic/'Century Gothic', sans-serif;Comic Sans MS/'Comic Sans MS';Consolas/Consolas, Courier, monospace;Constantia/Constantia, 'Hoefler Text', serif;Corbel/Corbel, Skia, sans-serif;Cordia New/'Cordia New', 'Leelawadee UI', Silom, sans-serif;Courier New/'Courier New';DaunPenh/DaunPenh, 'Leelawadee UI', 'Khmer MN', sans-serif;Franklin Gothic Book/'Franklin Gothic Book', 'Avenir Next Condensed', sans-serif;Franklin Gothic Demi/'Franklin Gothic Demi', 'Avenir Next Condensed Demi Bold', sans-serif;Franklin Gothic Medium/'Franklin Gothic Medium', 'Avenir Next Condensed Medium', sans-serif;Garamond/Garamond, Georgia, serif;Gautami/Gautami, 'Nirmala UI', 'Telugu MN', sans-serif;Georgia/Georgia, serif;Impact/Impact, Charcoal, sans-serif;Iskoola Pota/'Iskoola Pota', 'Nirmala UI', 'Sinhala MN', sans-serif;Kalinga/Kalinga, 'Nirmala UI', 'Oriya MN', sans-serif;Kartika/Kartika, 'Nirmala UI', 'Malayalam MN', sans-serif;Latha/Latha, 'Nirmala UI', 'Tamil MN', sans-serif;Leelawadee UI/'Leelawadee UI', Thonburi, sans-serif;Lucida Console/'Lucida Console', Monaco, monospace;Lucida Handwriting/'Lucida Handwriting', 'Apple Chancery', cursive;Lucida Sans Unicode/'Lucida Sans Unicode';Mangal/Mangal, 'Nirmala UI', 'Devanagari Sangam MN', sans-serif;Nirmala UI/'Nirmala UI', sans-serif;Nyala/Nyala, Kefa, sans-serif;Palatino Linotype/'Palatino Linotype', 'Book Antiqua', Palatino, serif;Raavi/Raavi, 'Nirmala UI', 'Gurmukhi MN', sans-serif;Segoe UI/'Segoe UI', 'Helvetica Neue', sans-serif;Shruti/Shruti, 'Nirmala UI', 'Gujarati Sangam MN', sans-serif;Sitka Heading/'Sitka Heading', Cochin, serif;Sitka Text/'Sitka Text', Cochin, serif;Sylfaen/Sylfaen, Mshtakan, Menlo, serif;TW Cen MT/'TW Cen MT', 'Century Gothic', sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/'Times New Roman', Times, serif;Times/Times, 'Times New Roman', serif;Trebuchet MS/'Trebuchet MS';Tunga/Tunga, 'Nirmala UI', 'Kannada MN', sans-serif;Verdana/Verdana, Geneva, sans-serif;Vrinda/Vrinda, 'Nirmala UI', 'Bangla MN', sans-serif;メイリオ/Meiryo, メイリオ, 'Hiragino Sans', sans-serif;仿宋/FangSong, 仿宋, STFangsong, serif;微軟正黑體/'Microsoft JhengHei', 微軟正黑體, 'Apple LiGothic', sans-serif;微软雅黑/'Microsoft YaHei', 微软雅黑, STHeiti, sans-serif;新宋体/NSimSun, 新宋体, SimSun, 宋体, SimSun-ExtB, 宋体-ExtB, STSong, serif;新細明體/PMingLiU, 新細明體, PMingLiU-ExtB, 新細明體-ExtB, 'Apple LiSung', serif;楷体/KaiTi, 楷体, STKaiti, serif;標楷體/DFKai-SB, 標楷體, BiauKai, serif;游ゴシック/'Yu Gothic', 游ゴシック, YuGothic, sans-serif;游明朝/'Yu Mincho', 游明朝, YuMincho, serif;隶书/SimLi, 隶书, 'Baoli SC', serif;黑体/SimHei, 黑体, STHeiti, sans-serif;굴림/Gulim, 굴림, 'Nanum Gothic', sans-serif;궁서/Gungsuh, 궁서, GungSeo, serif;돋움/Dotum, 돋움, AppleGothic, sans-serif;맑은 고딕/'Malgun Gothic', '맑은 고딕', AppleGothic, sans-serif;바탕/Batang, 바탕, AppleMyungjo, serif;바탕체/BatangChe, 바탕체, AppleMyungjo, serif;MS Pゴシック/'MS PGothic', 'MS Pゴシック', 'MS Gothic', 'MS ゴシック', 'Hiragino Kaku Gothic ProN', sans-serif;MS P明朝/'MS PMincho', 'MS P明朝', 'MS Mincho', 'MS 明朝', 'Hiragino Mincho ProN', serif",

Which Font should be selected

Some of us may have no idea at all for which font we should pick from above code snippet. If that's the case, you may refer to below link for some reference and knowledge about Font definitions.

https://drmarkwomack.com/a-writing-handbook/style/typography/

Note:

there is also another workaround to find out the actual default font size and style as shown below:

image-20211006225758432

open the Developer Tools in Edge or chrome browsers, and hover over to those random text, then the Font information will pop up right away, which will give the idea which font you should go with.

image-20211006225932925

How to update the sample code data

Sets the actual default font size and style

Sets the actual default font size and style as below script (for the actual text that you will enter in the text box)

        "stickyStyle": {

           "font-size": "12pt",

           "font-family": "Candara,Optima,sans-serif"

      },

Sets the default label for Font style and size in toolbar

in terms of the labels indicated by below screen shot, you will have to use different code as mentioned earlier.

image-20211006231007266

default label for Font style

"font_defaultLabel": "Candara"

default label for Font size

"fontSize_defaultLabel": "12"

Create a web resource through the legacy classic interface

image-20211007124004663

below is code script:

{
  "defaultSupportedProps":{
 "font_defaultLabel": "Candara"
     "fontSize_defaultLabel":"12",
     "stickyStyle":{
        "font-size":"12pt",
        "font-family": "Candara,Optima,sans-serif"
    }
  }
}

Add the newly created web resource to the Email form through the Rich Text Editor Control

below are the steps:

image-20211007102919187

then, find the control and click on Add,

image-20211007110635280

Next, click the Pencil button to open Custom configuration URL property (make sure that you also select Web, Phone, and Tablet if you want all client apps to have the ability to use rich text in the column),

image-20211007110838725

then, on the Custom configuration URL property page, Select Bind to static value, enter the relative URL to the JavaScript web resource in the box next to SingleLine.URL, and then select OK. The relative URL is located on the web resource definition.

Note:

For example, if you create an HTML page as a web resource named “new_myWebResource.htm”, you could open that page in a browser using a URL like this:

<base URL>/WebResources/new_myWebResource.htm

but when you add it to the Rich text editor control, please make sure you only use the relative URL like this:

/WebResources/new_myWebResource.htm

image-20211007192425815

image-20211007110755848

Select OK to close the Column Properties page.

On the form editor command bar, select Publish.

Note:

the Rich text editor control component can only be added to the main form at the moment. you can't add them to Card form or quick view form etc.

email for interactive experience has to be configured through the legacy interface.

You can also refer to below link for the training material from Microsoft

https://docs.microsoft.com/en-us/dynamics365/customer-service/customer-service-hub-user-guide-email-font-admin

Wednesday, October 6, 2021

How to change the default properties of the Rich Text Editor Control


The default RTE webresource is available with the display name "RTEGlobalConfiguration.json".

This configuration is used for all instances of the RTE control, and can be used to make organization wide changes. This includes RTE used in:

  • timeline rich-text notes,
  • knowledge management,
  • single and multi-line fields that are configured to use the RTE control

Follow below steps to find out of the box web resource "RTEGlobalConfiguration.json",

Sign in to Power Apps. Go to Solutions, open the default solution,

  1. Search by web resource
  2. A list of web resources will show up, where you can search by RTE again from the search box at the top right corner
  3. Find web resource "RTEGlobalConfiguration.json"
  4. click the three dots next to it, then click on the small arrow, click "Edit in classic"

image-20211006215208288

  1. below different window will pop up

image-20211006215228841

  1. After click on Text Editor button, you will see below script, where you can update the properties for Rich Text Editor Control
{  "defaultSupportedProps": {        "autoGrow_onStartup": true,        "basicEntities": true,        "browserContextMenuOnCtrl": true,        "copyFormatting_allowRules": true,        "customConfig": "",        "dialog_backgroundCoverColor": "black",        "disableNativeSpellChecker": false,        "enterMode": 3,        "extraPlugins": "accessibilityhelp,autogrow,autolink,basicstyles,bidi,blockquote,button,collapser,colorbutton,colordialog,confighelper,contextmenu,copyformatting,dialog,find,floatpanel,font,indentblock,justify,panel,panelbutton,pastefromword,quicktable,selectall,stickystyles,superimage,tableresize,tableselection,tabletools",        "fillEmptyBlocks": true,        "font_defaultLabel": "Segoe UI",        "font_names": "Angsana New/'Angsana New', 'Leelawadee UI', Sathu, serif;Arial/Arial, Helvetica, sans-serif;Arial Black/'Arial Black', Arial, sans-serif;Calibri Light/'Calibri Light', 'Helvetica Light', sans-serif;Calibri/Calibri, Helvetica, sans-serif;Cambria/Cambria, Georgia, serif;Candara/Candara, Optima, sans-serif;Century Gothic/'Century Gothic', sans-serif;Comic Sans MS/'Comic Sans MS';Consolas/Consolas, Courier, monospace;Constantia/Constantia, 'Hoefler Text', serif;Corbel/Corbel, Skia, sans-serif;Cordia New/'Cordia New', 'Leelawadee UI', Silom, sans-serif;Courier New/'Courier New';DaunPenh/DaunPenh, 'Leelawadee UI', 'Khmer MN', sans-serif;Franklin Gothic Book/'Franklin Gothic Book', 'Avenir Next Condensed', sans-serif;Franklin Gothic Demi/'Franklin Gothic Demi', 'Avenir Next Condensed Demi Bold', sans-serif;Franklin Gothic Medium/'Franklin Gothic Medium', 'Avenir Next Condensed Medium', sans-serif;Garamond/Garamond, Georgia, serif;Gautami/Gautami, 'Nirmala UI', 'Telugu MN', sans-serif;Georgia/Georgia, serif;Impact/Impact, Charcoal, sans-serif;Iskoola Pota/'Iskoola Pota', 'Nirmala UI', 'Sinhala MN', sans-serif;Kalinga/Kalinga, 'Nirmala UI', 'Oriya MN', sans-serif;Kartika/Kartika, 'Nirmala UI', 'Malayalam MN', sans-serif;Latha/Latha, 'Nirmala UI', 'Tamil MN', sans-serif;Leelawadee UI/'Leelawadee UI', Thonburi, sans-serif;Lucida Console/'Lucida Console', Monaco, monospace;Lucida Handwriting/'Lucida Handwriting', 'Apple Chancery', cursive;Lucida Sans Unicode/'Lucida Sans Unicode';Mangal/Mangal, 'Nirmala UI', 'Devanagari Sangam MN', sans-serif;Nirmala UI/'Nirmala UI', sans-serif;Nyala/Nyala, Kefa, sans-serif;Palatino Linotype/'Palatino Linotype', 'Book Antiqua', Palatino, serif;Raavi/Raavi, 'Nirmala UI', 'Gurmukhi MN', sans-serif;Segoe UI/'Segoe UI', 'Helvetica Neue', sans-serif;Shruti/Shruti, 'Nirmala UI', 'Gujarati Sangam MN', sans-serif;Sitka Heading/'Sitka Heading', Cochin, serif;Sitka Text/'Sitka Text', Cochin, serif;Sylfaen/Sylfaen, Mshtakan, Menlo, serif;TW Cen MT/'TW Cen MT', 'Century Gothic', sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/'Times New Roman', Times, serif;Times/Times, 'Times New Roman', serif;Trebuchet MS/'Trebuchet MS';Tunga/Tunga, 'Nirmala UI', 'Kannada MN', sans-serif;Verdana/Verdana, Geneva, sans-serif;Vrinda/Vrinda, 'Nirmala UI', 'Bangla MN', sans-serif;メイリオ/Meiryo, メイリオ, 'Hiragino Sans', sans-serif;仿宋/FangSong, 仿宋, STFangsong, serif;微軟正黑體/'Microsoft JhengHei', 微軟正黑體, 'Apple LiGothic', sans-serif;微软雅黑/'Microsoft YaHei', 微软雅黑, STHeiti, sans-serif;新宋体/NSimSun, 新宋体, SimSun, 宋体, SimSun-ExtB, 宋体-ExtB, STSong, serif;新細明體/PMingLiU, 新細明體, PMingLiU-ExtB, 新細明體-ExtB, 'Apple LiSung', serif;楷体/KaiTi, 楷体, STKaiti, serif;標楷體/DFKai-SB, 標楷體, BiauKai, serif;游ゴシック/'Yu Gothic', 游ゴシック, YuGothic, sans-serif;游明朝/'Yu Mincho', 游明朝, YuMincho, serif;隶书/SimLi, 隶书, 'Baoli SC', serif;黑体/SimHei, 黑体, STHeiti, sans-serif;굴림/Gulim, 굴림, 'Nanum Gothic', sans-serif;궁서/Gungsuh, 궁서, GungSeo, serif;돋움/Dotum, 돋움, AppleGothic, sans-serif;맑은 고딕/'Malgun Gothic', '맑은 고딕', AppleGothic, sans-serif;바탕/Batang, 바탕, AppleMyungjo, serif;바탕체/BatangChe, 바탕체, AppleMyungjo, serif;MS Pゴシック/'MS PGothic', 'MS Pゴシック', 'MS Gothic', 'MS ゴシック', 'Hiragino Kaku Gothic ProN', sans-serif;MS P明朝/'MS PMincho', 'MS P明朝', 'MS Mincho', 'MS 明朝', 'Hiragino Mincho ProN', serif",        "fontSize_defaultLabel": "9",        "fontSize_sizes": "8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt;",        "height": 185,        "keystrokes": [],        "qtCellBorderColor": "rgb(171, 171, 171)",        "qtCellBorderStyle": "solid",        "qtCellBorderWidth": "1px",        "qtCellPadding": "1",        "qtCellSpacing": "0",        "qtCellWith": "120px",        "qtColumns": 8,        "qtRows": 6,        "qtStyle": {            "border-collapse": "collapse",            "font-size": "9pt"        },        "removeDialogTabs": "flash:Upload;link:upload",        "removePlugins": "a11yhelp,codemirror,liststyle,magicline,scayt,showborders",        "skin": "superowa",        "stickyStyle": {            "font-size": "9pt",            "font-family": "'Segoe UI','Helvetica Neue',sans-serif"        },        "stickyStyles_defaultTag": "div",        "superimageImageMaxSize": 5,        "toolbarcollapser_enableResizer": true,        "toolbarLocation": "bottom",        "uploadRecordId": []    },    "disableContentSanitization": false,    "disableDefaultImageProcessing": false,    "disableImages": false,    "imageEntity": {        "imageEntityName": "msdyn_richtextfiles",        "imageFileAttributeName": "msdyn_imageblob"    },    "showAsTabControl": false,    "showFullScreenExpander": false,    "showHtml": false,    "showPreview": false,    "showPreviewHeaderWarning": false}}

Note

if you would like to only use this web resource to update certain forms rather than making organization wide changes, then I suggest you to copy the script and make a new web resource, after than, you can refer to below configuration steps in the new Power Apps interface to fulfill the requirement.

for instance, I’d like to add this web resource only to one of the email form, then I just follow below step to add the control to the form component.

image-20211006221933849

below is the case study for How to change Default Font style and size for email form in Rich text editor control in Dynamics CRM
https://www.dynamictechignite.com/tip-how-to-change-default-font-style-and-size-for-email-form-in-rich-text-editor-control-in-dynamics-crm/

Tip - Check current setting for a rich text editor config using browser directly


  1. In a Microsoft Edge or Google Chrome web browser, run your model-driven app and open a form that has the rich text editor control, such as an account row.
  2. Press F12 on your keyboard to open the Developer Tools from the browser
  3. Select the Console tab, and then select the parent Main.aspx page in the drop-down list box on the command bar, or you can clear console first, then input
> CKEDITOR.config.

then a list of properties will show up after the dot, where you can select the property you’re look for to find out the current setting for the rich text editor configuration.

image-20211006193902924

Wednesday, September 29, 2021

Tip - How to set up a Condition in Power Automate flow to check if "the field is empty"


Scenario:

sometimes, we have to check if the field contain data or is empty under the Condition action in a Power Automate flow, and we may be confused about which expression should be used to set up the condition.

image-20210929204201649

Reference material from Microsoft

If you use logical functions or conditions to compare values, null values are converted to empty string ("") values. The behavior of conditions differs when you compare with an empty string instead of a null value. For more information, see the string() function.

Refer to below link for more details from Microsoft:

https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#logical-comparison-functions

"empty" function

Check whether a collection is empty. Return true when the collection is empty, or return false when not empty.

Copy

empty('<collection>')empty([<collection>])
ParameterRequiredTypeDescription
<collection>YesString, Array, or ObjectThe collection to check
Return valueTypeDescription
true or falseBooleanReturn true when the collection is empty. Return false when not empty.

Example

These examples check whether the specified collections are empty:

Copy

empty('')empty('abc')

And returns these results:

  • First example: Passes an empty string, so the function returns true.
  • Second example: Passes the string "abc", so the function returns false.

Refer to below link for more details from Microsoft:

https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#empty

On the left side of the condition

"empty" function

empty([DynamicValue])e.g. empty(triggerOutputs()?['body/address1_city'])

but please note that the type of DynamicValue should be String, Array, or Object only (most of time, it will be a string type), otherwise, you will see an error, for instance, if we try to use a option set (choice) field in the Empty function indicated below, then we will see below error message during the run.

e.g.empty(triggerOutputs()?['body/preferredcontactmethodcode'])

image-20210929205305113

image-20210929211239611

image-20210929205614055

"length" function

length([DynamicValue])e.g.length(outputs('retrieve_option')?['body/methodToUpdate'])

but please note that the type of DynamicValue should be String, Array only. for instance, you can use it to check the length of an array in order to verify if the file or option exists. If it’s greater than 0, the array is not empty. If it’s 0, then it’s empty.

image-20210929211306283

On the right side of the condition

If you intend to check if a field is empty or not (on the right side of the condition) , and then do something. there are also couple of ways you can refer to.

null keyword

Just open the expression builder as below pic shown, and enter null, then you will see below predefined value “null” show up, after that, you can just click on Update to add it in the condition on the right side for comparison.

image-20210929212043686

empty string ("") value

if you‘re sure that the data type of the field you’re using on the left side of the condition is a string, then you can just put empty string on the right side for comparison.

image-20210929213239343