我试图在DateTime字段的值之后创建/更新所有客户。
在Dynamics CRM中,我会定期调用此方法:
DateTime LastCheckedCRMAccount { get; set; }
private List<Account> GetCRMAccounts()
{
CRMLinq.ClearChanges(); // otherwise old data may be retrieved
IEnumerable<Account> accounts = from acc in CRMLinq.AccountSet
where acc.ModifiedOn > LastCheckedCRMAccount
select acc;
List<Account> accountList = accounts.ToList();
LastCheckedCRMAccount = DateTime.Now.ToUniversalTime();
return accountList;
}
这就是我目前对动态资产净值的看法:
DateTime LastCheckedNAVCustomer { get; set; }
private Customer[] GetNAVCustomers()
{
Customer_Filter filter = new Customer_Filter();
filter.Field = Customer_Fields.Last_Date_Modified;
filter.Criteria = LastCheckedNAVCustomer.ToString("ddMMyyyy") + "..";
Customer[] customers = nCustomer.ReadMultiple(new Customer_Filter[] { filter }, null, 0);
LastCheckedNAVCustomer = DateTime.Now;
return customers;
}
NAV客户表上似乎没有“ModifiedOn”字段;有一个名为“Last Date Modified”的字段,但只包含日期。
我希望让CRM客户与NAV客户保持同步。
有更好的方法吗?
答案 0 :(得分:1)
如果你想这样做,最好在Customer表中添加一个新的DateTime字段,并在插入和修改时用CURRENTDATETIME填充它。您还可能需要在Customer表中管理删除和重命名。
您是否考虑过通过Dynamics Connector使用标准CRM与NAV集成?
http://msdn.microsoft.com/en-us/library/gg502460.aspx
NAV中实现了一项功能,可满足您的需求。您可以查看Codeunit 1中的“Integration ”对象+ OnDatabase 触发器。这里的主要思想是所有表修改/插入/删除都反映在“Integration Record”表中,该表可以是用于获取需要更新到CRM的客户记录列表。