Search This Blog

Saturday, January 1, 2022

Dynamics 365 Cover All Content

Functional Syllabus

******************************************************************************************************

Module 1: Introduction to Dynamics 365

  • What is Dynamics 365
  • History of Microsoft Dynamics 365
  • Apps in Microsoft Dynamics 365
  • Deployment types
  • Pricing & License Options
  • Dynamics 365 Ecosystem
  • Trial subscription for Dynamics 365
  • Power Platform Overview

Module 2: Get Familiar with Dynamics 365 CE

  • Navigate through new Dynamics 365 UI
  • New features
  • Apps in Dynamics 365
  • Searching for records
  • Personal Options
  • Advanced Options
  • CRM Terminology

Module 3: Dynamics 365 Customer Engagement Apps & Configurations

  • Administration & Security
  • Business Management
  • Data Management
  • Product Catalog Settings
  • Document Management Settings
  • Audit Settings
  • Sales Hub App
  • Customer Service Hub App
  • Marketing App
  • Field Service (Overview)
  • Project Service (Overview)

Module 4: MS CRM Entity Model

  • Intro to OOB Customization
  • Supported Vs Un-Supported customization
  • Entity Customization
  • Custom Entities and Attributes
  • Form Customizations
  • Customization Concepts – Entity Types and Attributes
  • Form Customization – Working with Tabs, Sections, Fields and Iframes
  • Introduction to Application Event Programming
  • Using Form and Field Events
  • Mobile Forms

Module 5: Entity Relationships

  • Types of Relationships
  • Creating Entity Relationships
  • Creating 1: N and N:1 relationships
  • Creating N: N relationships
  • Understanding Relationship Behaviors
  • Entity Mapping

Module 6: Views and Advanced Views

  • Types of Views
  • Public, Personal and System Views
  • View Customizations – Common Tasks
  • Advanced Views Customizations
  • Personal Views

Module 7: Charts and Dashboards

  • System and Personal charts
  • Customize existing charts
  • Creating new charts
  • Personal Charts
  • Sharing Personal Charts

Module 8: Business Rules

  • Concept of Business Rule
  • Scope of BRs
  • Branching AND Actions
  • Conditions

Module 9: Processes: Workflows

  • Overview of Workflow
  • Creating Workflows steps through Workflow Designer
  • Synchronous Vs Asynchronous Workflows
  • System Jobs Analysis
  • Workflow status

Module 10: Processes: Business Process Flows and Actions

  • Overview of BPFs
  • New BPF designer
  • Customize existing BPFs
  • Create new BPFs and branching
  • Overview of Actions
  • Create Actions for Account Entity
********************************************************************************

Technical Syllabus

Intro to Development in Dynamics 365 CRM

  • Introduction to Development in Dynamics 365 CRM
  • XRM Platform system architecture
  • Why Custom Development is needed?
  • Dynamics 365 CRM Extensibility Architecture
  • Different methods to extend Dynamics CRM
  • Supported V/s un-supported customizations
  • How to use SDK for custom development?
  • SSPUAT –Concept & Solution Management

Working with Web Resources

  • Understanding Web Resources
  • Different Types of web resources
  • Create new web resources
  • Use Web resources for CRM Customization

Working with Form Scripting

  • Understand basics of client scripting for CRM
  • CRM form events – Onload, OnSave, OnChange and TabStateChange
  • Understand Xrm.Page Object model
  • Use JavaScript Notifications and alerts
  • XRMWebPI
  • Form script Client API
  • Debug JavaScript on different browsers – IE, Firefox and Chrome

Working with Plugins

  • Understanding Event Execution Pipeline
  • Developing Plugins
  • Deploy and Register Plugins
  • Use Plugin Registration Tool
  • Develop plugins for CRM Online
  • Debugging Plugins on CRM online and on-premise
  • Pre-entity and post – entity images
  • Use Shared Variables in Plugins
  • Secure and Unsecure configuration in Plugins

Develop Actions

  • Create Action
  • Input arguments and output argument

