サンプル: 日時の動作の変換

 

公開日: 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. このサンプルに示した ConvertDateAndTimeBehaviorRequest メッセージを使用するには、Dynamics 365 組織のシステム管理者ロールを使用できるようにします。 そうしない場合、このサンプルは動作しません。

  3. DateTimeAttributeBehaviorVisual Studio プロジェクトをダウンロードします。

  4. DateTimeAttributeBehavior Visual Studio プロジェクトを開き、Microsoft.CrmSdk.CoreAssemblies バージョン 7.1.0-preview NuGet Package をインストールします。 手順については、後述の「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 内のインド標準時 (IST) のタイム ゾーン コードによって値を変換します (190)。

    
    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 値は、変換がインド標準時 (IST) のタイム ゾーンによって行われたので、3 月 31 日 から 4 月 1 日 に変換されました。 2 番目の取引先企業レコードの値は、すでに DateOnly 値であったので、影響はありません。

  5. 最後に、DeleteRequiredRecords メソッドは、サンプル実行時に作成された、エンティティ レコードとユーザー定義の日時属性を削除するように求めます。

    1. y を入力し、[Enter: を押して、組織からエンティティ レコードおよびユーザー定義属性を削除します。

    2. 組織にエンティティ レコードとユーザー定義属性を残す場合は、n を入力し、[Enter] を押します。 元の状態に戻る場合は、後で手動で削除する必要があります。

NuGet パッケージのインストール

このサンプルに必要なアセンブリをインストールするには、次の手順を使用します。

  1. このサンプルをダウンロードし、ファイルを抽出します。

  2. C# フォルダーに移動し、Visual Studio で、DateTimeAttributeBehavior.sln ファイルを開きます。

  3. Visual Studio で、DateTimeAttributeBehavior プロジェクトを右クリックし、[NuGet Packages の管理] を選択します。

  4. プレビューのリリースの場合は、検索条件に [安定版のみ] ではなく、かならず [プレリリースを含める] を選択してください。 次に、"Microsoft Dynamics CRM 2015 SDK core assemblies" を検索します。7.1.0-preview バージョンを選択していることを確認します。

  5. [インストール] をクリックします。 このパッケージのインストールを実行するには、ライセンス条項に同意する必要があります。

サンプルの実行

  1. Visual Studio で、ソリューションを開き、必要な NuGet パッケージがインストールされた状態で、F5 キーを押します。

  2. 以前に、Microsoft Dynamics 365 マネージド コード サンプルのいずれも実行していない場合は、コードを実行するための情報を入力する必要があります。そうでない場合は、すでに設定済みの Dynamics 365 サーバーの 1 つに対応する数字を入力します。

    プロンプト

    説明

    Dynamics 365 サーバーの名前とポート [crm.dynamics.com] を入力してください

    Microsoft Dynamics 365 Server の名前を入力します。 北米では、既定は Microsoft Dynamics 365 (オンライン) (crm.dynamics.com) です。

    例:
    crm5.dynamics.com

    この組織は Microsoft Online Services でプロビジョニングされていますか (y/n) [n]

    Microsoft Online Services でプロビジョニングされている組織の場合は、y を入力します。 その他の場合、n を入力します。

    domain\username を入力してください

    Microsoft アカウントを入力します。

    パスワードを入力してください

    パスワードを入力します。 文字はウィンドウに "*" で表示されます。 パスワードは、後で再利用できるように Microsoft Credential Manager で安全に保存されます。

    組織番号を指定してください (1-n) [1]

    組織の一覧から、所属する組織に該当する番号を入力します。 既定値は 1 です。これは一覧の最初の組織を示します。

  3. このサンプルは、このサンプルの概要 に説明されている操作を実行しますが、追加のオプションの実行を求められることがあります。

  4. サンプルが完了したら、[Enter] を押して、コンソール ウィンドウを閉じます。

関連項目

ConvertDateAndTimeBehaviorRequest
日時属性の動作と形式
エンティティ属性メタデータのカスタマイズ

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権