Showing posts with label Dynamic CRM. Show all posts
Showing posts with label Dynamic CRM. Show all posts

Saturday, 16 August 2025

Monday, 23 June 2025

Download a plugin assembly (DLL) from Dynamics 365 CRM.

 CRM does not allow direct download of the DLL file from the UI. However, there are several ways to retrieve the plugin DLL from the CRM environment. we achieve this requirement using XrmToolBox.  

  • Open XrmToolBox.
  • Install and open Assembly Recovery Tool.
  • Connect to your Dynamics CRM instance.
  • It will list all deployed assemblies.
  • Select the assembly and click Download.
Connect D365 Environment 



Configuration ==> Tool Library ==>Search "Assembly Recovery Tool" and install.


Tool==>Assembly Recovery Tool.

Double click on "Assembly Recovery Tool" all Assemble file will be appear. 


Select "Assemble "and  click on "Export to Disk "


Note :- All Assemble file store under "pluginassembly" entity.







Saturday, 28 January 2023

How to get logged in User's Security Roles using Java Script in dynamic CRM 365.

 function GetloggedUser () {

    var roles = Xrm.Utility.getGlobalContext().userSettings.roles; 

    if (roles === null) return false; 

    var hasRole = false;

    roles.forEach(function (item) {

        if (item.name.toLowerCase() === "manager" || item.name.toLowerCase() === " System administrator") {

            hasRole = true;

        }

    }); 

    return hasRole;

}

Wednesday, 11 September 2019

Dynamic CRM 365 - Option Set cascading Filtering using Java Script.




function lead_Filter_CustomerType_OnLoad()

var customerType = Xrm.Page.getAttribute("inf_customertype").getValue();
  if (customerType == 1)
  {
   Xrm.Page.getControl("inf_leadstatus").removeOption(8); // removeOption use for removing option set value at form load 
   Xrm.Page.getControl("inf_leadstatus").removeOption(9);
   Xrm.Page.getControl("inf_leadstatus").removeOption(10);
   Xrm.Page.getControl("inf_leadstatus").removeOption(10);   
  }
else if(customerType == 2)
 {
   Xrm.Page.getControl("inf_leadstatus").removeOption(1);
   Xrm.Page.getControl("inf_leadstatus").removeOption(2);
   Xrm.Page.getControl("inf_leadstatus").removeOption(3);
   Xrm.Page.getControl("inf_leadstatus").removeOption(4);
   Xrm.Page.getControl("inf_leadstatus").removeOption(5);
   Xrm.Page.getControl("inf_leadstatus").removeOption(6);
   Xrm.Page.getControl("inf_leadstatus").removeOption(7); 
  }
}


function lead_Filter_LeadStatusOnLoad()
{
var leadstatus = Xrm.Page.getAttribute("inf_leadstatus").getValue();
if (leadstatus == 8)
{
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(4);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(5);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(6);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(7);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(8);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(9);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(10);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(11);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(12); 
}
else if (leadstatus == 9)
{
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(1);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(2);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(3);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(6);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(7);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(8);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(9);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(10);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(11); 
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(12);
}
if (leadstatus == 10)
{
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(1);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(2);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(3);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(4);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(5);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(11);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(12);
}
if (leadstatus == 11)
{
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(1);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(2);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(3);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(4);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(5);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(6);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(7);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(8);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(9);
   Xrm.Page.getControl("inf_leadsubstatus").removeOption(10);

}
}



function lead_Filter_CustomerType_OnChange()
{
  var customerType = Xrm.Page.getAttribute("inf_customertype").getValue();
 
  var optionSet = Xrm.Page.ui.controls.get("inf_leadstatus");
  var optionSetValues = optionSet.getAttribute().getOptions();  
  optionSet.clearOptions();
  if (customerType == 1)
  {
  optionSetValues.forEach(function (element) {
  //using forEach store all option value in eleement
  if (element.value == "1") 
  optionSet.addOption(element);
  // addoption use for display option set value at form .
  if (element.value == "2")
  optionSet.addOption(element);
 
  if (element.value == "3")
  optionSet.addOption(element);
 
  if (element.value == "4") 
  optionSet.addOption(element);
 
  if (element.value == "5")
  optionSet.addOption(element);
   
  if (element.value == "6")
  optionSet.addOption(element);
   
  if (element.value == "7")
  optionSet.addOption(element);
  });
  }
   else if (customerType == 2)
  {
  optionSetValues.forEach(function (element) {
  if (element.value == "8") 
  optionSet.addOption(element);
 
  if (element.value == "9") 
  optionSet.addOption(element);
 
  if (element.value == "10")
  optionSet.addOption(element);
 
   if (element.value == "11") 
  optionSet.addOption(element);
  });
  }

}


function lead_Filter_LeadStatus_onChange()
{
var leadstatus = Xrm.Page.getAttribute("inf_leadstatus").getValue();
 
  var optionSet = Xrm.Page.ui.controls.get("inf_leadsubstatus");
  var optionSetValues = optionSet.getAttribute().getOptions();  
  optionSet.clearOptions();
  if (leadstatus == 8)
  {
  optionSetValues.forEach(function (element) {
  if (element.value == "1") 
  optionSet.addOption(element);
 
  if (element.value == "2")
  optionSet.addOption(element);
 
  if (element.value == "3")
  optionSet.addOption(element);  

  });
  }
   else if (leadstatus == 9)
  {
  optionSetValues.forEach(function (element) {
  if (element.value == "4") 
  optionSet.addOption(element);
 
  if (element.value == "5") 
  optionSet.addOption(element);

  });
  }
 
   else if (leadstatus == 10)
  {
  optionSetValues.forEach(function (element) {
  if (element.value == "6") 
  optionSet.addOption(element);
 
  if (element.value == "7") 
  optionSet.addOption(element);
 
  if (element.value == "8")
  optionSet.addOption(element);
 
   if (element.value == "9") 
  optionSet.addOption(element);
 
    if (element.value == "10") 
  optionSet.addOption(element);
  });
  }
 
   else if (leadstatus == 11)
  {
  optionSetValues.forEach(function (element) {
  if (element.value == "8") 
  optionSet.addOption(element);
 
  if (element.value == "11") 
  optionSet.addOption(element);
 
  if (element.value == "12")
  optionSet.addOption(element);
 
  });
  }

}






Dynamics 365 Ribbon Button JavaScript customization function- Displays a popup message when the button is clicked.

 function RequestRibbonCustomisation(primaryControl) { var formContext = primaryControl; alert("Coming soon! Work in Progress....