示例:转换日期和时间行为

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

此示例演示如何在将属性行为从 UserLocal 更改为 DateOnly 之前,使用 ConvertDateAndTimeBehaviorRequest 消息将存在于系统中的 Dynamics 365 中的日期和时间属性的 UTC 值更改为 DateOnly 值。详细信息:转换数据库中的现有日期和时间值的行为

此示例适用于 Microsoft Dynamics CRM Online 2015 更新 1 和 Microsoft Dynamics 365(内部部署)。 这可以从转换日期和时间行为下载。

必备项

  1. 有权访问 Microsoft Dynamics CRM Online 2015 更新 1 或 Microsoft Dynamics 365 组织。

  2. 在 Dynamics 365 组织中拥有系统管理员角色可以使用此示例中演示的 ConvertDateAndTimeBehaviorRequest 消息。 否则,此示例将失败。

  3. 下载DateTimeAttributeBehaviorVisual Studio 项目。

  4. 打开 DateTimeAttributeBehavior Visual Studio 项目并安装 Microsoft.CrmSdk.CoreAssemblies 版本 7.1.0-preview NuGet 包。 有关说明,请参阅 安装 NuGet 包 的更高版本。

    在安装 NuGet 包后,请参阅 运行示例 了解有关如何运行示例以及应抱有哪些期待的说明。

本主题内容

此示例的用途

安装 NuGet 包

运行示例

此示例的用途

  1. ConvertDateandTimeBehaviorRun 方法检查您是否为此示例运行了 Dynamics 365 的相应版本。

  2. CreateRequiredRecords 方法为示例创建所需的记录:

    1. 为具有 UserLocal 行为的 Account 实体创建示例日期和时间属性。

    2. 使用新日期和时间属性中的 March 31, 2015 11:00 PM UTC 值创建示例客户记录。

    3. 将日期及时间属性的行为更改为 DateOnly

    4. 使用新日期和时间属性中的 March 31, 2015 11:00 PM UTC 值创建另一个示例客户记录。 由于属性现在为 DateOnly,时间部分被忽略,并在系统中存储为 March 31, 2015 00:00:00。

    5. 在两条客户记录中检索日期和时间属性的值。 因为行为被更改,两个值显示为 March 31, 2015 00:00:00。 但是,第一个客户记录的值在数据库中继续位于 UTC (March 31, 2015 11:00 PM)。

  3. 运行 ConvertDateAndTimeBehaviorRequest SDK 消息可创建异步作业,将日期和时间属性中的 UTC 值转换为 DateOnly 值。 SDK 消息中的转换规则将按照在 Dynamics 365 (190) 的印度标准时间 (IST) 时区代码转换此值。

    
    ConvertDateAndTimeBehaviorRequest request = new ConvertDateAndTimeBehaviorRequest()
    {
        Attributes = new EntityAttributeCollection() 
                { 
                    new KeyValuePair<string, StringCollection>("account", new StringCollection() 
                    { "new_sampledatetimeattribute" }) 
                },
        ConversionRule = DateTimeBehaviorConversionRule.SpecificTimeZone.Value,
        TimeZoneCode = 190, // Time zone code for India Standard Time (IST) in CRM
        AutoConvert = false // Conversion must be done using ConversionRule
    };
    
    // Execute the request
    ConvertDateAndTimeBehaviorResponse response = (ConvertDateAndTimeBehaviorResponse)_serviceProxy.Execute(request);
    
  4. 转换后,在两条客户记录中检索日期和时间属性的值。 因为按照印度标准时间 (IST) 时区进行转换,第一个客户记录的 UTC 值转换为 4 月 1 日,而不是 3 月 31 日。 因为已经是 DateOnly 值,因此第二个客户记录的值不会受影响。

  5. 最后,DeleteRequiredRecords 方法提示删除示例运行期间创建的实体记录和自定义的日期和时间属性:

    1. 键入 y,然后按 ENTER 从您的组织中删除实体记录和自定义属性。

    2. 键入 n,然后按 ENTER 保留您的组织中的实体记录和自定义属性。 如果您希望返回到原始状态,您将必须随后手动删除。

安装 NuGet 包

使用以下步骤安装此示例所需的程序集:

  1. 下载此示例并提取文件。

  2. 使用 Visual Studio 导航到文件夹 C#,然后打开 DateTimeAttributeBehavior.sln 文件。

  3. 在 Visual Studio 中,右键单击 DateTimeAttributeBehavior 项目并选择“管理 NuGet 包”。

  4. 对于预览版,请确保在搜索条件中选择“包括预发行”而不是“仅稳定”。 然后搜索“Microsoft Dynamics CRM 2015 SDK core assemblies”。 请确保选中 7.1.0-preview 版本。

  5. 单击“安装”。 您需要接受许可条款以完成该程序包的安装。

运行示例

  1. 在 Visual Studio 中(已打开解决方案并安装了必需的 NuGet 包),请按 F5。

  2. 如果之前尚未运行某个 Microsoft Dynamics 365 托管代码示例,您需要输入信息以运行代码,或者为在之前设置的一个 Dynamics 365 服务器输入该数字。

    提示

    说明

    输入 Dynamics 365 服务器的名称和端口 [crm.dynamics.com]

    键入 Microsoft Dynamics 365 服务器的名称。 默认为北美的 Microsoft Dynamics 365 (online) (crm.dynamics.com)。

    示例:
    crm5.dynamics.com

    是否在 Microsoft Online Services 中配置了该组织 (y/n) [n]

    如果是配置了 Microsoft Online Services 的组织,键入 y。 否则,键入 n

    输入域名\用户名

    键入您的 Microsoft 帐户。

    输入密码

    键入密码。 窗口中的字符将显示为“*”。 您的密码将保存在 Microsoft Credential Manager 中以便日后重复使用。

    指定组织编号 (1-n) [1]

    在您所属的所示组织列表中,键入相应数字。 默认值为 1,表示列表中的第一个组织。

  3. 示例将执行 此示例的用途 中介绍的操作,并且会向您提示其他选项。

  4. 在示例结束后,请按 ENTER 关闭控制台窗口。

另请参阅

ConvertDateAndTimeBehaviorRequest
日期及时间属性的行为和格式
自定义实体属性元数据

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权