Thursday, September 30, 2021

Change DataVerse/D365 rollup frequency

Introduction

Usually When we create a Rollup Field it automatically creates a System Jobs with Recurrence of 1 Day. In this Blog, we will see how to change Rollup Frequency in DataVerse Environment.


Steps to Follow:

 

1. Navigate to https://make.powerapps.com

 

2. Then Click on Advance Settings by clicking Gear Icon at the Top

 

rampprakash_0-1633011956786.png

 

3. Then Click System Jobs

 

rampprakash_1-1633012030684.png

 

4. Change View to All Rollup Field Calculation Jobs

 

rampprakash_2-1633012121540.png

 

5. Then Open the Required Job to Change the Occurrence

 

rampprakash_3-1633012188014.png

 

6. Click Actions then Select Modify Recurrence

 

rampprakash_4-1633012252914.png

 

7. Then change Occurrence based on Requirement

 

rampprakash_5-1633012281581.png

 

That's it :slightly_smiling_face:

Tuesday, September 28, 2021

How to Create and Distribute Solutions from Power Platform

 Implementation Process:

 

1. Navigate to https://make.powerapps.com

 

2. Click Solutions then Click New then Enter the mandatory details like (Display Name/ Name / Publisher / Version)

 

rampprakash_0-1632315865876.png

 

3. Once Entered the Mandatory details click on Create --> Then open the Solution (in my case it is Demo Solution for publisher)

 

rampprakash_0-1632330684259.png

 

 

 

4. Click New to add a new Components(Tables/JS etc)

 

5. Click Add Existing to add the Existing Components

 

6. Once Done click On Export --> Then Publish

 

rampprakash_1-1632330787675.png

 

7. Then you will be directed to another screen for Exporting solution as Managed or UnManaged

rampprakash_2-1632330844242.png

 

a. Unmanaged --> If you Import it as Unmanaged in the destination environment we able to edit the Components available in the solution. Possible to export from the destination environment too.

 

b. Managed --> If you Import it as Managed you cannot edit the component. Not Possible to Export from destination environment.

 

8. Select the appropriate type and Click Export

 

9. Once import done you can import the same to your destination environment

 

That's it. This is how we need to Create, Export/Import solution from Source to Destination environment.

Publisher in Power Platform

Introduction:

 

As per Out of Behavior, Power platform will provide default prefix for custom entities as new_ or cr608_. To create custom prefix we need to create a publisher so that we can use our custom prefix while creating custom entities or custom fields in custom tables or OOB tables.

 

Implementation Steps:

 

1. Navigate to https://make.powerapps.com

 

2. Click on Solutions

 

3. Then Click on New Solution then select New Publisher Button

 

rampprakash_0-1632323952857.png

 

4. It will Navigate to another screen to Create a Publisher. Enter the Mandatory Details as Display Name/Name/Prefix

In this Demo am selected my Prefix as demo

 

rampprakash_2-1632324307795.png

 

5. If you want to enter Contact details about the publisher click on Contact and enter the details (Not Mandatory)

 

rampprakash_4-1632324400064.png

 

6. Once Done Click On Save Button to Save the Publisher

 

rampprakash_0-1632325656279.png

 

That's it. This is how we need to create Publisher.

 

Please find the Video for your reference


Youtube link for your reference.

Tuesday, September 21, 2021

Add Custom Icons in Sub-Grid or View in Model Driven Apps or CRM


Introduction:

In this blog we will see how to Add an Image or Icon in SUBGRID / VIEWS in Model Driven Apps or Dynamics CRM


Steps to Follow:

In this example in Opportunity Entity i have created an Option Set field

1. Submitted

2. Sent for Approval

3. Approved

4. Rejected


I have downloaded Four images and store it in CRM as Web Resources(Settings --> Customization--> Customize the system --> WebResource--> New WebResource --> Type as PNG)



As the Above mentioned you need to Process it for storing the PNG


Once Above steps done create an WebResource for JavaScript(Settings --> Customization--> Customize the system --> WebResource--> New WebResource --> Type as JavaScript)

Then write the below code in the TEXT Editor Javascript


function populateImageValuesinGrid(rowDataFromGrid) {

    debugger;

    var getRows = JSON.parse(rowDataFromGrid);

    var currentRecordStatus = getRows.cr608_currentrecordstatus;

    var populateimageValues = "";

    var populateTooltip = "";


    switch (currentRecordStatus) {

        case "Submitted":

            populateimageValues = "SUBMITTED WEBRESOURCE NAME";//cr608_submited

            populateTooltip = "Submitted";

            break;

        case "Approved":

            populateimageValues ="Approved WEBRESOURCE NAME";//cr608_Approved

            populateTooltip = "Approved";

            break;

        case "Rejected":

            populateimageValues = "Rejected WEBRESOURCE NAME";//cr608_rejcted

            populateTooltip = "Rejected";

            break;

        case "Sent For Approval":

            populateimageValues = "SFA WEBRESOURCE NAME";//cr608_sent for approval

            populateTooltip = "Sent For Approval";

            break;

    }


    var returnArrayValues = [populateimageValues, populateTooltip];

    return returnArrayValues;

}