Develop Custom Workflow Activities (CWA)

  • Basics of customizing Workflows and Dialogs
  • Basic elements of Custom Workflow activities
  • Developing and Deploying Custom Activities
  • Integrate Custom activities with Workflows and Dialogs
  • Debugging Custom Workflow Activities

Query Dynamics CRM Data

  • Querying in Microsoft Dynamics CRM
  • Query Strings and Query Attributes
  • Write QueryExpression queries
  • Write QueryByAttitude quries
  • QueryExpression Vs QueryByAttribute
  • Work with FetchXML and LINQ Queries

 Customizing Dynamics 365 CRM Ribbons

  • Intro to CRM Ribbons and Ribbon Structure
  • How to Customize CRM Ribbons Manually?
  • Creating & Hiding Ribbon Elements
  • Enabling & Disabling Ribbon Elements
  • CRM Customizing using Ribbon Workbench

 Customizing Dynamics 365 CRM Sitemap

  • Basics of CRM Sitemap
  • Different methods to customize CRM Sitemap
  • Sitemap customization manually
  • Sitemap customization using Sitemap Editor

 Develop Reports for Dynamics 365 CRM – using Report Wizard and SSRS

  • Basics of Reporting in Dynamics CRM
  • Create Reports using Reports Wizard
  • FetchXML Reports
  • SSRS Based Reports
  • Reporting for Dynamics CRM online
  • Integrate Reports in Dynamics CRM Environment

Dynamics 365 CRM Web Services

  • Understand Dynamics 365 web services
  • How to use Web APIs with Dynamics 365?
  • Working with Web APIs and JavaScript
  • Web API Discovery web services

Integration with .NET applications

  • Understand basics of .Net application with CRM
  • Integrate CRM with web application & console application
**************************************************************************************************************************

Techno-Functional Syllabus


Introduction to Dynamics 365 Customer Engagement CE (CRM)

  • Dynamics 365 overview
  • Why Dynamics 365 is Trending
  • History of Microsoft Dynamics 365
  • Available Apps in Microsoft Dynamics 365
  • Deployment types & Licensing Options
  • License & Pricing of Dynamics 365
  • Dynamics 365 Ecosystem
  • Trial subscription for Dynamics 365 Apps
  • Power Platform Overview
  • Job scopes for Dynamics 365
  • Salary Trends for Dynamics 365
  • All D365 CE Modules overview

Lecture 2: Configuring Dynamics 365 CRM

MS CRM Entity Model

  • Intro to OOB Customization
  • Supported Vs unSupported customization
  • Entity Customization
  • Custom Entities and Attributes
  • Form Customizations
  • Customization Concepts – Entity Types and Attributes
  • Form Customization – Working with Tabs, Sections, Fields and Iframes
  • Introduction to Application Event Programming
  • Using Form and Field Events
  • Mobile Forms

Entity Relationships

  • Types of Relationships
  • Creating Entity Relationships
  • Creating 1:N and N:1 relationships
  • Creating N:N relationships
  • Understanding Relationship Behaviours
  • Entity Mapping

Views and Advanced Views

  • Types of Views
  • Public, Personal and System Views
  • View Customizations – Common Tasks
  • Advanced Views Customizations
  • Personal Views

Charts and Dashboards

  • System and Personal charts
  • Customize existing charts
  • Creating new charts
  • Personal Charts
  • Sharing Personal Charts

Relationships, Views and Advanced Views

  • Types of Relationships
  • Relationship Behaviors
  • Creating Entity Relationships
  • Entity Mapping

Business Rules

  • Concept of Business Rule
  • Scope of BRs
  • Branching AND Actions
  • Conditions

Processes: Workflows & Dialogs

  • Overview of Workflow
  • Creating Workflows steps through Workflow Designer
  • Synchronous Vs Asynchronous Workflows
  • Overview of Dialogs
  • Creating Dialog Pages, Prompt and Response
  • Working with Input Parameters in Dialogs

