3

Microsoft Dynamics に接続する顧客向けの Web ポータルに取り組んでいます。Dynamics CRM を直接インターネットに接続する展開 (IFD) にしたくないので、Web インターフェイスが対話する別のデータベースを使用し、Web サービスを使用して Web ポータル データベースと Dynamics の間でデータを移動したいと考えています。 CRM。これが最善の方法であるかどうか、およびこれを実装するために参照できる適切なコード例などがあるかどうかについての考えを探していますか? Microsoft にはカスタマー ポータルがあるのを見ましたが、(ざっと見ただけで) IFD 展開が必要なように見えますが、これは望ましくありません。

4

4 に答える 4

6

まず、ASP.NET プロジェクト (WebForms または MVC 3) を作成した後、次の参照を追加します。

  1. Microsoft.crm.sdk.proxy.
  2. Microsoft.xrm.sdk.
  3. システム.ランタイム。シリアル化。
  4. System.ServiceModel。

コード ビハインドでクラスを作成し、次のコードを追加します。

private IOrganizationService GetCrmService(string userName, string password, string domain, Uri serviceUri)
{
    OrganizationServiceProxy _serviceProxy;

    ClientCredentials credentials = new ClientCredentials();
    credentials.Windows.ClientCredential = new System.Net.NetworkCredential(userName, password, domain);
    //credentials.UserName.UserName = userName;  // uncomment in case you want to impersonate
    //credentials.UserName.Password = password;
    ClientCredentials deviceCredentials = new ClientCredentials();

    using (_serviceProxy = new OrganizationServiceProxy(serviceUri,
                                                        null,
                                                        credentials,
                                                        deviceCredentials))
    {
        _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
        return (IOrganizationService)_serviceProxy;
    }
}

複数のレコードを取得する場合:

string fetch = @"My Fetch goes here";
EntityCollection records = getCrmService().RetrieveMultiple(new FetchExpression(fetch));

SDK をダウンロードするか、これを確認することを強くお勧めし ます。優れたポータルの構築に役立つ多くのサンプルとウォークスルーが見つかります。

于 2012-04-18T06:29:05.733 に答える
1
  1. それは良いアプローチのように見えます。
  2. ポータルとCRMの両方のパフォーマンスが向上します。
  3. ポータルに表示されるデータはほぼリアルタイムです。つまり、リアルタイムではありません。
  4. 開発全体を通して、CRMサーバーを常にビジー状態に保つには、非同期処理が多すぎないことを確認し続けることをお勧めします。
  5. アクセラレーター/ポータルがIFDインスタンスであるためにCRMが必要だとは思いません。ポータル部分だけが国際的に面している必要があると思います(もちろん、目的に使用できるようにするためです!)
  6. Anwarは正しいです、SDKはそのような研究のための良いラウチパッドです。
于 2012-04-20T03:05:52.367 に答える
1

次の理由から、これは良い戦略だと思います。

  • Web サイトに入力されたデータを非同期で CRM に入れることができます。このデカップリングにより、CRM と Web サイトがお互いのボトルネックになることはありません。
  • 中間サービス レイヤーのみがインターネットに面しているため、このサービス レイヤーが危険にさらされた場合に、どの CRM 情報が開示されたり、改ざんされたりするかを制御できます。

あなたが求めているアーキテクチャは、CRM 非同期サービスが機能する方法を連想させます (非同期プラグインとワークフローはこのように機能します)。

  • ジョブは、CRM DB のキュー (テーブル) に入れられます。
  • スケジュールされたサービスは x 秒ごとに起動し、キュー テーブルから最新の y レコードをフェッチします。
  • サービスは各ジョブを実行し、結果 (成功、エラー メッセージ ログ) をキュー テーブルのレコードに書き込みます。

したがって、おそらく最も難しいのは、例外をスローせず (ただし、常にダイジェストする)、適切に結果を DB に記録する適切なスケジュールされたサービスを作成することです。

Dynamics CRM の「非同期サービス アーキテクチャ」の詳細については、次を参照してください: http://msdn.microsoft.com/en-us/library/gg334554.aspx

于 2012-04-18T20:11:29.413 に答える
0

カスタマー ポータル IFD の導入は不要です。また、カスタマー ポータルが気に入らない場合は、SDK にすべて含まれているポータル開発用の SDK 拡張機能 (microsoft.xrm.client.dll & microsoft.xrm.portal.dll および portalbase ソリューション) をいつでも使用できます。

SDK Portal Extenstion を使用してポータルを構築する方法に関する優れたリソースがあります。

Dynamics CRM 2011 ポータル開発

于 2012-04-26T02:04:21.350 に答える