使用QueryExpression获取Opportunity(Opty)id和Opportunity名称

Ico*_*con 0 c# dynamics-crm dynamics-crm-2011 dynamics-crm-online dynamics-crm-2013

我正在使用Dynamics CRM 365.我使用queryexpression检索Opty名称和Opty id(唯一).

QueryExpression queryOnline = new QueryExpression("opportunity");
        queryOnline.Criteria = new FilterExpression();
        queryOnline.Criteria.AddCondition("createdon", ConditionOperator.LastXDays, hours);
        queryOnline.Criteria.AddCondition("statuscode", ConditionOperator.Equal, 1); // For Open Opportunity
        queryOnline.ColumnSet = new ColumnSet(true);

        EntityCollection entCol = _service.RetrieveMultiple(queryOnline);

        foreach (Entity presName in entCol.Entities)
{
//Get Opty ID and Name
}
Run Code Online (Sandbox Code Playgroud)

现在我想创建SendEmailRequest发送机会记录,我使用上述方法检索.简而言之,我想SendEmailRequest用以下格式创建:

在电子邮件说明中(多行文本/字符串):

你有开放的机会:

ID || 名称

00001 || 打开OPTY NAME

00002 || 打开OPTY NAME

我已成功创建发送电子邮件请求,有或没有模板.但是当我想将查询表达式中的opty记录粘贴到电子邮件描述中时,我遇到了问题.电子邮件描述是字符串格式的"多行文本"字段.

Nat*_*han 5

电子邮件描述字段接受HTML格式,您应该创建一个HTML电子邮件正文并将其传递给描述.对于商机值,将ColumnSet更改为:

queryOnline.ColumnSet = new ColumnSet("name", "opportunityid");
Run Code Online (Sandbox Code Playgroud)

然后,你的foreach看起来像这样:

string htmlDescription = "<ul>";
foreach (Entity presName in entCol.Entities)
{
  //Get Opty ID and Name
  htmlDescription += string.Format("<li>{0} || {1}</li>",  presName.Id, presName.GetAttributeValue<string>("name"));
}

htmlDescription += "</ul>";
Run Code Online (Sandbox Code Playgroud)

当然只是一个基本的例子.