CRM 2011 合同 ActiveOn 日期问题
CRM 2011 Contract ActiveOn Date Issues
我在从自定义工作流程创建合同时遇到问题 activity。合同从相关实体的字段中获取它的激活日期。日期的时间部分在被设置为合同的活动日期之前被删除。这似乎按预期工作,但代码为合同创建了不稳定的日期。有人有这方面的经验吗?
DateTime startDate;
DateTime endDate;
Anh_home home = <<Get record from service>>;
startDate = home.Anh_ActualPossessionDate.GetValueOrDefault().Date;
endDate = startDate.AddYears(contractDuration).Date.AddSeconds(-1);
newContract = new Contract()
{
Title = contractName,
anhwp_Home = home.ToEntityReference(),
CustomerId = home.Anh_CompanyId,
ActiveOn = startDate,
ExpiresOn = endDate,
BillingCustomerId = home.Anh_CompanyId,
BillingStartOn = startDate,
BillingEndOn = endDate,
ContractTemplateId = dataContext.ContractTemplateSet.FirstOrDefault(x => x.Abbreviation == "HWC").ToEntityReference()
};
newContract.Id = service.Create(newContract);
以下是对筛选视图的查询结果。似乎 activeon 日期正在设置 activeonutc 字段,但我的理解是 CRM 根据用户设置处理到 UTC 的转换。
谢谢。
所以我在这个很棒的博客上偶然发现了我的问题的答案 post https://community.dynamics.com/crm/b/develop1/archive/2011/12/06/dynamics-crm-datetimes-the-last-word。
似乎当您通过 SDK 从 CRM 检索数据时,日期总是以 UTC 格式发送,但您可以以本地时间或 UTC 格式发送数据。我遇到的问题是,我将从其他实体检索到的日期视为当地时间,而实际上它是 UTC。因此,当我保存我的新合同时,CRM 正确地采用了我提供的 UTC 时间并将其转换为当地时间。
为了解决这个问题,我只是调用了检索记录的 DateTime 对象的 .ToLocalTime() 方法。
我在从自定义工作流程创建合同时遇到问题 activity。合同从相关实体的字段中获取它的激活日期。日期的时间部分在被设置为合同的活动日期之前被删除。这似乎按预期工作,但代码为合同创建了不稳定的日期。有人有这方面的经验吗?
DateTime startDate;
DateTime endDate;
Anh_home home = <<Get record from service>>;
startDate = home.Anh_ActualPossessionDate.GetValueOrDefault().Date;
endDate = startDate.AddYears(contractDuration).Date.AddSeconds(-1);
newContract = new Contract()
{
Title = contractName,
anhwp_Home = home.ToEntityReference(),
CustomerId = home.Anh_CompanyId,
ActiveOn = startDate,
ExpiresOn = endDate,
BillingCustomerId = home.Anh_CompanyId,
BillingStartOn = startDate,
BillingEndOn = endDate,
ContractTemplateId = dataContext.ContractTemplateSet.FirstOrDefault(x => x.Abbreviation == "HWC").ToEntityReference()
};
newContract.Id = service.Create(newContract);
以下是对筛选视图的查询结果。似乎 activeon 日期正在设置 activeonutc 字段,但我的理解是 CRM 根据用户设置处理到 UTC 的转换。
谢谢。
所以我在这个很棒的博客上偶然发现了我的问题的答案 post https://community.dynamics.com/crm/b/develop1/archive/2011/12/06/dynamics-crm-datetimes-the-last-word。
似乎当您通过 SDK 从 CRM 检索数据时,日期总是以 UTC 格式发送,但您可以以本地时间或 UTC 格式发送数据。我遇到的问题是,我将从其他实体检索到的日期视为当地时间,而实际上它是 UTC。因此,当我保存我的新合同时,CRM 正确地采用了我提供的 UTC 时间并将其转换为当地时间。
为了解决这个问题,我只是调用了检索记录的 DateTime 对象的 .ToLocalTime() 方法。