{"id":24297,"date":"2020-07-31T11:51:12","date_gmt":"2020-07-31T11:51:12","guid":{"rendered":"https:\/\/www.inogic.com\/blog\/?p=24297"},"modified":"2022-09-02T15:45:45","modified_gmt":"2022-09-02T10:15:45","slug":"how-to-create-configurable-pcf-dataset-control-using-property-set-and-property","status":"publish","type":"post","link":"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-create-configurable-pcf-dataset-control-using-property-set-and-property\/","title":{"rendered":"How to Create Configurable PCF Dataset control using Property-set and Property"},"content":{"rendered":"<h2><strong>Introduction<\/strong><\/h2>\n<p>In our previous <a href=\"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-work-with-pcf-dataset-control-using-fluent-uis-detail-list\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog<\/a>, we have seen how to create a PCF dataset grid control to replace the Dynamics 365 CRM OOB grid. In this blog, we will see how to create a configurable PCF Control where few parameters would be taken from the user which will be used in our control.<\/p>\n<p>Recently, we had a requirement where we wanted to show records in the form of cards. But then the following question raised &#8211; Which fields should be shown on the cards?<\/p>\n<p style=\"text-align: justify;\">As seen in our previous <a href=\"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-work-with-pcf-dataset-control-using-fluent-uis-detail-list\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog<\/a> we get all the column values present in a view but what if there are 10-15 columns in a view. If we show all the 10-15 field values then the card size may get very big and we would not be able to show many records. Similarly, there were many such scenarios where the use of existing column value would hamper the consistency or standard look and feel of the cards.<\/p>\n<p>So, we decided to create a configurable control where the values that the user wants will be chosen by the user.<\/p>\n<p style=\"text-align: justify;\">For such scenarios, the first thing that pops up in mind is to create an entity for configuration and retrieve the provided field values using retrieveMultiple(). But there is a better way to get additional column values in PCF, which is by using <strong>property-set<\/strong> to get columns that are not present on view columns.<\/p>\n<p><strong>Prerequisites:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/developer\/component-framework\/get-powerapps-cli\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft PowerApps CLI<\/a> should be installed.<\/li>\n<li><a href=\"https:\/\/reactjs.org\/tutorial\/tutorial.html\" target=\"_blank\" rel=\"noopener noreferrer\">React JS<\/a> basic knowledge.<\/li>\n<li>Should be familiar to create <a href=\"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-work-with-pcf-dataset-control-using-fluent-uis-detail-list\/\" target=\"_blank\" rel=\"noopener noreferrer\">Basic dataset control<\/a>.<\/li>\n<\/ul>\n<p><strong>Overview:<\/strong><\/p>\n<p><strong>What is Property-set and Property?<\/strong><\/p>\n<p><strong>Property-set: <\/strong>When you want additional column data and want user to choose those values we can use property-set<\/p>\n<p>Syntax \u2013<\/p>\n<p>&lt;property-set\u00a0name=&#8221;userChoiceData1&#8243;\u00a0display-name-key=&#8221;User\u00a0choice\u00a0data\u00a01&#8243;\u00a0description-key=&#8221;userChoiceData1&#8243;\u00a0of-type=&#8221;SingleLine.Text&#8221;\u00a0usage=&#8221;bound&#8221;\u00a0required=&#8221;true&#8221;\u00a0\/&gt;<\/p>\n<p><strong>Property:<\/strong> When you want some static value from the user we can use the property. Given below is an example of how to use the property.<\/p>\n<p>Syntax-<\/p>\n<p>&lt;property\u00a0name=&#8221;userChoiceStaticValue&#8221;\u00a0display-name-key=&#8221;User\u00a0Choice\u00a0Static\u00a0Value&#8221;\u00a0description-key=&#8221;userChoiceStaticValue&#8221;\u00a0of-type=&#8221;SingleLine.Text&#8221;\u00a0usage=&#8221;input&#8221;\u00a0required=&#8221;true&#8221;\u00a0\/&gt;<\/p>\n<p><strong>Attributes Descriptions for property-set and property tag:<\/strong><\/p>\n<p><strong>of-type &#8211; <\/strong>Defines which datatype you want the user to be able to select from. If you want more than one data-type you can use type-group. Given below is an example on how to make and use type-group.<\/p>\n<p>For Example: Type group tag is used in ControlManifest.Input.xml file. Here, we have made a type group to support Currency and Boolean datatype field for configuration.<\/p>\n<p>&lt;type-group\u00a0name=&#8221;SupportedFields&#8221;&gt;<\/p>\n<p>&lt;type&gt;Currency&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;Boolean&lt;\/type&gt;<\/p>\n<p>&lt;\/type-group&gt;<\/p>\n<p><strong>usage:<\/strong> Will be bound for property-set and input for property tag.<\/p>\n<p><strong>required: Whether it is compulsory for the user to select option? <\/strong><\/p>\n<p>To know more about the attributes please follow the following <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/developer\/component-framework\/manifest-schema-reference\/property-set\" target=\"_blank\" rel=\"noopener noreferrer\">link<\/a>.<\/p>\n<p><strong>Where to configure Property-set and Property?<\/strong><\/p>\n<p>When the user tries to configure our Custom grid on Entity, the user will get the choice to select entity fields as shown in the below screenshot:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24286\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/1PCF-Dataset-control-1.png\" alt=\"PCF Dataset control\" width=\"1023\" height=\"532\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/1PCF-Dataset-control-1.png 1023w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/1PCF-Dataset-control-1-300x156.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/1PCF-Dataset-control-1-768x399.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/1PCF-Dataset-control-1-660x343.png 660w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/p>\n<p><strong>For Property-set:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24287\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/2PCF-Dataset-control-1.png\" alt=\"PCF Dataset control\" width=\"581\" height=\"533\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/2PCF-Dataset-control-1.png 581w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/2PCF-Dataset-control-1-300x275.png 300w\" sizes=\"(max-width: 581px) 100vw, 581px\" \/><\/p>\n<p><strong>For Property:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24288\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/3PCF-Dataset-control-2.png\" alt=\"PCF Dataset control\" width=\"613\" height=\"520\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/3PCF-Dataset-control-2.png 613w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/3PCF-Dataset-control-2-300x254.png 300w\" sizes=\"(max-width: 613px) 100vw, 613px\" \/><\/p>\n<p><strong>After configuration:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24289\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/4PCF-Dataset-control-2.png\" alt=\"PCF Dataset control\" width=\"758\" height=\"203\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/4PCF-Dataset-control-2.png 758w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/4PCF-Dataset-control-2-300x80.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/4PCF-Dataset-control-2-660x177.png 660w\" sizes=\"(max-width: 758px) 100vw, 758px\" \/><\/p>\n<p><strong>Code Implementation:<\/strong><\/p>\n<p>You can refer to our previous <a href=\"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-work-with-pcf-dataset-control-using-fluent-uis-detail-list\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog<\/a> for index.ts and react component code. Only changes are in ControlManifest.Input.xml file.<\/p>\n<p>Given below is the <strong>ControlManifest.Input.xml <\/strong>\u00a0file in which we add the property-set and property tag and also create a type-group.<\/p>\n<p>In <strong>type-group<\/strong> you can see there different tags called <strong>type<\/strong> whose values are <strong>data-type<\/strong> of fields.<\/p>\n<p>In conclusion, a type-group is a collection of various data types that can be used in a property-set and property tag attribute for providing the option for the user to select different data-type fields for configuration.<\/p>\n<p><strong>ControlManifest.Input.xml \u2013 <\/strong><\/p>\n<p>&lt;?xml\u00a0version=&#8221;1.0&#8243;\u00a0encoding=&#8221;utf-8&#8243;\u00a0?&gt;<\/p>\n<p>&lt;manifest&gt;<\/p>\n<p>&lt;control\u00a0namespace=&#8221;Inogic&#8221;\u00a0constructor=&#8221;GridControl&#8221;\u00a0version=&#8221;0.0.1&#8243;\u00a0display-name-key=&#8221;GridControl&#8221;\u00a0description-key=&#8221;GridControl\u00a0description&#8221;\u00a0control-type=&#8221;standard&#8221;&gt;<\/p>\n<p>&lt;type-group\u00a0name=&#8221;SupportedFields&#8221;&gt;<\/p>\n<p>&lt;type&gt;Currency&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;DateAndTime.DateAndTime&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;DateAndTime.DateOnly&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;FP&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;Multiple&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;OptionSet&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;Decimal&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.Email&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.Phone&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.Text&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.TextArea&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.Ticker&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;SingleLine.URL&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;TwoOptions&lt;\/type&gt;<\/p>\n<p>&lt;type&gt;Whole.None&lt;\/type&gt;<\/p>\n<p>&lt;\/type-group&gt;<\/p>\n<p>&lt;!&#8211;\u00a0dataset\u00a0node\u00a0represents\u00a0a\u00a0set\u00a0of\u00a0entity\u00a0records\u00a0on\u00a0CDS;\u00a0allow\u00a0more\u00a0than\u00a0one\u00a0datasets\u00a0&#8211;&gt;<\/p>\n<p>&lt;data-set\u00a0name=&#8221;sampleDataSet&#8221;\u00a0display-name-key=&#8221;Dataset_Display_Key&#8221;&gt;<\/p>\n<p>&lt;!&#8211;\u00a0(property-set)\u00a0Get\u00a0user\u00a0choice\u00a0columns\u00a0added\u00a0in\u00a0view\u00a0columns\u00a0&#8211;&gt;<\/p>\n<p>&lt;property-set\u00a0name=&#8221;userChoiceData1&#8243;\u00a0display-name-key=&#8221;User\u00a0choice\u00a0data\u00a01&#8243;\u00a0description-key=&#8221;userChoiceData1&#8243;\u00a0of-type-group=&#8221;SupportedFields&#8221;\u00a0usage=&#8221;bound&#8221;\u00a0required=&#8221;true&#8221;\u00a0\/&gt;<\/p>\n<p>&lt;property-set\u00a0name=&#8221;userChoiceData2&#8243;\u00a0display-name-key=&#8221;User\u00a0choice\u00a0data\u00a02&#8243;\u00a0description-key=&#8221;userChoiceData2&#8243;\u00a0of-type-group=&#8221;SupportedFields&#8221;\u00a0usage=&#8221;bound&#8221;\u00a0required=&#8221;false&#8221;\u00a0\/&gt;<\/p>\n<p>&lt;\/data-set&gt;<\/p>\n<p>&lt;!&#8211;\u00a0(property)\u00a0Get\u00a0static\/hardcoded\u00a0value\u00a0by\u00a0user\u00a0&#8211;&gt;<\/p>\n<p>&lt;property\u00a0name=&#8221;userChoiceStaticValue&#8221;\u00a0display-name-key=&#8221;User\u00a0Choice\u00a0Static\u00a0Value&#8221;\u00a0description-key=&#8221;userChoiceStaticValue&#8221;\u00a0of-type=&#8221;SingleLine.Text&#8221;\u00a0usage=&#8221;input&#8221;\u00a0required=&#8221;true&#8221;\u00a0\/&gt;<\/p>\n<p>&lt;resources&gt;<\/p>\n<p>&lt;code\u00a0path=&#8221;index.ts&#8221;\u00a0order=&#8221;1&#8243;\/&gt;<\/p>\n<p>&lt;\/resources&gt;<\/p>\n<p>&lt;\/control&gt;<\/p>\n<p>&lt;\/manifest&gt;<\/p>\n<p>Before configuring property set there were only two columns on view.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24290\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/5PCF-Dataset-control-2.png\" alt=\"PCF Dataset control\" width=\"861\" height=\"543\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/5PCF-Dataset-control-2.png 861w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/5PCF-Dataset-control-2-300x189.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/5PCF-Dataset-control-2-768x484.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/5PCF-Dataset-control-2-660x416.png 660w\" sizes=\"(max-width: 861px) 100vw, 861px\" \/><\/p>\n<p>After user-configured dataset control, you can see in the below screenshot, an additional two columns are being loaded in context.parameters.sampleDataset.columns i.e. <strong>\u2018DoNotEmail\u2019<\/strong> and \u2018<strong>Modified On\u2019.<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24291\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/6PCF-Dataset-control.png\" alt=\"PCF Dataset control\" width=\"1004\" height=\"398\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/6PCF-Dataset-control.png 1004w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/6PCF-Dataset-control-300x119.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/6PCF-Dataset-control-768x304.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/6PCF-Dataset-control-660x262.png 660w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><\/p>\n<p>To know which column is mapped to which property-set we can use <strong>alias value<\/strong> i.e. if you want to check which field is selected to User Choice data 1 the alias name of the column would be the property-set name.<\/p>\n<p>To get the property value you would have to write <strong>context.parameters.userChoiceStaticValue.raw<\/strong> to get the user-entered value.<\/p>\n<p><strong>Note: In context.parameters.userChoiceStaticValue.raw, userChoiceStaticValue is property tag name defined in ControlManifest.Input.xml file.<\/strong><\/p>\n<p>There is default validation by Dynamics 365 CRM on property configuration based on datetype.<\/p>\n<p>For Example, \u00a0in the below screenshot I want user to enter DatetAndTime value. So I specified property type as DateAndTime. More similar validation can be done such as if you want numeric input from user, you can specify type as Whole number.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24292\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/7PCF-Dataset-control.png\" alt=\"PCF Dataset control\" width=\"504\" height=\"435\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/7PCF-Dataset-control.png 504w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/7PCF-Dataset-control-300x259.png 300w\" sizes=\"(max-width: 504px) 100vw, 504px\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24293\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/8PCF-Dataset-control.png\" alt=\"PCF Dataset control\" width=\"505\" height=\"433\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/8PCF-Dataset-control.png 505w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/8PCF-Dataset-control-300x257.png 300w\" sizes=\"(max-width: 505px) 100vw, 505px\" \/><\/p>\n<p>Given below are the supported data-type for property type. For property-set please refer the following <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/developer\/component-framework\/manifest-schema-reference\/property-set\" target=\"_blank\" rel=\"noopener noreferrer\">link<\/a>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24294\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/9PCF-Dataset-control.png\" alt=\"PCF Dataset control\" width=\"505\" height=\"434\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/9PCF-Dataset-control.png 505w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/9PCF-Dataset-control-300x258.png 300w\" sizes=\"(max-width: 505px) 100vw, 505px\" \/><\/p>\n<p><strong>Final Component:<\/strong><\/p>\n<p>After deploying your control and configuring it on the entity you will see the OOB Grid has been replaced with our own configurable React<strong> Fluent UI Detail List Grid.<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24295\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/10PCF-Dataset-control.png\" alt=\"PCF Dataset control\" width=\"904\" height=\"677\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/10PCF-Dataset-control.png 904w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/10PCF-Dataset-control-300x225.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/10PCF-Dataset-control-768x575.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/07\/10PCF-Dataset-control-660x494.png 660w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>Thus, as illustrated above you can now make a user-configurable Dataset Control with ease.<\/p>\n<h2 style=\"text-align: left;\"><div class=\"su-heading su-heading-style-default su-heading-align-center\" id=\"\" style=\"font-size:15px;margin-bottom:5px\"><div class=\"su-heading-inner\">Generate Your Own New Leads Within Microsoft Dynamics 365 CRM<\/div><\/div><\/h2>\n<p><em>Contact us for a <a href=\"https:\/\/www.maplytics.com\/maplytics-download\/?utm_source=highvisits&amp;utm_medium=technicalblog&amp;utm_campaign=hMaplytics\" target=\"_blank\" rel=\"noopener\">demo<\/a> to know more about how <a href=\"https:\/\/www.maplytics.com\/?utm_source=highvisits&amp;utm_medium=technicalblog&amp;utm_campaign=hMaplytics\" target=\"_blank\" rel=\"noopener\">Maplytics<\/a> can help you to generate new leads from within Microsoft Dynamics 365 CRM.<\/em><\/p>\n<p><em><a href=\"https:\/\/www.maplytics.com\/?utm_source=highvisits&amp;utm_medium=technicalblog&amp;utm_campaign=hMaplytics\" target=\"_blank\" rel=\"noopener\">Maplytics<\/a> is a 5-star rated, preferred business app on the <a href=\"https:\/\/appsource.microsoft.com\/en-us\/product\/dynamics-365\/inogic.f6f3c73f-29de-4fa8-a396-87ea8a07b6c4?tab=Overview\" target=\"_blank\" rel=\"noopener\">Microsoft AppSource<\/a> that is Certified for Microsoft Dynamics 365 (CfMD) and comes with powerful features like Appointment Planning, Sales Routing, Territory Management, Heat Maps, Geo-analytical Dashboards and more that empower organizations to add more value to their CRM data, improve sales &amp; service processes, and achieve high ROI.<\/em><\/p>\n<p><em>Get your <a href=\"https:\/\/www.maplytics.com\/maplytics-download\/?utm_source=highvisits&amp;utm_medium=technicalblog&amp;utm_campaign=hMaplytics\" target=\"_blank\" rel=\"noopener\">free trial<\/a> from our Website or <a href=\"https:\/\/appsource.microsoft.com\/en-us\/product\/dynamics-365\/inogic.f6f3c73f-29de-4fa8-a396-87ea8a07b6c4?tab=Overview\" target=\"_blank\" rel=\"noopener\">Microsoft AppSource<\/a>!<\/em><\/p>\n<p><em>&#8216;If data is the new oil, location intelligence is ??\u201d<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In our previous blog, we have seen how to create a PCF dataset grid control to replace the Dynamics 365 CRM OOB grid. In this blog, we will see how to create a configurable PCF Control where few parameters would be taken from the user which will be used in our control. Recently, we\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.inogic.com\/blog\/2020\/07\/how-to-create-configurable-pcf-dataset-control-using-property-set-and-property\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":13,"featured_media":24298,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[18,1929],"tags":[],"class_list":["post-24297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dynamics-365-v9-2","category-pcf"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/24297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/comments?post=24297"}],"version-history":[{"count":0,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/24297\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media\/24298"}],"wp:attachment":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media?parent=24297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/categories?post=24297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/tags?post=24297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}