Dynamics 365: Let's Learn Together

  1. How to synchronize and integrate Microsoft Dataverse data with data that is stored in other systems?
    1. Dataverse provides several capabilities to make it easier to write code to achieve these scenarios.
      1. Alternate Keys- Sometimes external systems can't be extended to store the Dataverse record GUID primary key identifiers to synchronize data efficiently between the systems. In such cases, add a custom column to a table in Dataverse that can be used to store the identifier of the related record in the external system. Sometimes multiple columns must be created to establish a unique reference. Click here to read more.
      2. UpsertUpsert is a combination of Update or Insert which enables the server to detect whether a record exists or not and apply the appropriate Update or Create operation in Dataverse. When loading data into Microsoft Dataverse from an external system, for example in a bulk data integration scenario, you may not know if a record already exists in Dataverse. In such cases you won't know if you should use the Update or a Create message. You must retrieve the record first to determine if it exists before performing the appropriate operation. You can reduce this complexity and load data into Dataverse more efficiently by using the Upsert message. There is a performance penalty in using Upsert versus using Create. If you are sure the record doesn't exist, use CreateClick here to read more.
      3. Change Tracking-The change tracking feature in Microsoft Dataverse provides a way to keep the data synchronized in an efficient manner by detecting what data has changed since the data was initially extracted or last synchronized. Change tracking is not only used to synchronize data with external systems, it is also a prerequisite for several Power Platform and Dataverse capabilities such as Azure Synapse Link for Dataverse and Mobile offline. Click here to read more.
  2. What are Custom Connectors?
    1. A Custom Connector is a wrapper around a REST/SOAP API that allows PowerApps, Power Automate, Logic Apps etc. to communicate with that REST/SOAP API. These APIs can be Public or Private.
    2. A Custom Connector can be shared within organization the same way we share resources in Logic Apps, Power Automate and PowerApps.
    3. If you wish to share the Custom Connector publicly then you need to submit your connector to Microsoft for certification. Microsoft will review your connector, check for technical and content compliance, and validate functionality.
  3. What are Azure Functions?
    1. Azure functions is a serverless solution that allows you to 
      1. write less code
      2. maintain less infrastructure
      3. save on costs
    2. The cloud infrastructure provides all the up-to-date resources needed to keep application running.
    3. Scenarios, where you can use Azure functions-
      1. If you want to - Build a Web API
        1. Then - Implement an endpoint for your web applications using the HTTP trigger
      2. If you want to - Process file uploads
        1. Then - Run code when a file is uploaded or changed in BLOB storage
      3. If you want to - Build a serverless workflow
        1. Then - Create an event-driven workflow from a series of functions using durable functions
        2. Durable Functions - It is an extension of Azure Functions that lets you to write stateful functions in a serverless compute environment. Behind the scenes, the extension manages state, checkpoints and restarts for you.
        3. Durable Entities / Entity Functions - Entity Functions define operations for reading and updating small pieces of state, known as Durable Entities.
      4. If you want to - Respond to database changes
        1. Then - Run custom logic when a document is created or updated in Azure Cosmos DB
      5. If you want to - Run scheduled tasks
        1. Then - Execute code on pre-defined timed intervals
      6. If you want to - Create reliable message queue systems
        1. Then - Process message queues using Queue Storage, Service Bus or Event Hubs
      7. If you want to - Analyze IoT data streams
        1. Then - Collect and process data from IoT devices
      8. If you want to - Process data in real time
        1. Then - Use Functions and SignalR to respond to data in the moment
  4. What are the pricing options in Azure Functions?
    1. There are 3 main options -
      1. Consumption Plan - Pay for the time that your code runs.
      2. Premium Plan - Pay for the dedicated pre-warmed instances running continuously. Additionally, you have to pay for any additional instances you use as Azure scales your app in and out
      3. App Service Plan - Run your functions just like your web apps. If you use App Service for your other applications, your functions can run on the same plan with no additional cost
    2. Apart from that two more options are there - 
      1. App Service Environment (ASE) - Provides a fully isolated and dedicated environment for securely running the App service apps at high scale
      2. Kubernetes (Direct or Azure Arc) - Provides a fully isolated and dedicated environment running on the top of the Kubernetes platform
    3. More details are available on Azure Functions hosting options
  5. What are Pre-Warmed Instances?
    1. In Consumption plan, whenever apps are not in use, they resource allocation scale to zero. It means some request may have additional latency at startup. Whenever you use functions, that time instances got allocated. Once instances are allocated, it gets warmed up and start working. It causes little bit of delay in response. This is called Cold-Start behavior.
    2. In Premium plan, there are pre allocated instances assigned to the function which remains available to serve, the moment any request comes in. These readily available instances are called Pre-Warmed instances.
  6. What are Webhooks?
    1. Webhooks are simply an addressable HTTP endpoint that allows external applications to communicate with your system.
    2. Webhooks provide a way to send a JSON representation of an event to any service. All that is required is a public endpoint (HTTP or HTTPS).
  7. What are the differences between Power Automate and Logic Apps?
    1. Feature Power Automate Flow Logic Apps
      Target Users End Users and Makers in Office 365 IT Professionals, Developers, Admins using Office 365 & Azure Services
      Licensing Model Per User License in Office 365 Consumption based / Subscription bases via Azure Subscription
      Flow Creation Web-based Designer, Mobile UI, Visio Web-based Designer, Visual Studio, Visual Studio Code
      Error Handling Flow Checker Save Failed
      Trigger Types Automated, Instant, Scheduled, UI Flow, Business Processs HTTP (Automated), Webhook, Scheduled, HTTP Call (Manual)
      Security Data Loss Prevention Policy Azure Security Policy
  8. What are Web Resources?
    1. Web resources represents the files that can be used to extend the behavior of Dynamics 365 web application.
    2. These files can be HTML, JavaScript, CSS, Several Image Formats, XML etc.
    3. These files are used by developers to extend the behavior of web application.
    4. In Dynamics 365, we upload various types of files like html, script, stylesheets, images etc. and then reference them by name wherever required.
    5. We can use web resources in form customization, Sitemap, application ribbon etc.
  9. What is Plugin & define some basic classes used in plugin?
    1. Plugins are custom business logic which modifies that default behavior of Dynamics 365 CRM.
    2. Technically, it is a .Net class library (.dll) which uses the reference of Microsoft.Xrm.Sdk & Microsoft.Crm.Sdk.Proxy assembly to interact with CRM.
    3. It inherits the IPlugin interface.
    4. The default method in plugin is "Execute" which takes IServiceProvider object as input parameter.
    5. IServiceProvider is responsible to provide the object of ITracingService and IPluginExecutionContext.
    6. More details: Dynamics 365 CRM Plug-ins
  10. What are selectors?
    1. Selectors are of 3 types-
      1. ID based (ID of the control)
      2. Class based (CSS class applied on controls)
      3. Control based (type of the control like input, button, anchor...)
  11. What are the differences between Azure Functions and Logic Apps?