<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Phuoc.Le</title>
    <link>https://phuocle.net/</link>
    <description>Recent content on Phuoc.Le</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 13 Feb 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://phuocle.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Elevating Microsoft Power Platform Grids with CRM GRID PLUS 2</title>
      <link>https://phuocle.net/post/2025-02-13-elevating-microsoft-power-platform-grids-with-crm-grid-plus-2/</link>
      <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2025-02-13-elevating-microsoft-power-platform-grids-with-crm-grid-plus-2/</guid>
      <description>In the fast-evolving world of digital business solutions, customization and efficiency are key. For users of the Microsoft Power Platform, especially those working with Microsoft Dataverse, grids are essential for displaying and interacting with data. However, the out-of-the-box (OOB) grids within Microsoft Dataverse, including dashboard grids, entity main list grids, form grids, associated grids, advanced find grids, and lookup window grids, often lack the flexibility that users need for a truly personalized experience.</description>
    </item>
    <item>
      <title>DP-600 Implementing Analytics Solutions Using Microsoft Fabric with 120 Questions</title>
      <link>https://phuocle.net/post/2025-01-17-dp-600-implementing-analytics-solutions-using-microsoft-fabric-with-120-questions/</link>
      <pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2025-01-17-dp-600-implementing-analytics-solutions-using-microsoft-fabric-with-120-questions/</guid>
      <description>CASE 1 FROM QUESTION 01 TO 08 Question 01 Question 02 Question 03 Question 04 Question 05 Question 06 Question 07 Question 08 CASE 2 FROM QUESTION 09 TO 17 Question 09 Question 10 Question 11 Question 12 Question 13 Question 14 Question 15 Question 16 Question 17 YES/NO QUESTION FROM QUESTION 18 TO 31 Question 18 Question 19 Question 20 Question 21 Question 22 Question 23 Question 24 Question 25 Question 26 Question 27 Question 28 Question 29 Question 30 Question 31 SQL QUESTION FROM QUESTION 32 TO 43 Question 32 Question 33 Question 34 Question 35 Question 36 Question 37 Question 38 Question 39 Question 40 Question 41 Question 42 Question 43 OTHERS Question 44 Question 45 Question 46 Question 47 Question 48 Question 49 Question 50 Question 51 Question 52 Question 53 Question 54 Question 55 Question 56 Question 57 Question 58 Question 59 Question 60 Question 61 Question 62 Question 63 Question 64 Question 65 Question 66 Question 67 Question 68 Question 69 Question 70 Question 71 Question 72 Question 73 Question 74 Question 75 Question 76 Question 77 Question 78 Question 79 Question 80 Question 81 Question 82 Question 83 Question 84 Question 85 Question 86 Question 87 Question 88 Question 89 Question 90 Question 91 Question 92 Question 93 Question 94 Question 95 Question 96 Question 97 Question 98 Question 99 Question 100 Question 101 Question 102 Question 103 Question 104 Question 105 Question 106 Question 107 Question 108 Question 109 Question 110 Question 111 Question 112 Question 113 Question 114 Question 115 Question 116 Question 117 Question 118 Question 119 Question 120 </description>
    </item>
    <item>
      <title>crmdialog</title>
      <link>https://phuocle.net/post/2020-06-20-crmdialog/</link>
      <pubDate>Sat, 20 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2020-06-20-crmdialog/</guid>
      <description>Process dialogs are deprecated and will be removed by December 1, 2020. Until that day. Did your company have replacement options?&#xA;Replace dialogs Power Apps component framework Development of custom Html/JS Webresources with help of modern frameworks &amp;hellip; With some keywords on Google: dynamics crm 365 cds dialog you found:&#xA;The first post: Custom Dialog Boxes - Part 1 of Bob Guidinger. He wrote on: July 22, 2018&#xA;Then on July 29, 2018 he wrote second post: Custom Dialog Boxes - Part 2</description>
    </item>
    <item>
      <title>View-FetchXML</title>
      <link>https://phuocle.net/post/2020-03-21-view-fetchxml/</link>
      <pubDate>Sat, 21 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2020-03-21-view-fetchxml/</guid>
      <description>You are a Dynamics 365/CDS developer. How you build your FetchXML string in JavaScript/C# code?&#xA;Are you use the function: Download Fetch XML in the Advanced Find window?&#xA;Wow, look like you have a lot of tasks :cold_sweat: after you Download Fetch XML&#xA;Open the xml file with the text editor Find &amp;quot; and Replace with &amp;rsquo; Edit, join to make a correct string, also with a dynamic parameter &amp;hellip;.. Instead click the button Download Fetch XML in the Advanced Find window, you can click the button View FetchXML near it by install the solution View-FetchXML</description>
    </item>
    <item>
      <title>Dynamics 365 Online S2S Authentication - Full Explain</title>
      <link>https://phuocle.net/post/2017-04-02-dynamics-365-online-s2s-authentication-full-explain/</link>
      <pubDate>Sun, 02 Apr 2017 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2017-04-02-dynamics-365-online-s2s-authentication-full-explain/</guid>
      <description>Server-to-Server (S2S) authentication (only support Dynamics 365 online) was great, it use ClientId/SecretKey to authentication (instead use UserName/Password) and it use without Dynamics 365 license.&#xA;But everybody have problem when use CllientId/SecretKey, the main problem is HTTP Error 401 - Unauthorized: Access is denied&#xA;I headache this problem more than 3 days, and now, I succeed authentication with ClientId/SecretKey.&#xA;This post I will fully explain you how I can achieve it.</description>
    </item>
    <item>
      <title>Please, don&#39;t hard code</title>
      <link>https://phuocle.net/post/2017-03-12-please-dont-hard-code/</link>
      <pubDate>Sun, 12 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2017-03-12-please-dont-hard-code/</guid>
      <description>When building hyperlinks to CRM in SSRS reports, please don&amp;rsquo;t hard code&#xA;Wrong: hard coding your CRM URL. Do not set your URL to &amp;ldquo;https://crmserver/….&amp;rdquo; If you do this use the hyperlink will only work in one environment and will have to be rewritten to work in another environment. Right: Use the CRM_URL parameter in your report. This makes your links will work in all environments, even when offline. Parameters!CRM_URL Wrong: Using OTC (ObjectTypeCode) in your hyperlink expression.</description>
    </item>
    <item>
      <title>Get Sql ConnectionString from CRM server code</title>
      <link>https://phuocle.net/post/2016-12-11-get-sql-connectionstring-from-crm-server-code/</link>
      <pubDate>Sun, 11 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2016-12-11-get-sql-connectionstring-from-crm-server-code/</guid>
      <description>Sometime, your business logic need access direct SQL Server, and you want to know the ConnectionString of CRM Database.&#xA;This code will help you get Sql ConnectionString from CRM Plugin/Custom Action/Custom Workflow (before that I saved the ConnectionString to the custom Options entity)&#xA;public void Execute(IServiceProvider serviceProvider) { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var platformContext = context.GetType().InvokeMember(&amp;#34;PlatformContext&amp;#34;, BindingFlags.GetProperty, null, context, null); var transaction = (SqlTransaction)platformContext.GetType().InvokeMember(&amp;#34;SqlTransaction&amp;#34;, BindingFlags.GetProperty, null, platformContext, null); throw new InvalidPluginExecutionException(transaction.</description>
    </item>
    <item>
      <title>Hide Next Stage, Set Active, Back Button in the Business Process Flows</title>
      <link>https://phuocle.net/post/2016-08-16-hide-next-stage-set-active-back-button-in-business-process-flows/</link>
      <pubDate>Tue, 16 Aug 2016 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2016-08-16-hide-next-stage-set-active-back-button-in-business-process-flows/</guid>
      <description>I have a requirement in my current project that hide Next Stage, Set Active and Back button in the Business Process Flows&#xA;To do that, I used an UnSupported code code below function hideBPFButton() { hideBPFButtons(); window.addEventListener(&amp;#34;resize&amp;#34;, hideBPFButtons); Xrm.Page.data.process.addOnStageSelected(hideBPFButtons); } function hideBPFButtons() { var dom = (Xrm == undefined || Xrm.Internal == undefined || Xrm.Internal.isTurboForm() == undefined || Xrm.Internal.isTurboForm() == false) ? document : parent.document; $(&amp;#34;#stageSetActiveActionContainer&amp;#34;, dom).remove(); $(&amp;#34;#stageBackActionContainer&amp;#34;, dom).remove(); $(&amp;#34;#stageNavigateActionContainer&amp;#34;, dom).</description>
    </item>
    <item>
      <title>Add more buttons on the form subgrid</title>
      <link>https://phuocle.net/post/2016-08-10-add-more-buttons-on-the-form-subgrid/</link>
      <pubDate>Wed, 10 Aug 2016 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2016-08-10-add-more-buttons-on-the-form-subgrid/</guid>
      <description>Sometime, your business requirement need add some buttons in the form sub-grid like picture below (Account form, sub-grid Contacts). How I can do that 1. Prepare 2 web-resource png image 16x16 file.&#xA;1 for normal button 1 for hover button 2. Copy function below to your main js web-resource file.&#xA;function createButton(grid, buttonName, buttonTooltip, buttonImage, buttonImageHover, callback) { if (grid == null || grid.length == 0) return; if (buttonName == null || buttonName.</description>
    </item>
    <item>
      <title>Get size of all tables in database</title>
      <link>https://phuocle.net/post/2016-04-12-get-size-of-all-tables-in-database/</link>
      <pubDate>Tue, 12 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2016-04-12-get-size-of-all-tables-in-database/</guid>
      <description>Sometime you need to get size of all tables in database. This SQL code will help you.&#xA;DECLARE @tmpTable TABLE ( [RowCount] INT , [TableName] NVARCHAR(MAX) ) DECLARE @ResultTable TABLE ( [Name] NVARCHAR(MAX) , [Rows] INT , [Reserverd] NVARCHAR(MAX) , [Data] NVARCHAR(MAX) , [IndexSize] NVARCHAR(MAX) , [Unused] NVARCHAR(MAX) ) INSERT INTO @tmpTable ( [RowCount] , [TableName] ) SELECT [RowCount] = MAX(si.rows) , [TableName] = so.name FROM sysobjects so , sysindexes si WHERE so.</description>
    </item>
    <item>
      <title>Get years, months, days between 2 date</title>
      <link>https://phuocle.net/post/2016-03-13-get-years-months-days-between-2-date/</link>
      <pubDate>Sun, 13 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/post/2016-03-13-get-years-months-days-between-2-date/</guid>
      <description>Sometime you want get how many years, months, days from 2 date.&#xA;The UDF here help you&#xA;CREATE FUNCTION [dbo].[fnGetYMD] ( @d1 DATETIME, @d2 DATETIME ) RETURNS NVARCHAR(MAX) AS BEGIN IF (@d1 &amp;gt;= @d2) RETURN &amp;#39;0 day&amp;#39; DECLARE @y INT DECLARE @m INT DECLARE @d INT SET @y = DATEDIFF(yy, @d1, @d2) - CASE WHEN (MONTH(@d1) &amp;gt; MONTH(@d2)) OR (MONTH(@d1) = MONTH(@d2) AND DAY(@d1) &amp;gt; DAY(@d2)) THEN 1 ELSE 0 END SET @d1 = DATEADD(yy, @y, @d1) SET @m = DATEDIFF(m, @d1, @d2) - CASE WHEN DAY(@d1) &amp;gt; DAY(@d2) THEN 1 ELSE 0 END SET @d1 = DATEADD(m, @m, @d1) SET @d = DATEDIFF(d, @d1, @d2) DECLARE @ret NVARCHAR(MAX) = &amp;#39;&amp;#39; IF @y &amp;lt;&amp;gt; 0 BEGIN IF @y = 1 SET @ret = &amp;#39;1 year &amp;#39; ELSE SET @ret = CONVERT(NVARCHAR(MAX), @y) + &amp;#39; years &amp;#39; END IF @m &amp;lt;&amp;gt; 0 BEGIN IF @m = 1 SET @ret = @ret + &amp;#39;1 month &amp;#39; ELSE SET @ret = @ret + CONVERT(NVARCHAR(MAX), @m) + &amp;#39; months &amp;#39; END IF @d &amp;lt;&amp;gt; 0 BEGIN IF @d = 1 SET @ret = @ret + &amp;#39;1 day&amp;#39; ELSE SET @ret = @ret + CONVERT(NVARCHAR(MAX), @d) + &amp;#39; days&amp;#39; END RETURN @ret END And the result from my birthday until to 11-08-2013</description>
    </item>
    <item>
      <title>LÊ VĂN PHƯỚC</title>
      <link>https://phuocle.net/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/about/</guid>
      <description>My name is LÊ VĂN PHƯỚC. I live in HoChiMinh city in Vietnam and I have the following qualities:&#xA;More than 15+ years support and develop Microsoft Dataverse from version 4 up to now. Experience working with Microsoft Dataverse like develop, code and debug from server side (Plugins, Custom Workflows, Custom Actions, Custom Apis) to client side (JavaScript, TypeScript, PCF), and experienced integrating with others system using SOAP and/or Web API.</description>
    </item>
    <item>
      <title>Privacy Policy for Contoso PL</title>
      <link>https://phuocle.net/privacypolicy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://phuocle.net/privacypolicy/</guid>
      <description>Effective Date: Jan.01.2025&#xA;1. Introduction Welcome to Contoso PL. We are committed to protecting your personal information and your right to privacy. If you have any questions or concerns about our policy or our practices with regards to your personal information, please contact us at Contact Us.&#xA;2. Information We Collect When you visit our Facebook Fan Page, we may collect the following information:&#xA;Personal Information: This includes your name, email address, and other contact details if you provide them to us.</description>
    </item>
  </channel>
</rss>
