Share via


データを作成するために XRM ツールを使用する

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

CrmServiceClient クラスで新しいデータと関連付けを作成するには、7 つの方法を使用できます。XRM ツール API を使用する作成操作には、ペイロード データが必要です。 データ ペイロードは Dictionary<string, CrmDataTypeWrapper> オブジェクトの形式を取ります。CrmDataTypeWrapper を使用して、参照するデータ ポイントに対してどのような処理を適用する必要があるか、インターフェイスに通知します。 データを作成する方法の一部がこのトピックに記載されています。

CreateNewRecord

この方法は、任意のタイプのエンティティ データを Microsoft Dynamics 365 で作成するために使用します。 これを使用するには、レコードを作成する対象エンティティのスキーマ名を知る必要があり、データ ペイロードを構築してそれに渡す必要があります。 この例では、取引先企業レコードを作成します。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>",“<Domain>”),"<Server>", "<Port>", "<OrgName>");

// Verify that you are connected
if (crmSvc != null && crmSvc.IsReady)
{
    //Display the CRM version number and org name that you’re connected to.
    Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}", 
    crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);

    // Create an account record
    Dictionary<string, CrmDataTypeWrapper> inData = new Dictionary<string, CrmDataTypeWrapper>();
    inData.Add("name", new CrmDataTypeWrapper("Sample Account Name", CrmFieldType.String));
    inData.Add("address1_city", new CrmDataTypeWrapper("Redmond", CrmFieldType.String));
    inData.Add("telephone1", new CrmDataTypeWrapper("555-0160", CrmFieldType.String));
    accountId = ctrl.CrmConnectionMgr.CrmSvc.CreateNewRecord("account", inData);

    // Verify if the account is created.
    if (accountId != Guid.Empty)
    {
        Console.WriteLine(“Account created.”);
    }
}
else
{
    // Display the last error.
    Console.WriteLine("An error occurred: {0}", crmSvc.LastCrmError);

    // Display the last exception message if any.
    Console.WriteLine(crmSvc.LastCrmException.Message);
    Console.WriteLine(crmSvc.LastCrmException.Source);
    Console.WriteLine(crmSvc.LastCrmException.StackTrace);

    return;
}

この例では、indata という名前のデータ ペイロード オブジェクトを作成しました。 次に、全般構文 crmFieldName , new CrmDataTypeWrapper(data,CrmFieldType) を使用してそれを設定しました。indata オブジェクトを設定して、作成する値を取得後、CreateNewRecord メソッドをコールして、取引先企業およびデータ ペイロード (indata) のためのエンティティ論理名を提供しました。

注意

また、CreateRequest メッセージを ExecuteCrmOrganizationRequest メソッドと共に実行し、XRM ツールを使用してエンティティ レコードを作成できます。詳細:ExecuteCrmOrganizationRequest メソッドでメッセージ (要求クラスと応答クラス) を使用する

CreateAnnotation

このメソッドは、任意のエンティティ レコードに対してメモを作成および添付するために使用されます。 最初のパスのメモのためのすべての変数を設定できますが、情報カテゴリとメモ テキスト フィールドのみに入力する必要があります。 実際には、これは一般にエンティティに対してシステム生成のメモを添付するため、または Dynamics 365 に保存された添付ファイルをエンティティに添付するために使用されます。 また、自分のユーザーがメモを作成するために独自の UI を提供する場合、これが、そのメモを Dynamics 365 の所有者エンティティに添付する方法です。 この例では、前の例に続き、新しく作成された取引先企業に対してメモを作成します。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", “<Domain>”),"<Server>", "<Port>", "<OrgName>");

// Verify that you are connected.
if (crmSvc != null && crmSvc.IsReady)
{
    //Display the CRM version number and org name that you are connected to.
    Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}", 
    crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);

    // Create and attach a note.
    inData.Clear(); 
    inData.Add("subject", new CrmDataTypeWrapper("This is a NOTE from the API" , CrmFieldType.String)); 
    inData.Add("notetext", new CrmDataTypeWrapper("This is text that will go in the body of the note" , CrmFieldType.String));
    Guid noteID = crmSvc.CreateAnnotation("account", accountId, inData);
}
else
{
    // Display the last error.
    Console.WriteLine("An error occurred: {0}", crmSvc.LastCrmError);

    // Display the last exception message if any.
    Console.WriteLine(crmSvc.LastCrmException.Message);
    Console.WriteLine(crmSvc.LastCrmException.Source);
    Console.WriteLine(crmSvc.LastCrmException.StackTrace);

    return;
}

関連項目

サンプル: XRM ツール API のクイック スタート
XRM を使用して Dynamics 365 でアクションを実行

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権