使用工作流 C# 向 CRM 365 中的所有联系人发送电子邮件生日?

Posted

技术标签:

【中文标题】使用工作流 C# 向 CRM 365 中的所有联系人发送电子邮件生日?【英文标题】:send email birthdate to all contact in CRM 365 with workflow C#? 【发布时间】:2018-01-24 12:06:21 【问题描述】:

如何使用工作流c# 向 CRM 365 中的所有联系人发送生日电子邮件?

我写的代码:

var today = DateTime.Today.AddYears(-90);
var contacts = from c in orgContext.CreateQuery<Contact>()
    where (c.BirthDate != null && c.BirthDate.Value.Month == today.Month)
    where (c.BirthDate != null && c.BirthDate.Value.Day == today.Day)
    select new  c.Id, c.LogicalName, c.BirthDate, c.FullName ;

我在linq where 条件中遇到错误:

“位置”条件无效。实体成员正在调用无效的属性或方法

【问题讨论】:

您遇到了哪个错误? “位置”条件无效。实体成员正在调用无效的属性或方法 【参考方案1】:

您不需要“价值”。见下面的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;


namespace Oppgave3Lesson1

    class Program
    

        static void Main(string[] args)
        
            Context orgContext = new Context();
            DateTime today = DateTime.Now;

            var contacts = from c in orgContext.CreateQuery<Contact>()
                           //remoived value
                           where (c.BirthDate != null && c.BirthDate.Month == today.Month)
                           where (c.BirthDate != null && c.BirthDate.Day == today.Day)
                           select new  c.Id, c.LogicalName, c.BirthDate, c.FullName ;
        
    
    public class Context
    
        public List<Contact> CreateQuery<Contact>()
        
            return new List<Contact>
        
    

    public class Contact
    
        public DateTime BirthDate  get; set; 
        public int Id  get; set; 
        public string LogicalName  get; set; 
        public string FullName  get; set; 
    




【讨论】:

非常感谢您的帮助,但我无法删除价值。我有这个错误:'DateTime?'不包含“月份”的定义,并且没有扩展方法“月份”接受“日期时间”类型的第一个参数?可以找到(您是否缺少 using 指令或程序集引用?)【参考方案2】:

尝试从日期中删除Value 属性并使用ToList() 将结果集转换为列表

  var contacts = (from c in orgContext.CreateQuery<Contact>()
                   where (c.BirthDate != null && c.BirthDate.Month == today.Month
                                              && c.BirthDate.Day == today.Day)                      
                   select new  c.Id, c.LogicalName, c.BirthDate, c.FullName).ToList();

【讨论】:

以上是关于使用工作流 C# 向 CRM 365 中的所有联系人发送电子邮件生日?的主要内容,如果未能解决你的问题,请参考以下文章

Dynamics CRM 2015/2016/365 Web API:级联创建

Dynamics CRM 2015/2016/365 Web API:级联创建

Javascript padStart() 在警报框中正常工作,但在 Dynamics 365 CRM 中的电子邮件记录中不能正常工作

Dynamics 365中使用JavaScript和C#调用操作示例

将 PDF ( > 4 MB) 上传到 D365 CRM 中的文件数据类型

使用C#从CRM 365中的Lookup动态获取价值