Skip to content

Instantly share code, notes, and snippets.

@melamriD365
melamriD365 / OpportunityCloseQuickCreateForm.js
Created June 8, 2021 08:50
Modify the labels of the Opportunity Close Quick Create form dynamically according to the context of the opportunity closure.
function onLoad(executionContext){
var formContext = executionContext.getFormContext();
var pageContext = Xrm.Utility.getPageContext();
var isWon = pageContext.input.data.param_won;
if(isWon) formContext.getControl('actualend').setLabel('Win date');
else formContext.getControl('actualend').setLabel('Lose date');
}
@melamriD365
melamriD365 / sampleConsoleApp.cs
Created June 2, 2021 15:54
Dataverse Sample ConsoleApp Client (oAuth2.0)
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Tooling.Connector;
using System;
namespace MEA
{
class sampleConsoleApp
@melamriD365
melamriD365 / AccountForm.js
Created June 1, 2021 08:34
Cancel save based on the result of async operation (Example 2)
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Account) == "undefined") { MEA.Account = {} };
if (typeof (MEA.Account.AccountForm) == "undefined") { MEA.Account.AccountForm = {} };
MEA.Account.AccountForm = {
onLoad: function (executionContext) {
var formContext = executionContext.getFormContext();
formContext.data.entity.addOnSave(
(() => {
var asyncSaveValidation = (saveCtx) => {
@melamriD365
melamriD365 / AccountForm.js
Last active June 1, 2021 08:43
Cancel save based on the result of async operation (Example 1)
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Account) == "undefined") { MEA.Account = {} };
if (typeof (MEA.Account.AccountForm) == "undefined") { MEA.Account.AccountForm = {} };
MEA.Account.AccountForm = {
onLoad: function (executionContext) {
var formContext = executionContext.getFormContext();
formContext.data.entity.addOnSave(
(() => {
var asyncSaveValidation = (saveCtx) => {
@melamriD365
melamriD365 / AccountForm.js
Created May 26, 2021 14:07
Async Load Event Demo
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Account) == "undefined") { MEA.Account = {} };
if (typeof (MEA.Account.AccountForm) == "undefined") { MEA.Account.AccountForm = {} };
MEA.Account.AccountForm = {
onLoad: function (executionContext) {
var formContext = executionContext.getFormContext();
return new Promise((resolve, reject) => {
setTimeout(() => {
var formItem = formContext.ui.formSelector.items.get(1);
@melamriD365
melamriD365 / Utilities.js
Created April 23, 2021 22:09
Open all lookups in a modal dialog across the CRM
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Utilities) == "undefined") { MEA.Utilities = {} };
MEA.Utilities = {
onLoad:function(primaryControl, cmdProperties){
var formContext = primaryControl;
this.openModalFormForAllLookupFields(formContext);
},
openModalFormForAllLookupFields: function(formContext){
var attributes = formContext.data.entity.attributes;
@melamriD365
melamriD365 / AccountForm.js
Created April 23, 2021 21:44
Open all lookups in a modal dialog
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Account) == "undefined") { MEA.Account = {} };
if (typeof (MEA.Account.AccountForm) == "undefined") { MEA.Account.AccountForm = {} };
MEA.Account.AccountForm = {
onLoad: function (executionContext) {
var formContext = executionContext.getFormContext();
var attributes = formContext.data.entity.attributes;
attributes.forEach(att => {
att.getAttributeType() == 'lookup' ?
@melamriD365
melamriD365 / opportunityForm.js
Last active April 13, 2021 21:43
How to set up complex conditions for business process flow ?
if (typeof (MEA) == "undefined") { MEA = {} };
if (typeof (MEA.Opportunity) == "undefined") { MEA.Opportunity = {} };
if (typeof (MEA.Opportunity.OpportunityForm) == "undefined") { MEA.Opportunity.OpportunityForm = {} };
MEA.Opportunity.OpportunityForm = {
onLoad: function (executionContext) {
var formContext = executionContext.getFormContext();
formContext.getAttribute('budgetamount').addOnChange(this.setNeedApproval);
formContext.getAttribute('mea_riskscode').addOnChange(this.setNeedApproval);
formContext.getControl('mea_isneedapproval').setDisabled(true);
if(typeof(MEA)=="undefined"){MEA={}};
if(typeof(MEA.OptionSet)=="undefined"){MEA.OptionSet={}};
if(typeof(MEA.OptionSet.Utilities)=="undefined"){MEA.OptionSet.Utilities={}};
MEA.OptionSet.Utilities = {
//Cascading Utility
optionSetBValues : null,
Cascade: function (executionContext, optionAName, optionBName, dependecies) {
var formContext = executionContext.getFormContext();
var selectedAValue = formContext.getAttribute(optionAName).getValue();
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;
using System;
using System.ServiceModel.Description;
namespace MelTools
{
class getAllUsersPersonalViewsContainingField