Processes: Business Process Flows and Actions

  • Overview of BPFs
  • New BPF designer
  • Customize existing BPFs
  • Create new BPFs and branching
  • Overview of Actions
  • Create Actions for Account Entity
  • Working with Input Parameters in Dialogs

Lecture 3: Customization Dynamics 365 CRM

Intro to Extending Dynamics 365 CRM

  • Introduction to Extending Dynamics 365 CRM
  • XRM Platform
  • Why is Custom Development needed?
  • Dynamics 365 CRM Extensibility Architecture
  • Different methods to extend Dynamics CRM
  • Supported Vs unsupported customizations
  • How to use SDK for custom development?

Working with Web Resources

  • Understanding Web Resources
  • Different Types of web resources
  • Create new web resources
  • Use Web resources for CRM Customization

Form Scripting using JavaScript

  • Client side scripting using Javascript
  • Working with Iframes
  • CRM form events.
  • Onload, OnSave, OnChange and TabStateChange
  • Understand Xrm.Page Object model
  • Use Javascript Notifications and alerts
  • Debug Javascript on different browsers – IE, Firefox and Chrome

Develop Plugins

  • What is Plugins?
  • Understanding Event Execution Pipeline
  • Developing Plugins
  • Deploy and Register Plugins
  • Use Plugin Registration Tool
  • Develop plugins for CRM Online
  • Debug Plugins online and on-premise
  • ITrace Service
  • Register Plugins with Actions

Develop Actions

  • Actions
  • How Actions work
  • Actions Vs Workflows
  • Register Plugins with Actions
  • Trigger actions from Workflows
  • Trigger Actions using code.

Develop Custom Workflow Activities

  • Basics of customizing Workflows and Dialogs.
  • Basic elements of Custom Workflow activities
  • Developing and Deploying Custom Activities
  • Integrate Custom activities with Workflows and Dialogs.
  • Debugging Custom Workflow Activities

Customizing Dynamics 365 CRM Ribbons

  • Intro to CRM Ribbons and Ribbon Structure.
  • How to Customize CRM Ribbons Manually?
  • Creating & Hiding Ribbon Elements
  • Enabling & Disabling Ribbon Elements
  • CRM Customizing using Ribbon Workbench

Customizing Dynamics 365 CRM SiteMap

  • Basics of CRM Sitemap
  • Different methods to customize CRM Sitemap
  • Sitemap customization manually
  • Sitemap customization using Sitemap Editor

Develop Reports for Dynamics 365 CRM

  • Reporting in Dynamics 365
  • Create Reports using Reports Wizard
  • FetchXML Reports
  • SSRS Based Reports
  • Reporting for Dynamics CRM online
  • Integrate Reports in Dynamics CRM Environment
*********************************************************************************************************
Advanced Developer Syllabus

  • Intro to custom code
    • SDK
    • Scope of Customization
    • Visual studio templates
    • Developer Tools
    • Helper Tools
  • Plugins in-depth
    • Concept of Pipeline Execution
    • Shared Variable
    • Configuration data handling
    • Web hooks
    • Service Endpoints
    • Steps, Images, Impersonation
    • Debugging, Unit Testing, isolation
  • Custom Workflows
    • Design CWA
    • Input and Output arguments of all type
    • FetchXML in CWA
    • Parallel Branching in Workflow
    • Wait conditions
  • Form Scripts & Web resource advanced
    • Complete Client API Walkthrough
    • CRUD in Form script
    • Web resource and reference to other web resource
    • XRM Object complete analysis
  • Integration with Custom .Net Apps
    • Custom .net App
    • CRUD in Custom App in Dynamics 365 Entities
    • Tooling Service
  • SSRS Reports
    • SSRS Report in details
    • Deployment and Test
    • Paging, Sorting etc.
  • Solution management
    • Managed V/S Unmanaged
    • Solution Patch, Clone, Upgrade
    • Dependencies
    • Import/Export
    • Translation Export/Import
  • Model driven apps
    • Design Model Driven Apps
    • Components of Model driven Apps
    • Publish and manage Roles
  • Virtual Entity
    • Configure
    • CRUD Operation
    • Using Virtual Entities in Customization
  • Relationship Assistance
    • Configure Relationship Assistance
    • Update Configuration
  • Task flow
    • Configure
    • Test and Deploy
  • Web API
    • XRM Web API
    • Working with Web API in Form Script
  • PCF
    • Working with PowerApps Component Framework
    • Design PCF
    • Deploy and Publish
    • Integrate with D365 CE
  • Azure Integration
    • Integrate Azure Service Hub with D365 CE
    • Configurations and Client ID
    • Authentication
  • Concept of PowerShell
    • Cmdlets for PowerShell
    • Write code/script in PowerShell
  • DevOps
    • Azure DevOps
    • CI/CD in DevOps for D365 CE Project
  • Outlook Integrations
    • Outlook and offline filters
    • Tracking
  • USD in details
    • Unified Service Desk concept
  • Voice of Customer
    • Integration and concept
  • Relevance Search
    • Configuration and Test
  • Data Map Customization
    • Data Import maps
  • Upsert in code
    • Upsert in code .net
  • Environment Variables
    • Power Apps Environment Variables
