Skip to main content

Merge Action in Plugin

  Introduction-

In this blog we will understand the Action Merge from a Plugin (SDK message) perspective.

Problem Statement:
1) We want to retrieve data once the Merge is performed on two records.
2) We want to merge 2 records using a plugin (C# code).

Solution:
For the first statement, We shall be triggering a plugin on the message "Merge".
While using the plugin registration tool, select message as Merge.
Below code is to be used-

 if (context.InputParameters.Contains("Target") &&
context.InputParameters.Contains["Target"] is EntityReference)
{
   EntityReference Master = (EntityReference) context.InputParameters["Target"];
   Guid duplicate = (Guid) context.InputParameters["SubordinateId"];
 }
For the second problem statement, we will invoke/ use the Merge method.
Below is the code-
      var target = new EntityReference();
      target.Id = Recordid; //master record id
      target.LogicalName = Entity.EntityLogicalName;
      var merge = new MergeRequest();
      merge.SubordinateId = Record2id; // record to be merged id
      merge.Target = target;
      merge.PerformParentingChecks = false;
      var updateContent = new Entity();
      updateContent.fieldname= "test";
      merge.UpdateContent = updateContent;
      var merged = (MergeResponse)svc.Execute(merge);

Target- Master record
Subordinate Id- the record to be merged.
UpdateContent- additional entity attributes to be set during the merge operation for accounts, contacts, or leads. This property is not applied when merging incidents.
PerformParentingChecks- a value (Yes/ No) that indicates whether to check if the parent information is different for the two entity records.

Comments

Popular posts from this blog

Get Business Process Flow Stage Id using API Query

Developers may need to get the stage ids of BPF stages in order to use in power automate or JS. Here is a blog that will help. API Query-   https:// CRMURL.dynamics.com/ api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq BPFGuid   Eg: 1) Get the GUID of  Business Process Flow whose stage details you need. Replace below Query with Your CRM URL and BPF GUID. https://Test130.crm.dynamics.com/ api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq 9128E4D1-1234-4852-ABD0-A63A6ECA5C5D   Output:    The output will provide the stage name and ID.

Dynamic, Multiple Recipients of D365 Email in Power Automate

When t he activity parties (TO, From, CC) ae static, we can easily send emails. However here is how we can set the activity party dynamically on the Email.    In above screenshot we can see the Activity party attribute is populated for single value and is static to only a single entity record GUID.   Solution: The create a record of Email message is as below, here we are entering the attributes of activity party, by clicking on "Switch to Input entire array" You will get the Array format, the participationtypemask is TO, FROM,CC while the partyid@data.bind is the email address. Now all you need to do is create a dynamic array, You can use append to array variable action to create an array with participationtypemask as per your requirement. Example: get all users whom you need to send email, append the user id to array. pass this array as input to the Activity Parties field in create an email record.  

Power Automate to Access SharePoint Recycle Bin

Introduction : A ccess Recycle Bin of SharePoint using Power Automate. Steps: Actions: select "Send an HTTP request to SharePoint" Enter the below details: Site Address: Select your site address from the list. Method: GET Uri, Headers: Refer the screenshot below. Pls. Note: Trigger used was When a File is Deleted- SharePoint Connector. Select Action "Parse JSON" In parse JSON, the content is the body of HTTP Response Enter the below Schema: { "type" : "object" , "properties" : { "odata.metadata" : { "type" : "string" }, "value" : { "type" : "array" , "items" : { "type" : "object" , "properties" : { "odata.type" : { "type" : "string" }, "odata.id" : { "type" : "string" }, "odata.editLink" : { "t