2016-11-22 16 views
0

次のAPIを使用してDynamics 365 CRMにサービスリファレンスを追加しようとしていますhttps://[Organization].api.crm8.dynamics.com/api/data/v8.2/しかし、このウィンドウを取得するたびに、 enter image description hereビジュアルスタジオ2012のDynamics 365 crmにサービスリファレンスを追加できません

私はCRMにログインするために使用する資格情報を使用してみました...しかし、彼らは仕事をscroll down toパソコンへ転送...誰かが私が使用すべき資格を私に言うことができる?...

答えて

0

正確にCRM Webサービスへの参照を追加しようとしているのはなぜですか?あなたが何をする必要があるか、あなたは、サーバー側のコードからCRMにアクセスしたいと仮定すると:

  1. コアCRM SDKのアセンブリへの参照を追加します(Microsoft.Crm.Sdk.Proxy.dllとMicrosoft.Xrm.Sdk.dll )。ダウンロード可能なSDKからダウンロードすることも、「Microsoft.CrmSdk.CoreAssemblies」NuGetパッケージを追加することもできます。
  2. これを実行すると、CRMと「話す」コードを書くことができます。しかし、あなたが欠けているのは実際の "接続"です。取得する方法はいくつかありますが、Xrm Toolingヘルパークラスを使用するのが最も簡単です(https://msdn.microsoft.com/en-us/library/mt608573.aspx)。必要なアセンブリを参照するか、 "Microsoft.CrmSdk.XrmTooling.CoreAssembly" NuGetパッケージを使用する必要があります。

これをすべて実行すると、Dynamics CRMに対して正常にコードを作成できるようになります。

CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString); 

IOrganizationService orgService = crmSvc.OrganizationServiceProxy; 

// Who am I? 
WhoAmIResponse whoAmIResp = orgService.Execute(new WhoAmIRequest()) as WhoAmIResponse; 
Guid myUserId = whoAmIResp.UserId; 

// Get all accounts starting with 'A' 
QueryExpression query = new QueryExpression("account"); 
query.ColumnSet = new ColumnSet("accountid", "name"); 
query.Criteria.AddCondition("name", ConditionOperator.BeginsWith, "a"); 

EntityCollection ecoll = orgService.RetrieveMultiple(query); 

foreach(Entity account in ecoll.Entities) 
{ 
    if(account.Attributes.Contains("name")) 
    { 
     Console.WriteLine((string)account["name"]); 
    } 
} 

// Update some account 
Entity accountToUpdate = new Entity("account"); 
accountToUpdate["accountid"] = new Guid("_some_guid_here"); 
accountToUpdate["name"] = "new name"; 

orgService.Update(accountToUpdate); 

あなたがタイプセーフなアプローチを使用する場合は、プロキシクラスを生成する必要があります - のように、ここで説明:https://msdn.microsoft.com/en-us/library/gg327844.aspx

その後あなたがこのようなコードを書くことができるようになります:

DataContext data = new DataContext(orgService); 
// DataContext is the name of the service context, as defined in the CrmScv tool 

var myAccountData = (from a in data.AccountSet 
         where a.Address1_Telephone1 == "12312313" 
         select new 
         { 
          a.AccountId, 
          a.Name, 
          a.EMailAddress1, 
          a.PrimaryContactId 
         }).First(); 

Contact contactToUpdate = new Contact() 
{ 
    ContactId = myAccountData.PrimaryContactId.Id, 
    EMailAddress1 = myAccountData.EMailAddress1 
}; 

orgService.Update(contactToUpdate); 

...これははるかに良く、エラーを起こしにくいです。

0

その様子からは、 Dynamics 365のコンテキスト外でAppを使用して認証しようとしています。この方法でWeb APIを使用して認証する場合は、OAuthとautを使用してMicrosoft Dynamics 365 Webサービスに接続する必要があります

あなたはCRM 2013 SDKを使用している場合は、あなたがにアップデートする必要があるかもしれません:ADAL

ここ

https://msdn.microsoft.com/en-us/library/gg327838.aspx

を使用してhenticateはそれを

https://msdn.microsoft.com/en-us/library/mt622431.aspx

追加の注記を行う方法についてのチュートリアルではありますダイナミック365サポート用6.1.2

https://blogs.msdn.microsoft.com/crm/2017/02/01/dynamics-365-sdk-backwards-compatibility/

関連する問題