InstantiateTemplateRequest instTemplateReq = new InstantiateTemplateRequest
{
TemplateId = templateId, //template guid
ObjectId = incidentId, // template type id
ObjectType = "incident"
};
InstantiateTemplateResponse instTemplateResp = (InstantiateTemplateResponse)service.Execute(instTemplateReq);
Entity instTemplate = (Entity)instTemplateResp.EntityCollection.Entities[0];
Guid emailGuid = service.Create(instTemplate);
//Add attachement
Entity emailAttachment = new Entity("activitymimeattachment");
//attachement in byte[]
emailAttachment["body"] = Convert.ToBase64String(attachement);
emailAttachment["objectid"] = new EntityReference("email", emailGuid);
emailAttachment["objecttypecode"] = "email";
emailAttachment["filename"] = item.Name;
service.Create(emailAttachment); //Creates attachement to email
SendEmailRequest sendEmailReq = new SendEmailRequest()
{
EmailId = emailGuid,
IssueSend = true
};
SendEmailResponse sendEmailResp = (SendEmailResponse)service.Execute(sendEmailReq);
Wednesday, February 14, 2018
SDK - Send Email Using Template with attachement
Saturday, September 23, 2017
Retrieve EntityImage using SDK
In this example we will retrieve contact entity image
var Contact=Service.Retreive("contact","GUID",new ColumnSet(true));
if(Contact.Attributes.Contains("entityimage"))
{
byte[] entityimage=Contact["entityimage"] as byte[];
}
the above piece of code has no issues and ideally should Retreiveall the attributes of the contact as new ColumnSet(true) is specified but this will not get the entity image
When you use RetrieveMultiple or Retrieve the EntityImage is not included when the ColumnSet.AllColumns property is set to true. Because of the potential size of data in this attribute, to return this attribute you must explicitly request it.
The binary data representing the image isn’t returned using the deprecated ExecuteFetchRequest class. You should use RetrieveMultipleRequestinstead.
Reference - https://msdn.microsoft.com/en-in/library/dn817886.aspx
Friday, July 7, 2017
SetStateRequest depricated in dynamics 365 online
SetStateRequest being deprecated now in Dynamics 365 (online).
use UpdateRequest to modify specialized fields.
Refer to the below link
https://msdn.microsoft.com/en-us/library/dn932124.aspxTuesday, August 23, 2016
CRM 2016 Web API Retrieve Attribute Names By Entity Name
GetEntityMetaData function will retrieve the list of attributes from he Account entity.
function GetEntityMetaData() {
var entityType = "Account";
var metaDataId = getMetaDataIdByName(entityType);
var schemaNames = getAttributeList(metaDataId);
}
function getAttributeList(metaDataId) {
var attributesList;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: Xrm.Page.context.getClientUrl() + "/api/data/v8.1/EntityDefinitions(" + metaDataId + ")?$select=LogicalName&$expand=Attributes($select=LogicalName)",
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("OData-MaxVersion", "4.0");
XMLHttpRequest.setRequestHeader("OData-Version", "4.0");
XMLHttpRequest.setRequestHeader("Accept", "application/json");
XMLHttpRequest.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
},
async: false,
success: function (data, textStatus, xhr) {
attributesList = data.Attributes;
},
error: function (xhr, textStatus, errorThrown) {
alert(textStatus + " " + errorThrown);
}
});
return attributesList;
}
function getMetaDataIdByName(entityType) {
var MetadataId;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: Xrm.Page.context.getClientUrl() + "/api/data/v8.1/EntityDefinitions?$select=DisplayName,IsKnowledgeManagementEnabled,EntitySetName&$filter=SchemaName eq '" + entityType + "'",
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("OData-MaxVersion", "4.0");
XMLHttpRequest.setRequestHeader("OData-Version", "4.0");
XMLHttpRequest.setRequestHeader("Accept", "application/json");
XMLHttpRequest.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
},
async: false,
success: function (data, textStatus, xhr) {
var result = data.value[0];
MetadataId = result.MetadataId;
},
error: function (xhr, textStatus, errorThrown) {
alert(textStatus + " " + errorThrown);
}
});
return MetadataId;
}
Monday, February 1, 2016
Retrieve Team Members using RetrieveMultipleRequest
As we know that CRM Sdk deprecated RetrieveMembersTeamRequestmessage (https://msdn.microsoft.com/en-us/library/gg309360.aspx). So there is only way to retrieve Team Members using RetrieveMultipleRequest. and here is the method for the same. It works for the AccessTeam too.
private static void RetrieveTeamMembers(IOrganizationService service, EntityReference teamEntityReference)
{
QueryExpression userQuery = new QueryExpression("systemuser");
userQuery.ColumnSet = new ColumnSet("fullname");
LinkEntity teamLink = new LinkEntity("systemuser", "teammembership", "systemuserid", "systemuserid", JoinOperator.Inner);
ConditionExpression teamCondition = new ConditionExpression("teamid", ConditionOperator.Equal, teamEntityReference.Id);
teamLink.LinkCriteria.AddCondition(teamCondition);
userQuery.LinkEntities.Add(teamLink);
EntityCollection retrievedUsers = service.RetrieveMultiple(userQuery);
foreach (Entity user in retrievedUsers.Entities)
{
Console.WriteLine(String.Format("User: {0} with GUID {1}", user.GetAttributeValue<string>("fullname"),
user.Id));
}
}
Tuesday, August 18, 2015
Tuesday, July 28, 2015
CRM 2011/2013/2015 Javascript: Get Logged in User Full Name
CRM 2011
function getUserFullName() {
var serverUrl = getCrmServerUrl();
var userRequest = GetRequestObject();
userRequest.open("GET", serverUrl + "/SystemUserSet(guid'" + Xrm.Page.context.getUserId() + "')?$select=FullName", false);
userRequest.setRequestHeader("Accept", "application/json");
userRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
userRequest.send();
if (userRequest.status === 200) {
var retrievedUser = JSON.parse(userRequest.responseText).d;
var userFullName = retrievedUser.FullName;
return userFullName;
}
else {
return "";
}
}
function getCrmServerUrl() {
if (Xrm.Page.context.getClientUrl) // CRM 2011 UR 12+ and CRM 2013
{
serverUrl = Xrm.Page.context.getClientUrl() + "/";
}
else // CRM 2011 UR 11 or below
{
serverUrl = Xrm.Page.context.getServerUrl();
}
// Adjust URL for differences between on premise and online
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
}
return serverUrl + "/XRMServices/2011/OrganizationData.svc";
}
function GetRequestObject() {
if (window.XMLHttpRequest) {
return new window.XMLHttpRequest;
}
else {
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch (ex) {
return null;
}
}
}
CRM 2013/2015
Xrm.Page.context.getUserName()
Subscribe to:
Posts (Atom)