Skip to main content

How to add a button in D365 using Ribbon Workbench

We are going to add/create a custom button on an entity in D365 using ribbon workbench solution.

Scenario: On click of a button, we are going to generate a GUID and update that value in a field.

Prerequisites:

1. Ribbon Workbench solution (can be downloaded from the above URL)
2. Create a custom entity (in this post, we have created an entity called "Requests")
3. Create a solution and add the above entity to it
4. Create a web resource (JScript) to generate a GUID

How To?

1. Log into D365, Go to SETTINGS -> Solutions -> Click on "RIBBON WORKBENCH 2016"
2. Select a solution from the available list ("My Solution" in our post)
3. Select the BUTTON on the left side ribbon. Drag and place it on the Main Form as shown in the below image
4. Click on the + button next to COMMANDS(1) as shown below and change the Id to "new.new_request.generatekey.Command". Changing the Id value is not mandatory, its just for our convenience

a. Now click on "+ Add Action" and select "JavaScript Action"
b. Select respective Web Resource from the "Library" lookup and add the function name in "Function Name" field
Eg: Library:              $webresource:new_uniqueid.js
       Function Name: buttonGenerateKey

Click on "Add Parameter" and select "CRM Parameter". Choose "PrimaryControl" from the drop-down.



Note: This parameter helps us to get execution context on on button click

5. Now click on on the BUTTONS(1) and select the above command that we have created. Update the button labels and other fields as shown in the below image

6. Publish all the changes
7. Go to Requests entity and click on New and fill the required data. Click on "Generate Key" button. There we go, an unique key which is generated is updated in the field


Here is the sample code that's used in the post


function buttonGenerateKey(primaryControl)
{
    var formContext = primaryControl;
    var uniqueNumber = this.generateUniqueKey();
    if (uniqueNumber != null)
    {
        formContext.getAttribute("new_requestkey").setValue(uniqueNumber);
    }
    else return;
};
function generateUniqueKey()
{
    var d = new Date().getTime();
    if (Date.now)
    {
            d = Date.now();
    }
    var uniqueID = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c)
    {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uniqueID;
}




Comments

Popular posts from this blog

Validate an email input in a Canvas Application | PowerApps

Validate an email input in a Canvas Application | PowerApps In this post let us see, how to Validate an email input in a Canvas Application UI Validations helps us to ensure, valid data is received from the End User to complete an operation helps end user to provide right information the validation action depends on the type of the input control for Text Input Control - mostly we go with "OnChange" for check box control - "OnCheck and On uncheck" for Drop Down and Combo Box Controls - "OnChange" or "OnSelect" etc., Now, let us see how can we validate an email input, a phone number input and a name input. How to validate an email input value is valid? We can leverage "Regex" (Regular Expressions) to valid user inputs. Let us consider the Email Input Control Name as -  txtEmail.Text. OnChange of this Control let us i...

Success confirmation on a record submission - Canvas Application

In this post let us see, how to show a successfully submitted record's data back on to the form, as a confirmation. Take two screens  Home Screen Success Screen On Home Screen: Take a Form Control on the Home Screen and map it to respective entity. In this post we are mapping it to Registrations entity. Take a Button Control and input the below expression, to create records into Registrations Entity. SubmitForm( frmRegistration ) Now, let us implement how to redirect the user to Success Message screen to successful record submission. In order to achieve this, we are going to make use of one of the Form Control's properties - OnSuccess. So, OnSuccess we are going to implement Success Screen navigation as below Navigate(' Success Screen ')   Success Screen Take a label to show - success message, as below "Registration was successful. Registration Id: " & frmRegistration .LastSubmit.'Registration Number' LastSubmit  property of a From Control helps u...

How to embed an image in an email | Power Automate

In this post let us how to embed an image in an email using Power Automate In order to embed an image in an email - it would be easy if the image is stored in OneDrive or SharePoint folder and retrieve them. Let us see how to accomplish this... Create a folder in OneDrive for Business Upload an image to embed in email Now, let us create flow. Add a trigger Add a variable (this helps us to form the image tag to embed in email) Add OneDrive for Business connector and chose "List files in folder" Add "Get file content" and File field add - "Id" from the above action Now add "Get File Content" action from OneDrive for Business connector Under File field - select "Id" from the dynamic content Apply to each automatically applies when you add "Id" into File field. Now add "Set Variable" and update it's Value as <img src="data:image/png;base64, @{body('Get_file_content')?['$content']} " alt=...