***********************************************************************************************************
Azure DevOps

  • manage codebase
  • GIT repository
  • Azure DevOps
  • Azure Pipeline
  • CI/CD
  • Power Shell Scripts
  • Visual studio codes

Entity Configurations for CRUD Operation

In User Adoption Monitor you can track actions like Create, Read, Update, Delete etc. for a specific period of time. With this tracking information you can supervise and verify the activities conducted by the end users.

Now let’s learn about configuring entities for CRUD operations.

  • Navigate to Advanced Settings–>Settings–>Security

  • Click on MANAGE ENTITY ACTION button

  • Once you click the Manage Entity Action button, a pop-up opens listing Entities and Activities. It allows you to enable tracking of the most commonly performed Actions on any entity like Create, Update, Delete, etc.

  • Here, you can specify, which actions need to be tracked per entity in a customized manner. To specify it, just click on the red circle (O) for the period you would like it to be tracking
  • Let us understand what these terms NoneDailyWeekly, and Monthly specifies.

UAM

 


CRUD operations using web api in console app in Dynamics 365 CRM

 Hi Friends,                                 Happy New Year 2022 

Follow the below steps to do CRUD operations in console app using web Api.

Step 1: Go to https://portal.azure.com

Image

Click on Azure Active Directory, next Click on App registrations

Click New Application Registration

Image

Next fill the details and click on create

Image

Next click on "all Apps"

Image

Open "Sample App" click on settings then Click on "Required permissions"

Image

Click on Add button and add "Dynamics CRM Online" and give "DELEGATED PERMISSIONS" and Click "Save"

Image

Now Come back to "Keys" and create secret Key, when you click on save secret key will be generated then copy that key in notepad

Image

Go Back to App and copy application id in notepad

Image

Click on endpoints and copy "OAUTH 2.0 AUTHORIZATION ENDPOINT"

Image

Come back to Active Directory and create User in Azure and copy password in notepad

Image

Step 2:

Come back to CRM and go to users.

In the view Click on "Application user" and click on "+ new button".

Image

username and primary email should be same as that we created in Azure.

Image

Paste the application id which we copied to the notepad and click on save then give admin role for that user.

Configuration part is completed now coming to the coding part. Create new class(ex : webapihelper)

step 3:

=============================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Newtonsoft.Json;
using System.Net.Http.Headers;
using System.Net;
using Newtonsoft.Json.Linq;