Once Pasted the above script--> Click Save then Publish

Once Publish Done

Open the Opportunity Entity from Solutions --> then click on View(here am going to populate in Opportunity association view)--> Open it then select open Classic View --> then Select the STATUS COLUMN(where you want to show images)

then Input the WebResource Name then Input the FUNCTION name --> Click Ok --> Save and Close --> PUBLISH


Thats it. Now you can see the image automatically gets populated based on the status




Conclusion:


This is how we need to add Images/Icons in Custom View or in Grid



Friday, September 17, 2021

Create and Connect - Multi-factor enabled D365 Dataverse Programmatically

 

Introduction:

In this Blog, we will see how to create Application User in Azure to Access Dynamics CRM/ Model-Driven Apps


Azure Steps to Follow for Application User Registration

1. Login to https://portal.azure.com

2. Search for App Registrations at the top


3. Click New App Registration
4. Enter the Name and Click on Register


5. Once Registration Done 

6. Copy Application ID and Store it in Notepad

7. Search for Certificates and Secrets



8. Select New Client Secret

9. Enter the Description and Click Save

10. You will be getting Client Secret once you save it.

11. Copy that in your Notepad where Application ID Copied



Create Application User in Model-Driven Apps / CRM

1. Login to D365 CDS environment

2. Go to Settings –> Security –>Users

3. Change the view to ‘Application Users’ and click New. Make sure the form is ‘Application User’ form

4. Click New and Change Form to Application User and Input Application ID in the Text Box and Save

5. Then Assign appropriate Security role to this Application User as per your organization’s security set up.

C# Connection String:

String connectionString = “AuthType=ClientSecret; url=<your organization URL>; ClientId=<your application id>; ClientSecret=<client secret key>”;

                CrmServiceClient crmServiceClient = new CrmServiceClient(connectionString ); //Connecting to the D-365 CDS instance

 

                if (crmServiceClient != null && crmServiceClient.IsReady)

                { //Do your operation}









Implement JavaScript in ModelDriven Apps / MSCRM

 

Introduction:

In this blog we will see how to write JavaScript in Model Driven Apps and MSCRM

Events:

    1. On Load Event

    2. On Save Event

    3. On Change Event

Steps to Follow

    a. To Proceed With First Navigate to https://make.powerapps.com

    b. Then Navigate to Table where you want to write JavaScript

    c. Then Click On Form --> Open the main form

     d. then Click on Events and Click Add Library

    e. If you have already Web Resource Available you can select the WebResource if not select New WebResource
 


    f. Then it will open a form there you can enter the WebResource Name then type as JSCRIPT and Click Text Editor then you can input your JAVASCIPRT for the Event 

    e. Once the WebResource Selected you can See the Event Hander Button will get Enabled



    g. You can see the Event Handler click On OnLoad (Event Handler) to Process with On Load Event then On Save(Event Handler) for On Save Operation once added the funciton Name Click ok
    
    h. then we can See the Event Gets Added 

FOR ONCHANGE OPERATION:

    a. Click on the Field in the Form to Proceess with On Change Operation


    b. Here you can see the Events with On Change Operation 

    


    c. Click On Event Handler and Add the On Change Function name in Function Text Box

Then Click on Done 

Save and then Publish


That's It. 

Now if you Open the Screen then You can see the OnLoad(when page Gets Loaded),OnChange(When a Field Gets Changed), OnSave(When a Page gets Saved)

For Script/Demo Solution you can refer to this github













 




Thursday, September 16, 2021

Show or Hide Command Bar using JavaScript in DataVerse/ Dynamics 365

 

Introduction:

In this Blog we will see how to show or hide Command bar using JavaScript in Both Dataverse/Model Driven Apps/ CRM


Below is the Sample Screen Shot for Command bar



If we want to hide any button or edit command we can use RIBBON Workbench or Customize Using XML. But there is no other functionality for hiding whole Command Bar.

To recover from this Situation Microsoft introduced a new Feature for Show or Hide functionality


Script to Use:

formContext.ui.headerSection.setCommandBarVisible(BOOLEAN);


To Utilize in script

function showOrHideCommandBar(executionContext)

{

var formContext = executionContext.getFromContext();

formContext.ui.headerSection.setCommandBarVisible(false); // True to enable // False to hidden

}


That's it :)

Day 11 - Customizing Option Sets Dropdown Fields with JavaScript

  In this Blog, we will see how to Customizing Option Sets Dropdown Fields with JavaScript label1 = formContext.getAttribute( "bosch_op...