Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / getDataverseToolsForCrmDeveloperTools.ps1
Created June 13, 2021 22:38
get Dataverse Tools For CrmDeveloperTools
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$targetNugetExe = ".\nuget.exe"
Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore
Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe
Set-Alias nuget $targetNugetExe -Scope Global -Verbose
##
##Download Plug-in Registration tool
##
@melamriD365
melamriD365 / FlowWidgetSPA.html
Last active August 3, 2021 10:52
Integrate the approval center into a model driven app/Dynamics 365 CE
<html>
<head>
<title>Flow JS SDK Sample</title>
<style>
.flowContainer iframe {
border: none;
width: 100%;
height: 100%;
}
<?xml version="1.0" encoding="utf-8" ?>
<manifest>
<control namespace="MEA" constructor="ValueTurner" version="1.0.21" display-name-key="ValueTurner" description-key="ValueTurner description" control-type="standard" >
<external-service-usage enabled="false">
</external-service-usage>
<property name="data" display-name-key="data" description-key="data" of-type="Object" usage="input" required="true" />
<property name="sessionStorageKey" display-name-key="sessionStorageKey" description-key="sessionStorageKey" of-type="SingleLine.Text" usage="input" required="true" />
<resources>
<code path="index.ts" order="1"/>
import { IInputs, IOutputs } from "./generated/ManifestTypes";
export class ValueTurner implements ComponentFramework.StandardControl<IInputs, IOutputs> {
private context_: ComponentFramework.Context<IInputs>
constructor() {
}
/**
function openDialog(exectionContext) {
var dialogParameters = {
pageType: "custom",
name: "new_dialogsample_bb2dc",
};
var navigationOptions = {
target: 2,//use 1 if you want to open page inline or 2 to open it as dialog
width: 800, // value specified in pixel
height: 420,
position: 1,//1 to locate dialog in center and 2 to locate it on the side,
@melamriD365
melamriD365 / AsyncScriptTraining.js
Last active October 16, 2021 17:15
DEMOS Source Code (Async Web Client Capabilities on Model-Driven-Apps/Malaysia D365 & Power Platform User Group - October 2021 Meetup)
function onLoad(executionContext) {
var formContext = executionContext.getFormContext();
//DEMO 1
//formContext.getAttribute('firstname').addOnChange(displayDialogAfter5Secondes);
//DEMO 2
formContext.data.entity.addOnSave(validatePhoneNumber);
//DEMO 4
//formContext.ui.addOnLoad(applyForm);
}
//DEMO 1
@melamriD365
melamriD365 / sendObjectFromMDAToCustomPage.js
Created October 25, 2021 15:49
pass an object from a model driven app to a custom page
var pageInput = {
pageType: "custom",
name: "mea_home_809de",
recordId:JSON.stringify({prop1: "Hello,", prop2: " World !"})
};
Xrm.Navigation.navigateTo(pageInput).then(
function success() {
// Run code on success
},
@melamriD365
melamriD365 / PreOperationAccountMerge.cs
Created December 17, 2021 17:56
Dynamics 365 For Sales: How to merge Accounts if the subordinate record is associated with one or more active quotes?
// <copyright file="PreOperationAccountMerge.cs" company="">
// Copyright (c) 2021 All Rights Reserved
// </copyright>
// <author></author>
// <date>12/17/2021 6:04:07 PM</date>
// <summary>Implements the PreOperationAccountMerge Plugin.</summary>
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1