共用方式為


範例:轉換日期和時間行為

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

此範例示範如何使用 ConvertDateAndTimeBehaviorRequest 訊息將 UTC 值轉換成 Dynamics 365 中日期及時間屬性的 DateOnly 值,該屬性在您將屬性的行為從 UserLocal 變更為 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. ConvertDateandTimeBehavior 類別 Run 方法會檢查您是否執行適用於範例的 Dynamics 365 版本。

  2. CreateRequiredRecords 方法會建立範例所需的記錄:

    1. 針對 Account 實體建立具有 UserLocal 行為的範例日期和時間屬性。

    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. 轉換之後擷取兩個客戶記錄中日期和時間屬性的值。 第一個客戶記錄中的 UTC 值會轉換程 4 月 1 日,而不是 3 月 31 日,因為轉換是依據印度標準時間 (IST) 時區進行。 第二個客戶記錄中的值不受影響,因為它已經是 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 (線上) (crm.dynamics.com) 在北美洲。

    範例:
    crm5.dynamics.com

    此組織是否於 Microsoft 線上服務中佈建 (y/n) [n]

    如果這是 Microsoft 線上服務佈建組織,請輸入 y。 否則,請輸入 n

    輸入 domain\username

    輸入您的 Microsoft 帳戶。

    輸入密碼

    請輸入您的密碼。 字元會在視窗中顯示為「*」。 您的密碼會安全地儲存在 Microsoft 認證管理員中並供往後使用。

    指定組織編號 (1-n) [1]

    從組織清單中找到您所屬的組織,輸入對應的數字。 預設為 1,表示清單中的第一個組織。

  3. 範例會執行 此範例的作用 中說明的伺服器作業,也會提示其他選項。

  4. 當範例完成時,請按 ENTER 關閉主控台視窗。

另請參閱

ConvertDateAndTimeBehaviorRequest
日期和時間屬性的行為與格式
自訂實體屬性中繼資料

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權