namespace CRUD_Using_Web_Api
{
class webapihelper
{
string _ClientId = "cefc4d69-0008-4841-a38f-81cf2c29a2e8";
string _ClientSecret = "15Dt6Kc31N8/D4M0zVoIZ6jyyvxwmwHJB+Kre1DIxow=";
string _Resource = "delldell.api.crm8.dynamics.com";
string _Authority = "login.microsoftonline.com/.../authorize";
string _Api = "delldell.api.crm8.dynamics.com/.../v9.1";
string accounturi = string.Empty;

public HttpClient GetHttp()
{
HttpClient httpClient = new HttpClient();
AuthenticationContext authContext = new AuthenticationContext(_Authority);
AuthenticationResult authResult;
ClientCredential credentials = new ClientCredential(_ClientId, _ClientSecret);
try
{
authResult = authContext.AcquireToken(_Resource, credentials);
httpClient.BaseAddress = new Uri(_Resource);
httpClient.Timeout = new TimeSpan(0, 2, 0);
httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;


return httpClient;
}
catch (Exception ex)
{
return null;
}
}

public async Task CreateContactOld(HttpClient httpClient)
{
string accounturi = string.Empty;

JObject account = new JObject();
account.Add("name", "delldell");
account.Add("telephone1", "9874561230");
account.Add("websiteurl", "www.delldell.com");
account.Add("address1_city", "Hyderabad");
HttpRequestMessage request1 = new HttpRequestMessage(HttpMethod.Post, "delldell.api.crm8.dynamics.com/.../accounts");
request1.Content = new StringContent(account.ToString(), System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response1 = await httpClient.SendAsync(request1);
if (response1.StatusCode == HttpStatusCode.NoContent)
{
Console.WriteLine("Account created" + account.GetValue("name"));
// Console.Read();

HttpResponseHeaders responseheaders = response1.Headers;
accounturi = responseheaders.Location.AbsoluteUri;
}
else
{
Console.WriteLine("failed to create Account");
}
//update
JObject accountupdate = new JObject();
accountupdate.Add("name", "ABC");
accountupdate.Add("telephone1", "5588223");
accountupdate.Add("websiteurl", "www.abc.com");
accountupdate.Add("address1_city", "Banglore");
HttpRequestMessage updateRequest1 = new HttpRequestMessage(new HttpMethod("PATCH"), accounturi);
updateRequest1.Content = new StringContent(accountupdate.ToString(), System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage updateResponse1 = await httpClient.SendAsync(updateRequest1);
if (updateResponse1.StatusCode == HttpStatusCode.NoContent) //204
{
Console.WriteLine("Account updated");
HttpResponseHeaders responseheaders1 = updateResponse1.Headers;
accounturi = responseheaders1.Location.AbsoluteUri;
}
else
{
Console.WriteLine("could not update Account");
}

//Retriving account
string querystring = "?$select=name,telephone1,websiteurl,address1_city";
HttpResponseMessage retrieveresponse = await httpClient.GetAsync(accounturi + querystring);
if (retrieveresponse.StatusCode == HttpStatusCode.OK)
{
JObject retrievedaccount = JsonConvert.DeserializeObject<JObject>(await retrieveresponse.Content.ReadAsStringAsync());
Console.WriteLine("name: " + retrievedaccount.GetValue("name"));
Console.WriteLine("City: " + retrievedaccount["address1_city"]);
// Console.Read();
}
//Deleting the created account
HttpResponseMessage deleteResponse1;
//HttpContent lastBadResponseContent = null;
deleteResponse1 = await httpClient.DeleteAsync(accounturi);
Console.WriteLine("Account Deleted");
Console.Read();


}

}

}

===========

Now in main method, create instance of the created class and call the method(CreateContactOld) in the main method.

using System.Threading.Tasks;
using System.Net.Http;


namespace CRUD_Using_Web_Api
{

class Program
{

private static void Main(string[] args)
{

webapihelper web = new webapihelper();
HttpClient ht = web.GetHttp();
Task.WaitAll(Task.Run(async () => await web.CreateContactOld(ht)));

}

}
}

Debugg and do checking of the record in advanced find, because in delete operation it will delete the same record that you created.

Nuget Packages: Microsoft.IdentityModel.Clients.ActiveDirectory and install older version like 2.29.0

Image