Archive
[Code Snippet] Dynamics Post Assign Plugin
This article is a response to one of the blog questions.
Below is the code snippet for Post Assign (i.e., Ownership change) plug-in.
In the ‘Post Assign’ plug-in you get 2
- Current record as ‘Entity Reference’ in ‘Target‘ attribute.
- Records new Owner (i.e., Owner or Team) in the ‘Assignee‘ attribute.
EntityReference entRefCurrentRecord = null;
EntityReference entRefAssignee = null;// Get current record as Entity Reference
if ((context.InputParameters.Contains(“Target”)) && (context.InputParameters[“Target”] is EntityReference))
{
entRefCurrentRecord = (EntityReference)context.InputParameters[“Target“];
}// Get User/Team whom the record assigned to from ‘Assignee’ property of Context
if ((context.InputParameters.Contains(“Assignee”)) && (context.InputParameters[“Assignee”] is EntityReference))
{
entRefAssignee = (EntityReference)context.InputParameters[“Assignee“];
}// Write your business logic
- You might want to register Pre/Post images on the Plug-in step, to read other attributes of the record.
🙂
C# Error while calling API – Could not create SSL/TLS secure channel
Other day, we were getting following error while calling SSL enables 3rd party API from C# console.
The request was aborted: Could not create SSL/TLS secure channel
Fix:
- Add below statement before making your API call, which validates the SSL certification.
ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
};
- Include following namespaces
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
🙂
Dynamics/ADX Portals – Create Notes using SDK
As part of an integration requirement, we had to create ‘Notes’ (i.e., Annotation) with attachment using SDK.
Key Notes:
- ‘Subject’ and ‘Notetext’ field values of Portal Notes follows a specific pattern than that of Dynamics. Values must be set as follows:
- Subject – Note created on {DateTime.Now.ToString()} by {Portal User Name} [contact:{PortalUserGUID}]
- If the Portal user name is ‘Rajeev P’ and Portal user GUID(i.e.,Contact record’s GUID) is ‘2510ae27-7289-e911-a958-001dd800d97c’, Subject will be Note created on {DateTime.Now.ToString()} by Rajeev P [contact:2510ae27-7289-e911-a958-001dd800d97c]
- Notetext – *WEB*
- Subject – Note created on {DateTime.Now.ToString()} by {Portal User Name} [contact:{PortalUserGUID}]
- If you don’t pass Portal User’s GUID in ‘Subject’ field, Portal shows the Notes record created by as User whom the Portal was configured.
Code to create Annotation:
Below is the code snippet
var noteSubject = “Note created on {DateTime.Now.ToString()} by Rajeev P [contact:2510ae27-7289-e911-a958-001dd800d97c]“;
var entAnnotation = new Entity(“annotation”);
entAnnotation[“subject“] = noteSubject;
entAnnotation[“notetext“] = “*WEB*”;
entAnnotation[“filename”] = {File_name}; // Set FileName
entAnnotation[“documentbody”] = {Base64String}; // Pass document body in Base64 format
entAnnotation[“isdocument”] = true;
entAnnotation.Attributes[“objectid”] = new EntityReference({RegardingSchemaName}, {RegardingGuid}); // Set Schema and GUID
entAnnotation.Attributes[“objecttypecode”] = {RegardingSchemaName}; // Set Schemavar noteId = crmService.Create(entAnnotation);
- Note : Replace values in {} with actual values.
🙂