Microsoft-crm-quick-guide

提供:Dev Guides
移動先:案内検索

Microsoft Dynamics CRM-概要

顧客関係管理(CRM)は、現在および将来の顧客との企業のやり取りを管理するためのシステムです。 多くの場合、テクノロジーを使用して、販売、マーケティング、顧客サービス、および技術サポートを整理、自動化、同期します。 CRMは、顧客満足と忠誠心を育むビジネスプロセスを整理および自動化することにより、コストの削減と収益性の向上に役立ちます。

Microsoft Dynamics CRM

Microsoft Dynamics CRMは、Microsoftが開発した顧客関係管理ソフトウェアパッケージであり、あらゆる組織の顧客関係を強化することに重点を置いています。 マイクロソフトはDynamics CRMをXRMプラットフォームとしてマーケティングしており、パートナーが独自の(.NETベースの)フレームワークを使用してカスタマイズすることを奨励してきましたが、製品は出荷時から主に販売、マーケティング、およびカスタマーサービスセクターに焦点を当てています。 近年、CRMが推進する分析プラットフォームとしても成長しています。

CRMソリューションを使用して、組織の販売生産性とマーケティング効果を高め、顧客サポートチェーン全体を処理し、社会的洞察、ビジネスインテリジェンス、およびその他のすぐに使える機能や機能を提供できます。 製品として、Microsoft Dynamics CRMは、モバイルおよびタブレットでCRMアプリを使用するための完全なモバイルサポートも提供します。

このチュートリアルを書いている時点で、CRMの最新バージョンはCRM 2016です。 ただし、このチュートリアルでは、CRM 2015 Onlineバージョンを使用します。これは、最新の安定バージョンであり、多くの組織で頻繁に使用されているためです。 それでも、他のバージョンのCRMを使用している場合でも、チュートリアルのすべての概念は引き続き有効です。

製品の提供

Microsoft Dynamics CRMは2つのカテゴリーで提供されています-

CRMオンライン

CRM Onlineは、すべてのバックエンドプロセス(アプリケーションサーバー、セットアップ、展開、データベース、ライセンスなど)がMicrosoftサーバーで管理されるMicrosoft Dynamics CRMのクラウドベースの製品です。 CRM Onlineはサブスクリプションベースのサービスであり、CRMの実装に関連するすべての技術を管理したくない組織に適しています。 数日(数週間、数ヶ月、数年ではなく)でシステムのセットアップを開始し、ブラウザからWebにアクセスできます。

CRMオンプレミス

CRMオンプレミスは、Microsoft Dynamics CRMのよりカスタマイズされた堅牢な製品で、CRMアプリケーションとデータベースがサーバーに展開されます。 この製品により、すべてのデータベース、カスタマイズ、展開、バックアップ、ライセンス、およびその他のネットワークとハードウェアのセットアップを制御できます。 一般に、カスタマイズされたCRMソリューションを希望する組織は、より優れた統合およびカスタマイズ機能を提供するため、オンプレミス展開を好みます。

機能的な観点から、どちらの製品も同様の機能を提供します。ただし、実装の点で大きく異なります。 違いを次の表にまとめます。

CRM Online CRM On-Premise
This is a cloud-based solution provided by Microsoft in which all the servers and databases are managed by Microsoft. This is an on-premise solution provided by Microsoft in which the servers and databases are managed by the customer.
You can get started with an online offering in a matter of few days. You pay for the users and used space on-the-go. Setting up an on-premise offering needs technical skills as well as sufficient time to setup the CRM instance and get it running.
It supports relatively less customizations and extensions. It supports relatively more customization and extensions.
CRM Online does not give the ability to perform manual data backup and restore options, since the database is hosted on Microsoft servers. However, Microsoft performs daily backups of the database. CRM on-premise gives complete ability to manage your database.
CRM Online has various plans based on the data storage limits such as 5GB, 20 GB, etc. CRM on-premise does not have any such limits on storage size, since the data exists on your own servers.
CRM Online provides inbuilt capabilities of features such as insights, social listening, analytics, etc. CRM on-premise has extra costs for these features.
CRM Online supports automatic updates to future version. CRM on-premise updates need to be installed by the administrator.

CRMへのアクセス

Microsoft Dynamics CRMは、次のオプションのいずれかを介してアクセスすることができます-

  • ブラウザ
  • モバイルとタブレット
  • 見通し

製品の競合他社

Microsoft Dynamics CRMは、間違いなくCRM分野のトップ製品の1つです。 ただし、Microsoft Dynamics CRMと競合する他の製品は次のとおりです。

  • Salesforce.com
  • オラクル
  • SAP
  • セージCRM
  • Sugar CRM
  • NetSuite

製品のバージョン

Microsoft Dynamics CRMは、2003年の1.0バージョンから始まり、長年にわたって成長してきました。 最新版(この記事を書いている時点)は2015年です。 以下はリリースバージョンの時系列リストです-

  • Microsoft CRM 1.0
  • Microsoft CRM 1.2
  • Microsoft Dynamics CRM 3.0
  • Microsoft Dynamics CRM 4.0
  • Microsoft Dynamics CRM 2011
  • Microsoft Dynamics CRM 2013
  • Microsoft Dynamics CRM 2015
  • Microsoft Dynamics CRM 2016

Microsoft Dynamics CRM-環境

CRM環境をセットアップすることから始めましょう。 オンラインバージョンでは1か月間の無料トライアルアクセスが提供されるため、CRM 2015のオンラインバージョンを使用します。 これにより、CRMを学習するためにライセンスを購入する必要がなくなります。

-Microsoft Dynamics CRMは成長中の製品であるため、これを学習するまでに、製品の新しいバージョンを入手できる可能性があります。 その場合、アプリケーションは、このチュートリアルのスクリーンショットで表示されるとおりに表示されない場合があります。 ただし、製品のコア概念は同じままです。 ただし、製品のルックアンドフィールとナビゲーションは変更される場合がありますが、ほとんどの場合、必要なオプションを簡単にナビゲートして見つけることができます。

Microsoft Dynamics CRMオンラインアカウントのセットアップ

  • ステップ1 *-次のURLに移動します-

https://www.microsoft.com/en-us/dynamics365/home

今後このリンクから試用版のオプションが表示されない場合は、Googleで「Microsoft Dynamics CRM無料試用版」を検索してみてください。

  • ステップ2 *-[無料で試す]ボタンをクリックします。 これにより、次のスクリーンショットに示すように、3段階の登録プロセスが開始されます。 3ステップ登録のステップ1で、名前、メール、言語などの必須の詳細を入力します。

Mscrmオンライン登録ステップ2_1

  • ステップ3 *-[無料で試す]ボタンをクリックします。 これにより、次のスクリーンショットに示すように、3段階の登録プロセスが開始されます。 3ステップ登録のステップ1で、名前、メール、言語などの必須の詳細を入力します。

Mscrmオンライン登録ステップ3

  • ステップ4 *-3ステップ登録のステップ3で、Microsoftは指定された携帯電話番号を検証します。 これには、携帯電話番号を入力して[テキストを送信]をクリックします。 その後、OTPがモバイルに送信され、これを使用してセットアップをさらに進めることができます。

Mscrmオンライン登録ステップ4

  • ステップ5 *-Office 365ユーザーIDが作成されます。 後でアクセスするために、このユーザーID情報を保存できます。

Mscrmオンライン登録ステップ5

アカウントを設定すると、CRMダッシュボードが開き、次のようになります。

Mscrmオンライン登録ステップ6

繰り返しますが、上記のスクリーンショットは将来のバージョンで変更される可能性がありますが、環境のセットアップは非常に簡単なプロセスになります。

CRM SDKのダウンロード

Microsoft Dynamics CRMのソフトウェア開発キット(SDK)には、サーバー側コード、クライアント側コード、拡張機能、プラグイン、Webサービス、ワークフロー、セキュリティモデルなどを含む重要なコードサンプルが含まれています。 基本的に、SDKにはCRMを開始するために必要なすべての開発リソースが含まれています。 新しいプラグインプロジェクトのセットアップを計画している場合でも、CRMのWebサービスプロジェクトのセットアップを計画している場合でも、SDKは簡単なレベルから高度なレベルまでの基本的なアーキテクチャと例を提供します。 次に、SDKをダウンロードしてインストールする手順を見ていきます。

  • ステップ1 *-Microsoft Dynamics CRMのすべてのバージョンには、独自のSDKバージョンが付属しています。 適切なSDKバージョンを取得する最善の方法は、GoogleでそれぞれのCRMバージョンを検索することです。 たとえば、CRMバージョンが2015の場合、「Microsoft Dynamics CRM 2015 SDK」を検索してみてください。
  • ステップ2 *-ダウンロードしたら、exeセットアップを実行します。 続行をクリックします。
  • ステップ3 *-SDKを抽出する場所を選択するように求められます。 参照SDKを保持する適切な場所を選択します。
  • ステップ4 *-解凍したフォルダーを開きます。 ここからすべてのSDKコンテンツにアクセスできます。

結論

この章では、CRMオンラインアカウントを作成して環境を設定しました。 次に、このチュートリアルの以降の章で使用されるCRM SDKをダウンロードしました。 次回ログインするときにこれらの資格情報が必要になるため、アカウントを設定した資格情報を書き留めてください。

機能モジュール

Microsoft Dynamics CRM全体は、次の機能モジュールを中心に設計されています。

  • 売上高
  • マーケティング
  • サービス管理

これらの機能モジュールは、多くの場合*作業領域*と呼ばれます。

CRM機能モジュールについて

CRMアプリケーション全体は、さまざまなタイプのユーザーおよびチームに機能的に分割されています。 したがって、組織がCRMを使用してプロセスを管理している場合、営業チームのユーザーは営業モジュールに属する機能を使用し、マーケティングチームのユーザーはマーケティングモジュールに属する機能を使用します。

これら3つの機能モジュールはすべて一緒になって、新しい顧客の獲得(マーケティング)、サービスの販売(販売)、既存の顧客の維持(サービス管理)のライフサイクル全体を推進します。

Mscrm Sales Marketingカスタマーサービス

この流れをよりよく理解するために、クレジットカードを顧客に販売する銀行を考えてください。 クレジットカードを顧客に販売する一般的なライフサイクルは次のとおりです。 このライフサイクルの各ステップでは、Sales、Marketing、およびServiceモジュールがそれぞれの役割をどのように実行するかがわかります。

販売とマーケティング-銀行のコールセンターオフィスエグゼクティブは、潜在的な顧客のデータを受け取ります。 CRMのリードとしてよく呼ばれます。 これらのリードは、マーケティングキャンペーン、販売促進、紹介などを通じてCRMシステムに取り込まれます。

セールス-コールセンターのエグゼクティブは、電話/メール/などを通じてこれらのリードと通信します。 顧客がクレジットカードの提供に関心がある場合、リードレコードは商談レコード(勝ったリード)に変換されます。

サービス-顧客がシステムの一部になると、会社は支払い、請求、払い戻しなどを支援します。 顧客から質問や懸念がある場合はいつでも、コールセンターに電話をかけてインシデントを発生させます。 エグゼクティブは、顧客に質の高いサービスを提供することを目的として、ケースを解決するためにフォローアップします。 これらのタスクは、CRMサービス管理に分類されます。

CRMワークエリアのナビゲート

  • ステップ1 *-CRMホームページを開きます。
  • ステップ2 *-デフォルトでは、選択されたセールスワークエリアが表示されます。

Mscrmワークエリア

  • ステップ3 *-作業領域を変更するには、[作業領域を表示]オプションをクリックします。 Sales、Service、およびMarketingを選択するためのオプションが表示されます。

Mscrmワークエリアショー

  • ステップ4 *-[販売]をクリックします。 これにより、取引先、取引先責任者、リード、商談、競合他社など、販売に該当するすべてのエンティティが表示されます。 これらの各エンティティは、マイワーク、顧客、販売、担保などのビジネスプロセスごとに分類されます。

Mscrm Sales

  • ステップ5 *-同様に、マーケティング作業領域をクリックすると、マーケティングビジネス機能に関連するすべてのエンティティが表示されます。

Mscrm Marketing

販売モジュール

CRMの販売モジュールは、新規顧客の販売ライフサイクル全体を推進するように設計されています。 販売モジュールは、次のサブモジュールで構成されています-

リード-将来的に会社の潜在顧客になる可能性のある個人または組織を表します。 これは、システムで潜在的な顧客を獲得するための最初のステップです。

機会-顧客への潜在的な販売を表します。 リードがオファリングに関心を示すと、それは商談に変換されます。 機会は勝つか失われます。

アカウント-組織が関係を持つ会社を表します。 Opportunityが勝つと、アカウントまたは連絡先に変換されます。

連絡先-個人、または組織が関係している個人を表します。 ほとんどの場合、これらの連絡先は組織の顧客です(例: 銀行のすべてのクレジットカードの顧客)。 Opportunityが勝つと、アカウントまたは連絡先に変換されます。

競合他社-組織のすべての市場競合他社を管理します。

製品-組織が顧客に提供するすべての製品を管理します(例、すべてのクレジットカードプラン)。

見積-見込み客に送信される特定の価格で提案された製品またはサービスの正式なオファー(例、顧客に送信される特定のクレジットカードプランの年間価格設定)。

注文-顧客に受け入れられた見積もりは注文に変わります(例、組織が提供するすべてのプランのうち、6か月のサブスクリプションに行くことができます)。

請求書-請求された注文は請求書を生成します。

マーケティングモジュール

CRMのマーケティングモジュールは、既存および潜在的な顧客向けに組織のマーケティングプロセス全体を推進するように設計されています。 マーケティングモジュールは、次のサブモジュールで構成されています-

マーケティングリスト-連絡先、アカウント、およびリードをグループ化し、プロモーションメール、イベントの詳細、ニュースレター、およびターゲット顧客に関連するその他の更新を送信することにより、それらとやり取りする方法を提供します。 マーケティングリストを作成するための条件を定義できます(例、25〜35歳の連絡先)。

キャンペーン-キャンペーンは、有効性を測定し、新製品の導入や市場シェアの拡大などの特定の結果を達成するように設計されており、電子メール、新聞広告、YouTube広告などのさまざまな通信チャネルが含まれる場合があります

クイックキャンペーン-クイックキャンペーンはキャンペーンに似ていますが、1つのタイプのアクティビティにのみ関連付けることができます。

上記のすべてのマーケティングモジュールは、Salesモジュールと密接に連携して機能します。

サービス管理モジュール

CRMのサービス管理モジュールは、インシデントベースのサービスのサポート、サービススケジューリングを使用した顧客のサポートなど、組織の顧客サービス業務を集中、管理、および追跡するように設計されています。

サービス管理モジュールは、次のサブモジュールをカバーしています-

  • ケース(インシデント)-インシデント/ケースを介して追跡される顧客の要求、問題、または苦情をサポートします。 ケースは、問題解決プロセスのさまざまな段階を経て、最終的に解決されてクローズされます。
  • ナレッジベース-顧客が頻繁に尋ねるすべての一般的な質問と回答のマスターリポジトリを維持します。
  • 契約-契約は、顧客が持っているすべてのアクティブな契約を示すケースで動作します。
  • リソース/リソースグループ-サービスを提供するために使用される人、ツール、部屋、または機器の一部を表します。 これらのリソースを使用して、特定の顧客の問題を解決できます。
  • サービス-組織が顧客に提供するすべてのサービスを表します。
  • サービスカレンダー-組織で働くユーザーの仕事のタイミングとスケジュールをスケジュールするために使用されます。

活動管理

上記で説明したすべてのモジュールは、CRMのアクティビティ管理モジュールを使用します。 アクティビティは、電話、メール、手紙など、顧客とのあらゆる種類のやり取りを表します。 これらのアクティビティは、アカウント、連絡先、リード、ケースなど、前に説明したエンティティのいずれかに関連付けることができます。 デフォルトでは、CRMはすぐに使用できる次のタイプのアクティビティを提供します-

  • 電話
  • Eメール
  • Task
  • 予定
  • 定期的な予定
  • 文字
  • Fax
  • キャンペーンレスポンス
  • キャンペーン活動
  • サービス活動
  • カスタムアクティビティ

結論

この章では、CRMの3つの主要なモジュールであるセールス、マーケティング、サービス管理について学びました。 CRMで作業領域がどのように編成されているか、CRM組織のライフサイクル全体がどのように機能しているかを理解しました。 また、電話、電子メール、ファックス、およびその他の種類の顧客対話アクティビティを作成できるCRMのアクティビティ管理モジュールも検討しました。

エンティティと記録

すべてのCRMモジュールの機能の概要ができたので、CRMのエンティティとフォームについて学び、理解しましょう。

エンティティとは何ですか?

エンティティは、CRMでビジネスデータをモデル化および管理するために使用されます。 連絡先、ケース、アカウント、リード、商談、活動など データレコードを保持するすべてのエンティティです。 概念的には、CRMエンティティはデータベーステーブルと同等です。 たとえば、ContactsエンティティはContactレコードを保持し、CasesエンティティはCasesレコードを保持します。

すぐに使えるエンティティ(CRMにデフォルトで付属)とカスタムエンティティ(カスタマイズで作成可能)の両方を使用できます。 たとえば、顧客が読んだ本のデータを管理しているとします。 このため、すぐに使用できる連絡先エンティティを使用して顧客データを保存しますが、書籍データはどこに保存しますか? 書籍のデータを保存できるエンティティがありません。 このようなシナリオでは、Booksという名前の新しいカスタムエンティティを作成し、これを既存の連絡先エンティティに関連付けます。

このチュートリアルでは、雇用主と従業員をCRMに保存する例を見てみましょう。 この例を考慮に入れると、CRMはすぐに使用できる Contact エンティティを提供し、理想的にはすべての従業員を保存できます。 また、すべての雇用主を保存できる Account エンティティも提供します。 ただし、エンティティを学習するために、 Employer と呼ばれる新しいカスタムエンティティを作成します(既存のAccountエンティティは使用しません)。

新しいエンティティの作成

  • ステップ1 *-上部のリボンボタンをクリックし、続いて*設定*オプションをクリックします。 [カスタマイズ]セクションの[カスタマイズ]オプションをクリックします(次のスクリーンショットを参照)。

Mscrmエンティティ作成ステップ1

  • ステップ2 *-[システムのカスタマイズ]オプションをクリックします。

Mscrmエンティティ作成ステップ2

これにより、デフォルトのソリューションウィンドウが開きます。 次の章でCRMソリューションの詳細を学習しますが、ここではデフォルトのCRMソリューションを使用します。

Mscrmエンティティ作成ステップ2_2

  • ステップ3 *-左パネルから[エンティティ]オプションを展開します。

Mscrmエンティティの作成ステップ3

  • ステップ4 *-[新規]→[エンティティ]をクリックします。

Mscrmエンティティ作成ステップ4

  • ステップ5 *-エンティティフォームで、表示名にEmployer、PluralNameにEmployersを入力します。 [このエンティティを表示するエリア]セクションで、販売、サービス、マーケティングを確認します。 これらのオプションをオンにすると、CRMの[販売]、[サービス]、および[マーケティング]タブに新しく作成されたエンティティが表示されます。

Mscrmエンティティ作成ステップ5

  • ステップ6 *-[保存して閉じる]アイコンをクリックします。 これにより、CRMデータベースにバックグラウンドで新しいエンティティが作成されます。

Mscrmエンティティ作成ステップ6

  • ステップ7 *-Default Solutionの親ウィンドウに、新しく作成されたEmployerエンティティが表示されます。

Mscrmエンティティ作成ステップ7

  • ステップ8 *-上部のリボンバーから[すべてのカスタマイズを公開]オプションをクリックします。 これにより、これまでに行ったすべての変更が公開(コミット)されます。 [保存して閉じる]をクリックすると、このウィンドウを閉じることができます。

Mscrmエンティティ作成ステップ8

レコードを作成する

CRMは、システム内の貴重なデータを管理するためのものです。 このセクションでは、CRMでレコードを作成、開く、読み取る、削除する方法を学習します。 最後の章で作成した雇用主エンティティを継続します。

  • ステップ1 *-[作業エリアの表示]→[販売]→[拡張機能]→[雇用主]を使用して、雇用主エンティティレコードグリッドに移動します。

Mscrmアクセスエンティティステップ3

  • ステップ2 *-[新規]アイコンをクリックします。

Mscrmレコード作成ステップ1

これにより、デフォルトの新しい雇用者フォームが開きます。 このデフォルトのフォームには、編集可能なフィールド名が1つしかありません。 「名前」フィールドにEmployer 1と入力します。 [保存して閉じる]をクリックします。

Mscrmレコード作成ステップ2

ステップ3 *- *Active Employers ビューで、新しく作成された雇用主レコードを確認できます。

Mscrmレコード作成ステップ3

レコードへのアクセス

CRMで作成済みのレコードにアクセスするには、そのエンティティページに移動します。 この例では、[作業エリアを表示]→[販売]→[拡張機能]→[雇用主]に移動します。 グリッドに存在するレコードのリストが表示されます。 雇用主レコードをクリックしてアクセスします。

Mscrmレコード作成ステップ3

レコードを更新する

レコードを開いたら、フォームの詳細を編集するだけです。 デフォルトでは、CRM 2015には、変更後30秒でフォームに加えられた変更を保存する自動保存オプションが付属しています。 または、Ctrl + Sをクリックします。

Mscrmレコードの編集

自動保存機能を無効にする場合は、設定→管理→システム設定→すべてのフォームの自動保存を有効にして、いいえを選択します。

Mscrm自動保存を無効にする

レコードを削除する

  • ステップ1 *-削除する1つまたは複数のレコードを選択し、[削除]ボタンをクリックします。

Mscrm Delete Records.jpg

  • ステップ2 *-[削除]をクリックして、レコードの削除を確認します。

Mscrmレコード削除の確認

結論

上記の例に見られるように、デフォルトの雇用者フォームにはフィールドが1つしかありませんでした。 ただし、実際のシナリオでは、フォームに多くのカスタムフィールドがあります。 たとえば、サンプルの連絡先レコード(すぐに使えるCRMエンティティ)を見ると、フルネーム、メール、電話、住所、ケースなどの連絡先情報を保存するための多くのフィールドがあります。

Mscrmレコード作成ステップ4

次の章では、このデフォルトのフォームを編集し、さまざまなタイプのフィールドを追加する方法を学びます。

Microsoft Dynamics CRM-フィールド

カスタムフォームをCRMフォームに追加する方法を学ぶ前に、CRMでサポートされているデータフィールドのタイプを見てみましょう。

フィールドタイプ

すぐに使えるCRMには、フォームに配置できる11種類のデータフィールドがあります-

  • テキストの単一行
  • オプションセット(ドロップダウン)
  • 2つのオプション(ラジオボタン)
  • 画像
  • 整数
  • 浮動小数点数
  • 10進数
  • 通貨
  • テキストの複数行
  • 日時 *見上げる

次の表に、それぞれの簡単な説明を示します。

Sr.No Field Type & Description
1
  • Single Line of Text*

このフィールドには、最大4000文字のテキストが保存されます。 形式は、電子メール、テキスト、テキスト領域、URL、ティッカーシンボル、および電話のいずれかとして指定することもできます。 これらのそれぞれに対して、最大長とIMEモードを設定できます。

2

Option Set (Dropdown)

このフィールドには、それぞれが数値とラベルを持つオプションのセットが格納されます。 つまり、CRMのドロップダウンフィールドです。 複数のフォームで使用できるグローバルオプションセットを定義することもできます。

3

Two Options (Radio Button)

このフィールドには、ユーザーが選択する2つのオプション(0または1)があります。 つまり、ラジオボタンフィールドです。

4

Image

エンティティに画像フィールドがある場合、アプリケーションでレコードの画像を表示するように構成できます。

5

Whole Number

このフィールドには、-2,147,483,648〜2,147,483,647の整数値が格納されます。 None、Duration、Time Zone、Languageなどの指定形式をサポートしています。 最小値と最大値も設定できます。

6

Floating Point Number

このフィールドには、0.00〜1,000,000,000.00の精度の小数点以下5桁までの浮動小数点数が格納されます。 最小値と最大値も設定できます。

7

Decimal Number

このフィールドには、値が-100,000,000,000.00〜100,000,000,000.00の範囲で最大10個の小数点が格納されます。

8

Currency

このフィールドは、922,337,203,685,477.0000から922,337,203,685,477.0000の範囲の通貨値を格納するために使用されます。 また、精度を価格10進数、通貨精度、または0〜4の任意の値として指定することもできます。

9

Multiple Lines of Text

これはスクロールテキストボックスです。 このフィールドの最大文字数を設定できます。

10

Date and Time

このフィールドは、日付に関連するデータを、日付のみ、日付と時刻の2つのサポートされている形式でCRMに保存するために使用されます。 また、ユーザーローカル、日付のみ、およびタイムゾーン非依存として動作を指定できます。

11

Lookup

既に作成されているが、まだ別のルックアップフィールドで使用されていないエンティティリレーションシップを使用して、ルックアップフィールドを作成できます。 エンティティフォームにルックアップフィールドを作成すると、関係が自動的に生成されます。 ルックアップフィールドは、リレーションシップフィールドとして作成されます。

Microsoft Dynamics CRM-フォーム

最後の2つの章では、新しいエンティティの作成、CRMで利用可能な新しいレコードとフィールドのタイプの作成について学習しました。 この章では、CRMフォームに新しいフィールドを追加する方法を学習します。

前の章で学習した11種類のデータフィールドのうち、雇用者は3種類のフィールドを使用します-オプションセット(ドロップダウン)、複数行のテキスト、日時。 Option Setフィールドは雇用主タイプを保存するために使用され、Multiple Lines of Textは雇用者の簡単な説明を保存するために使用され、DateTimeフィールドは会社が設立された日付を保存するために使用されます。 注意:フォームには、1行のテキストタイプである名前フィールドが既にあります。

フォームにフィールドを追加する

  • ステップ1 *-上部のリボンボタンをクリックし、続いて*設定*オプションをクリックします。 [カスタマイズ]セクションの[カスタマイズ]オプションをクリックします(下のスクリーンショットを参照)。

Mscrmエンティティ作成ステップ1

  • ステップ2 *-[システムのカスタマイズ]オプションをクリックします。

Mscrmエンティティ作成ステップ2

これにより、DefaultSolutionウィンドウが開きます。 次の章でCRMソリューションの詳細を学習しますが、ここではデフォルトのCRMソリューションを使用します。

Mscrmエンティティ作成ステップ2_2

  • ステップ3 *-左パネルから[エンティティ]オプションを展開します。

Mscrmエンティティの作成ステップ3

  • ステップ4 *-展開されたエンティティから、雇用者を選択します。 これにより、右側のウィンドウにエンティティの詳細が開きます。 左側のパネルから[雇用者]オプションを展開すると、フォーム、ビュー、チャート、フィールド、およびその他のいくつかのオプションが表示されます。

Mscrm新しいフィールドの追加ステップ4

  • ステップ5 *-[フィールド]をクリックします。 このエンティティを作成したときにデフォルトで表示されたすべてのフィールドを示すグリッドが開きます。

Mscrm Add New Field Step 5

  • ステップ6 *-[新規]ボタンをクリックします。 開いた新しいウィンドウで、次の詳細を入力します-

表示名-雇用主の種類

名前-このフィールドは、選択した表示名に基づいて自動的に入力されます。 ただし、変更する場合は変更できます。

データタイプ-オプションセット。 データセットをオプションセットとして選択するとすぐに、オプションパネルが表示されます。 プラス(+)アイコンをクリックすると、デフォルトのラベルがアイテム、デフォルトの値が100,000,000の新しいオプションセットアイテムが作成されます。 このアイテムのラベルを変更して、雇用主タイプを表す4つのオプションを追加できます:プライベート、政府、多国籍、パブリック。

Mscrm新しいフィールドの追加ステップ6

  • ステップ7 *-上部のリボンから[保存して閉じる]をクリックします。 Employer Typeフィールドが正常に作成されました。
  • ステップ8 *-雇用者タイプフィールドを追加するために行ったことと同様に、以下のスクリーンショットで説明および表示されているように、他の3つのフィールドを追加します-

従業員数-これは整数フィールドになります。

*Founded On* -これはDateTimeフィールドになります。

雇用者の説明-これは複数行のテキストフィールドになります。

Mscrm新しいフィールドの整数を追加

Mscrm新しいフィールドの日付時刻の追加

Mscrm新しい複数行のテキストの追加

  • ステップ9 *-雇用主フォームにこれらの新しいフィールドを追加します。 このためには、左側のナビゲーションの「雇用者エンティティ」の下にある「フォーム」をクリックします。 これにより、情報という名前の2つのフォームが表示されます。 デフォルトでは、CRMは2つのフォーム、MainとMobile-Expressを作成します。 メインフォームをクリックします。

Mscrm新しいフィールドの追加ステップ9

  • ステップ10 *-右側の[フィールドエクスプローラー]パネルで、新しく追加されたフィールドを確認できます。

Mscrm新しいフィールドの追加ステップ10

  • ステップ11 *-[全般]タブでこれらのフィールドをドラッグアンドドロップします。

Mscrm新しいフィールドの追加ステップ11

  • ステップ12 *-[保存]をクリックし、[公開]をクリックします。
  • ステップ13 *-更新フィールドを使用して雇用主レコードを作成できるようになりました。 [CRMホーム]→[販売]→[雇用主]→[新規]に移動します。 今回開く新しいフォームには、この章で追加したすべての新しいフィールドが含まれます。 詳細を入力して、[保存して閉じる]をクリックします。

Mscrm Add New Field Step 13

結論

この章では、CRMフォームの使用方法と、さまざまなタイプのフィールドをフォームに配置してカスタマイズする方法を学びました。 また、フォームに必要なだけフィールドを追加し、ビジネス要件に応じてさまざまなタブやセクションを使用してフィールドを配置することも学びました。

Microsoft Dynamics CRM-検索

Microsoft Dynamics CRMは、長年にわたって大幅に進化した巨大な製品です。 この製品には、システムに組み込まれている多くのすぐに使える機能が備わっています。 これらの機能を利用するためのコードを記述する必要はありません。 すぐに使用できる重要な機能の1つは、高度なクエリおよびフィルタリング機能をサポートするという点で、CRMの検索機能です。

クイック検索

既定では、CRMのすべてのエンティティのグリッドビューは、右上の検索バーを使用したクイック検索機能をサポートしています。 以下は、連絡先エンティティのクイック検索のスクリーンショットです。

Mscrmクイック検索バー

「Robert」などの検索文字列を入力すると、一致するすべてのレコードが返されます。

検索キーワードの前に*を付けることができます。 (アスタリスク)ワイルドカード検索を実行します。

-Microsoft Dynamics CRMのWebクライアントバージョンを使用する場合、クイック検索は、選択したビューに関係なく、常にすべてのアクティブレコードを検索します。

クイック検索をカスタマイズして(他のビューをカスタマイズするなど)、フィルター条件の変更、並べ替えの構成、ビュー列の追加、検索列の追加、その他のプロパティの変更を行うことができます。

高度な検索

拡張検索を使用すると、CRMの任意のエンティティのレコードを検索できます。 これは、CRMですぐに使用できる最も強力で最も便利な機能の1つです。 高度な検索アイコンは、現在の画面に関係なく、Microsoft Dynamics CRMの上部のリボンバーに表示されます。

Mscrm詳細検索バー

[高度な検索]アイコンをクリックして、[高度な検索]ウィンドウを開きます。 このウィンドウでは、レコードを検索するエンティティを選択し、フィルタリングとグループ化の基準を適用し、高度な検索ビューを個人用ビューとして保存できます。

例を見てみましょう。 Robertを含むFirstNameで離婚しているすべての連絡先を検索するとします。 このために-

  • ステップ1 *-[検索対象]ドロップダウンから[連絡先]を選択します。 このドロップダウンには、システムに存在するすべてのエンティティが含まれます。
  • ステップ2 *-次のスクリーンショットに示すように、検索条件を入力します。 検索クエリパラメータは必要な数だけ追加できます。 グループパラメータを使用して、このような基準をグループ化することもできます。 たとえば、名がRobertまたはMarkであるすべての連絡先を検索する場合、2つの検索条件を追加し、GroupORを使用してそれらをグループ化できます。

Mscrm高度な検索クエリ結果グループ

  • ステップ3 *-[結果]ボタンをクリックします。 一致したレコードが新しいタブに表示されます。

Mscrm高度な検索クエリ結果

  • ステップ4 *-[列の編集]をクリックして、検索結果に表示する列を編集することもできます。 たとえば、現在のグリッドには、氏名と勤務先電話の2つの列のみが含まれています。 ただし、このグリッドにメールIDの追加の列を追加したい場合は、このオプションを使用して追加できます。

カスタムビューの保存

この段階で、フィルターと編集された列とともにこの検索条件を保存する場合は、[保存]ボタンをクリックして保存できます。 保存すると、そのエンティティページにいるときにこの保存ビューを使用できます。

Mscrmカスタムビューの保存

たとえば、カスタマーエグゼクティブとして、通常とプレミアムの2種類の顧客にサービスを提供するとします。 したがって、これらの各カテゴリで高度なフィルターを作成し、自分に割り当てられた通常の連絡先および自分に割り当てられたプレミアム連絡先として保存できます。 その後、システムを使用するたびにクイック検索や高度な検索を実行することなく、連絡先エンティティページから直接これらのビューにすばやくアクセスできます。

Microsoft Dynamics CRM-Webリソース

CRMのWebリソースは、CRMデータベースに保存され、CRMでWebページ機能を実装するために使用される仮想Webファイルです。 これらのファイルは、HTML、JScript、Silverlight、またはその他のサポートされているタイプのものです。

CRMは製品であり、豊富な機能と機能が備わっています。 ただし、ほとんどの場合、これらの既存の機能を拡張して、カスタム要件を満たす必要があります。 これらの機能の拡張は、一般に2つの方法で行われます-

  • クライアント側の拡張-Webリソースとフォームスクリプトの使用。
  • サーバー側での拡張-プラグイン、ワークフロー、およびWebサービス(この部分については、今後の章で説明します)。

Webリソースの使用

上記のように、クライアント側でCRMを拡張することは、Webリソースの出番です。 これを明確に理解するには、次のユースケースを考慮してください-

  • 特定のフィールドを含むCRMフォームがあります。 CRMは、必須フィールド、フィールド長などの基本的な検証のためのすぐに使える機能を提供します。 ただし、入力した電話番号が正しい形式であるかどうかを検証する、入力した住所が実際に存在するかどうか、または入力したSSNが正しいかどうかを検証するなど、より複雑な検証が必要な場合はどうでしょうか?
  • CRMは、フォーム上のセクションやタブの作成、フィールドの再配置など、すぐに使用できるUIカスタマイズを提供します。 しかし、クライアントが他のERPシステムから来た顧客のすべての情報を表示するカスタムページを作成したい場合はどうなりますか?
  • CRMには、すべてのボタンとオプションを含む標準のリボンバーが付属しています。 独自のリボンボタンを追加する場合はどうなりますか?
  • すでにERPシステムが設置されていることを考慮してください。 このERPシステムからいくつかのCRM画面を開きたい場合はどうなりますか?
  • サーバー側のプラグインコードで外部Webサービスをいつでも呼び出すことができます。 ただし、クライアント側にいる間に外部のWebサービスを呼び出したい場合はどうでしょうか?

これらすべての「What ifs」に対する答えは、Webリソースです。 すべてのWebリソースには、固有のURLを介してアクセスできます。 Webリソースファイルをアップロードするか、コードベースのリソース(HTML、Jscriptなど)の場合は、CRM内で直接編集することもできます。 WebリソースはCRM内に保存されるため、CRMのカスタマイズとともに、ある環境から別の環境に簡単に移行できます。

Webリソースの種類

Type of Web Resource Sample Application in CRM
WebPage (HTML) You may want to create any custom HTML page such as maps, custom application page, etc. and place it inside your CRM form.
Style Sheet (CSS) Any CSS files that will be used together with the HTML files.
Script (JScript) Any client-side logic such as validations, manipulating field values, etc.
Data (XML) Can be used to store any static settings or configuration data.
Image (PNG,JPG,GIF, ICO) Any images used in the application on ribbon buttons, icons, forms, etc.
Silverlight (XAP) Any custom Silverlight application embedded within CRM.
StyleSheet (XSL) Used to transform XML data.

これらすべての種類のWebリソースのうち、最も重要な種類のWebリソースであるHTML WebリソースとJScript Webリソースについては、以降の章で学習します。

任意のエンティティのWebリソースへのアクセス

データベースに保存されているすべてのWebリソースには、CRMでアクセスできます。 含まれる手順は次のとおりです-

  • ステップ1 *-[設定]→[カスタマイズ]→[システムのカスタマイズ]に移動します。

ステップ2 *-左側のナビゲーションから、 *Web Resources を選択します。 現在、まだ何も作成していないため、Webリソースを表示することはできません。

Mscrm Access Webリソースステップ1

次の章では、Webリソースの作成方法を検討します。

JScript Webリソース

JScript Webリソースは、おそらくMicrosoft Dynamics CRMで使用する最も重要な種類のWebリソースです。

CRMでのJavaScriptのアプリケーション

フォームイベントプログラミング

フォームイベントプログラミングは、ユーザーがフォームを開いたとき、データを変更したとき、タブを移動したときなど、クライアント側の動作を処理するために使用されます。 このようなクライアント側の対話を実現するには、JavaScriptコードを記述し、CRMでJScript Webリソースとして追加します。 ただし、記述するJavaScriptコードは、標準のJavaScript DOMではなく、Dynamic CRMのXrm.Pageモデルを使用する必要があります。 Xrm.Pageモデルの使用は、このモデルを使用して作成したコードがCRMの将来のバージョンと互換性があることを保証するMicrosoftのコーディング方法です。

Webリソース

フォームイベントプログラミングで使用されることに加えて、JavaScriptは次のようなCRMの他のアプリケーションで使用されます-

  • 一意のURLでフォーム、ビュー、およびダイアログを開きます。
  • ODataおよびSOAPエンドポイントを使用して、Webサービスと対話します。
  • 他のWebリソース(HTML Webリソースなど)内のJavaScriptコードの参照。

このような場合、JavaScriptコードを(Xrm.Pageモデルを使用して)作成し、CRMのJScript Webリソースとして追加すると、一意のURIでどこからでも参照できます。

リボンのカスタマイズ

最後に、JavaScriptの他の一般的な使用法の1つは、次のようなリボンのカスタマイズを処理することです-

  • いくつかのロジックに基づいてリボンボタンを表示/非表示
  • 何らかのロジックに基づいてリボンボタンを有効/無効にする *特定のリボンボタンをクリックしたときの処理

このようなシナリオを処理するには、JavaScriptロジックを(Xrm.Pageモデルを使用して)作成し、JScript Webリソースとして追加します。 このWebリソースは、リボンボタンのXMLで参照でき、リボンボタンを表示/非表示にするか、有効/無効にするか、クリックイベントを処理するかを確認するために呼び出すJScriptファイルのメソッドを指定できます。

Xrm.Pageオブジェクトモデル

以下は、使用可能な名前空間、オブジェクト、およびそれらのコレクションを示すXrm.Pageオブジェクトの階層です。 これらのプロパティを使用して、JScriptコードを記述します。

XRMページオブジェクトモデル

ネームスペース

Sr.No Object & Description
1
  • Context*

組織の詳細、ログインしているユーザーの詳細、クエリ文字列でフォームに渡されたパラメーターなど、コンテキスト固有の情報を取得するメソッドを提供します。

2

Data

エンティティデータおよびメソッドへのアクセスを提供して、フォーム内およびビジネスプロセスフロー制御内のデータを管理します。

3

UI

フォームのいくつかのサブコンポーネントのコレクションに加えて、ユーザーインターフェイスに関する情報を取得するメソッドが含まれています。

オブジェクト

Sr.No Object & Description
1

Entity

メソッドを提供します-

  • レコード情報を取得する
  • 保存方法 *コレクション属性
2
  • Process*

ビジネスプロセスフローのプロパティを取得するメソッド。

3

Navigation

アイテムコレクションを使用してナビゲーションアイテムへのアクセスを提供します。

4

FormSelector

Itemsコレクションを使用して、ユーザーが利用可能なフォームにアクセスします。 また、ナビゲーションメソッドを使用して、フォームを閉じたり開いたりします。

5

Stages

各プロセスには、プロセスのgetStagesメソッドを使用してアクセスできるステージのコレクションがあります。

6

Steps

各ステージは、ステージのgetStepsメソッドを使用してアクセスできるさまざまなステップで構成されています。

コレクション

Sr.No Collections & Description
1

Attributes

フォームで利用可能なエンティティ属性へのアクセスを提供します。

2

Controls

  • ui.controls* -フォームに存在する各コントロールへのアクセスを提供します。 *attribute.controls* -属性内のすべてのコントロールへのアクセスを提供します。 *section.controls* -セクション内のすべてのコントロールへのアクセスを提供します。
3

Items

フォーム上のすべてのナビゲーション項目へのアクセスを提供します。

4

Tabs

フォーム上のすべてのタブへのアクセスを提供します。

5

Sections

フォーム上のすべてのセクションへのアクセスを提供します。

フォームプログラミングでサポートされるイベント

Xrm.Pageモデルを使用したフォームプログラミングでは、次のフォームイベントを処理することができます-

  • onLoad
  • onSave
  • onChange
  • TabStateChange
  • OnReadyStateComplete
  • 事前検索
  • ビジネスプロセスフロー制御イベント

フォームプログラミングの例

この例では、ユーザーが選択したPreferredMethodofCommunicationに基づいて、Contactフォームに検証を行います。 したがって、ユーザーが電子メールとして好みの方法を選択した場合、電子メールフィールドは必須になり、電話とファックスの他のフィールドでも同様になります。

ステップ1 *- *contacts.js という名前のJavaScriptファイルを作成し、次のコードをコピーします。

function validatePreferredMethodOfCommunication() {

  //get the value of Preffered Method of Communication code
   var prefferedContactMethodCode =
      Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();

  //if Preferred Method = Any, make all fields as non-mandatory

  //else if Preferred Method = Phone, make Mobile Phone field mandatory
  //and all other fields as non-mandatory

  //else if Preferred Method = Fax, make Fax field mandatory
  //and all other fields as non-mandatory

   if(prefferedContactMethodCode == 1) {
      clearAllMandatoryFields();
   }
   if(prefferedContactMethodCode == 2) {
      clearAllMandatoryFields();
      Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required');
   } else if(prefferedContactMethodCode == 3) {
      clearAllMandatoryFields();
      Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required');
   } else if(prefferedContactMethodCode == 4) {
      clearAllMandatoryFields();
      Xrm.Page.getAttribute('fax').setRequiredLevel('required');
   }
}
function clearAllMandatoryFields() {

  //clear all mandatory fields
   Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none');
   Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none');
   Xrm.Page.getAttribute('fax').setRequiredLevel('none');
}
  • ステップ2 *-[設定]→[カスタマイズ]→[システムのカスタマイズ]→[連絡先エンティティ]→[フォーム]→[メインフォーム]に移動して、連絡先エンティティフォームを開きます。
  • ステップ3 *-[フォームのプロパティ]をクリックします。

フォームプログラミングフォームのプロパティ

  • ステップ4 *-[フォームのプロパティ]ウィンドウで、[追加]をクリックします。

フォームプログラミングフォームライブラリの追加

  • ステップ5 *-新しいWebリソースを作成しているため、次の[Webリソースレコードの検索]ウィンドウで[新規]をクリックします。

フォームプログラミングフォームライブラリの新規追加

  • ステップ6 *-[新しいWebリソース]ウィンドウで、次の詳細を入力します-

名前-new_contacts.js

表示名-contacts.js

タイプ-JScript

ファイルのアップロード-ローカルマシンから作成したJavaScriptファイルをアップロードします。

フォームプログラミングWebリソースNew

  • ステップ7 *-[保存]、[公開]の順にクリックします。 この後、ウィンドウを閉じると、Look Up Web Resource Recordウィンドウに戻ります。
  • ステップ8 *-ここで、new_contacts.js Webリソースを確認できます。 それを選択して、「追加」をクリックします。 これで、新しいWebリソースが正常に追加され、フォームに登録されました。

フォームプログラミングWebリソースの追加

  • ステップ9 *-次に、優先通信方法フィールドの変更にイベントハンドラを追加します。 このイベントハンドラーは、作成したJavaScript関数を呼び出します。 [イベントハンドラー]セクションから次のオプションを選択します。
*Control* -優先される通信方法

イベント-OnChange

次に、次のスクリーンショットに示すように、[追加]ボタンをクリックします。

フォームプログラミング追加された新しいフォームライブラリ

  • ステップ10 *-ハンドラープロパティの次のウィンドウで、変更イベントが発生したときに呼び出すメソッドを指定します。

ライブラリをnew_contacts.jsとして、関数をvalidatePreferredMethodOfCommunicationとして選択します。 OKをクリックしてください。

フォームプログラミング追加ハンドラー

  • ステップ11 *-フォームライブラリ(Webリソース)とそれに登録されたイベントを表示できるようになります。 OKをクリックしてください。

フォームプログラミング追加ライブラリハンドラ

  • ステップ12 *-[保存]、[公開]の順にクリックします。

フォームプログラミングパブリッシュカスタマイズ

  • ステップ13 *-連絡先フォームを開き、優先する通信方法を電話に設定します。 これにより、[携帯電話]フィールドが必須になります。 携帯電話番号を入力せずにこの連絡先を保存しようとすると、「携帯電話に値を入力する必要があります」というエラーが表示されます。

フォームプログラミングの検証

結論

この章では、CRMのJavaScriptの3つの重要なアプリケーションを理解することから始めました。 後で、Xrm.Pageモデルを調査し、それを使用して、フォームプログラミングを例とともに学習しました。

HTML Webリソース

この章では、Microsoft Dynamics CRMのさまざまなWebリソースについて学習します。

HTML Webリソースのアプリケーション

CRMのHTML Webリソースには、ブラウザーでレンダリングできるHTMLコンテンツを含めることができます。 HTML Webリソースを使用する次のシナリオを検討してください-

  • CRM画面内に表示する静的なHTMLページがあります。
  • いくつかの入力パラメーターを想定し、それらの入力パラメーターに基づいてレンダリングされるカスタムHTMLページがあります。 たとえば、外部APIまたはWebサービスから情報を取得していて、これをCRMに表示するとします。
  • 標準のCRM UIとは異なるルックアンドフィールでいくつかの情報を表示する必要があります。

入力パラメーターに基づいてレンダリングされるカスタムASPXページ(CRMアプリケーションの外部)があります。 CRMではASPX Webリソースを使用できないため、HTML Webリソースを作成し、このHTMLページから外部ASPXページを呼び出すことができます。

HTML Webリソースの例

「Welcome to finddevguides」というカスタムテキストを表示する非常にシンプルなHTML Webリソースを作成します。 これはHTML Webリソースの非常に単純な例であることに注意してください。 実際には、HTML Webリソースはこれよりも複雑になります。

ステップ1 *- *sampleHTMLWebResourcel という名前のHTMLファイルを作成し、次のコードをコピーします。

<!DOCTYPE html>
<htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml">
   <head>
      <metacharset = "utf-8"/>
      <title>Welcome to Tutorials Point</title>
   </head>

   <body>
      <h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1>
   </body>
</html>
  • ステップ2 *-最初に、新しいWebリソースを作成し、連絡先フォームで参照します。 DefaultSolutionを開き、左側のパネルから[WebResources]タブに移動します。 新規をクリックします。

HTML Webリソースステップ2

  • ステップ3 *-新しいWebリソースウィンドウが開きます。 次のスクリーンショットに示すように詳細を入力し、ステップ1で作成したHTMLファイルを参照します。 [保存して公開]をクリックします。 窓を閉めて。

HTML Webリソースステップ3

  • ステップ4 *-新しいWebリソースがWebリソースグリッドに追加されます。

HTML Webリソースステップ4

  • ステップ5 *-設定→カスタマイズ→システムのカスタマイズ→連絡先→メインフォームから連絡先フォームを開きます。 [連絡先情報]セクションを選択し、上部のリボンバーから[挿入]タブに切り替えます。 Webリソースをクリックします。

HTML Webリソースステップ5

  • ステップ6 *-[Webリソースの追加]ウィンドウが開きます。 このウィンドウからWebリソースルックアップをクリックすると、Webリソースルックアップレコードウィンドウが開きます。 作成したWebリソース(new_sampleHTMLWebResource)を検索し、グリッドから選択して、[追加]をクリックします。

HTML Webリソースステップ6

  • ステップ7 *-Webリソースの追加に戻って、次のスクリーンショットに示すように名前とラベルを入力し、[OK]をクリックします。 窓を閉めて。

HTML Webリソースステップ7

[アドレス]フィールドの下に追加されたHTML Webリソースが表示されます。

HTML Webリソースステップ8

  • ステップ8 *-これをテストするには、連絡先レコードを開くと、そこにHTML Webリソースコンテンツが表示されます。

HTML Webリソースステップ9

HTML Webリソースの制限

  • HTML Webリソースでサーバー側のコードを使用する方法はサポートされていません。
  • HTML Webリソースは、限られた数のパラメーターのみを受け入れます。 dataパラメーターで複数の値を渡すには、もう一方の端にデコードロジックを含むパラメーターをエンコードする必要があります。

ワークフロープロセス

CRMのワークフローを使用すると、CRM内のシンプルで複雑なビジネスプロセスを自動化できます。 すぐに使えるCRM機能を使用してワークフローを作成するか、複雑なワークフローを実装するための.NETコードでカスタムワークフローを作成できます。 ワークフロープロセスはバックグラウンドまたはリアルタイムで実行され、オプションでユーザー入力が必要になる場合があります。

ワークフローは、特定の条件に基づいてトリガーすることも、ユーザーが手動で開始することもできます。 内部的には、CRMワークフローはWindows Workflow Foundationを使用して実装されます。 この章では、ワークフローの構成について学習します。

ワークフローの構成には、次の主要な部分があります(順番に)-

  • ワークフローを実行するエンティティを構成します
  • ワークフローを同期的に実行するか非同期的に実行するかを構成します
  • ワークフローを実行するメッセージ(イベント)を構成します
  • ワークフローを実行するスコープを構成します
  • ワークフローのステージとステップ(アクション)を構成する

同期/非同期ワークフロー

ワークフローを作成すると、ワークフローをリアルタイム(同期)またはバックグラウンド(非同期)のどちらで実行するかを決定する[このワークフローをバックグラウンドで実行(推奨)]オプションが表示されます。

一般に、推奨されるアプローチは、使用可能な場合にシステムリソースを使用するため、バックグラウンドでワークフローを実行することです。 ただし、リアルタイムワークフローからバックグラウンドワークフロー、またはその逆にいつでも切り替えることができます。

ワークフローメッセージ

ワークフローは、次のように特定のイベントに登録できます-

  • レコードが作成されたとき
  • レコードの状態が変化したとき
  • レコードが割り当てられたとき
  • レコードフィールドの値が変更されたとき
  • レコードが削除されたとき

ワークフローの範囲

ワークフローを使用すると、ワークフローを実行する範囲を設定できます。 サポートされているワークフローの範囲は次のとおりです-

User Workflow will run only on the records owned by the same user as the workflow user.
Business Unit Workflow will run on the records owned by the users of the business unit same as the workflow user.
Parent Child Business Units Workflow will run on the records owned by the users of the business unit same as the workflow user as well as any child business units.
Organization Workflow will run on records owned by any user in CRM.

ワークフローの手順

CRMのワークフローは、ワークフローが従う一連のステップの組み合わせです。 これらのステップを論理的な段階に分割することもできます。 次の手順は、CRMワークフローでサポートされています-

Conditional Steps

|Check Condition |Specifies a logical “if (condition) - then” statement. |Conditional Branch |Specifies a logical “else – if – then” statement. This can only be used with a Check Condition. |Default Action |Specifies a logical “else” statement. This can only be used with a Check Condition.

Wait Steps

|Wait Condition |Waits until a specific condition is met. Not applicable for real-time workflows. |Parallel Wait Branch |Specifies an alternative wait condition with a set of additional steps that can be performed once the initial criteria is met.

Action Steps

|Create Record |Creates a record of the specified entity with the specified default values. |Update Record |Updates the selected record with specified or dynamic values. |Assign Record |Assigns the selected record to a user or team. |Send Email |Sends an email. |Perform Action |Specifies the custom workflow steps (and actions). These custom steps have to be developed by a CRM developer. |Change Status |Changes the status of the selected record. |Stop Workflow |Stops the current workflow

ワークフローの例

この例では、バックグラウンドで実行される単純なワークフローを作成し、新しく作成された連絡先レコードを特定のユーザーに割り当てて、顧客にウェルカムメールを送信します。

  • ステップ1 *-[設定]→[プロセス]に移動します。

Mscrm Create Workflow Step 1

  • ステップ2 *-[新規]をクリックします。
  • ステップ3 *-CreateProcessウィンドウで、次の詳細を入力します-

プロセス名-新しい顧客ワークフロー(これは任意の名前にすることができます)

カテゴリ-ワークフロー

エンティティ-連絡先(これは、ワークフローを作成するエンティティになります。 私たちの場合は連絡先です)

このワークフローをバックグラウンドで実行する(推奨)-バックグラウンドの非同期ワークフローを作成しているため、このオプションをオンにします。 最後に、[OK]をクリックします。

Mscrm Create Workflow Step 3

  • ステップ4 *-[新しいプロセス]ウィンドウで、次の詳細を入力します-

アクティブ化-プロセス

スコープ-ユーザー

開始時に-レコードが作成されます

ステップの追加→レコードの割り当てをクリックします。

Mscrm Create Workflow Step 4

ステップ5 *-ワークフローに新しいステップが追加されます。 このステップでは、作成されたすべての連絡先を割り当てるユーザーを指定します。 ステップの名前を「 *Assign Record to Team 」と入力します。 Assignオプションは、ワークフローを作成するエンティティとしてデフォルトで設定されます(この場合はContact)。 Lookupアイコンをクリックします。

Mscrm Create Workflow Step 5

  • ステップ6 *-[検索]ウィンドウで、必要なユーザーを選択します。 レコードを割り当てる特定のチームを選択することもできます。 追加をクリックします。

Mscrm Create Workflow Step 6

  • ステップ7 *-[ステップの追加]→[メールの送信]をクリックして、別のステップを追加します。 このステップでは、顧客へのメール送信を設定します。

Mscrm Create Workflow Step 7

  • ステップ8 *-新しいステップが追加されます。 名前を「顧客にメールを送信」と入力します。 プロパティの設定をクリックします。

Mscrm Createワークフローステップ8

  • ステップ9 *-メールを設定する次のウィンドウで、次の操作を実行します-
*From* -Fromフィールドをクリックします。 右側のパネルで、OwningUserとUserを選択します。 [追加]→[OK]をクリックします。
*To* -Toフィールドをクリックします。 右側のパネルで、「連絡先」および「連絡先」を選択します。 [追加]→[OK]をクリックします。

件名-関連する件名を入力します。

*Body* -関連するBodyコンテンツを入力します。

Mscrm Create Workflow Step 9

  • ステップ10 *-[保存]をクリックし、[アクティブ化]をクリックします。

Mscrm Create Workflow Step 10

  • ステップ11 *-後続のプロセスアクティブ化確認ポップアップで、アクティブ化をクリックします。

Mscrm Create Workflow Step 11

  • ステップ12 *-[連絡先]タブに移動して、新しい連絡先を作成します。 レコードを保存して新しい連絡先を作成するとすぐに、ワークフローで構成したユーザーに設定された[所有者]フィールドが表示されます。 また、[アクティビティ]タブをクリックすると、この連絡先に対して作成されているメールアクティビティが表示されます。 これにより、ワークフローが正常に実行されたことが確認されます。

Mscrm Create Workflow Step 12

ワークフローとプラグイン

ワークフローとプラグインの両方を使用して、CRM機能を拡張および自動化できます。 多くのシナリオでは、両方のアプローチを相互に置き換えて使用できます。 たとえば、顧客にメールを送信するという単純な要件がある場合、プラグインまたはワークフローを介してそれを行うことができます。

では、ワークフローを作成するかプラグインを作成するかをどのように選択しますか? 次のリストは同じことを説明しようとします-

  • プラグインとワークフローの両方を使用して同期および非同期ロジックを実行できますが、プラグインは一般に同期ロジックに優先され、ワー​​クフローは非同期ロジックに優先されます。
  • 一般に、複雑なビジネスロジックを実装するには、ワークフローよりもプラグインが優先されます。 比較的簡単な機能(電子メールの送信、ユーザーの割り当てなど)を実現する場合は、ワークフローが優先されます。
  • プラグインはコーディングを使用して開発する必要がありますが、ワークフローは、ワークフローの知識がなくてもビジネスユーザーが直接構成できます。
  • ワークフローはオンデマンドで実行できます。 したがって、ユーザーが何らかのロジックを手動で実行したいという要件がある場合、ワークフローの方が適しています。
  • パフォーマンスへの影響から、同期プラグインは、リクエスト頻度が高いシナリオでのリアルタイムワークフローと比較して、より良いパフォーマンス(およびスループット)を提供します。

結論

この章では、CRMの非常に重要な機能の1つであるワークフローについて説明しました。 最初に同期/非同期ワークフロー、メッセージ、スコープ、手順を理解し、最後にワークフローの作成と実行の実際の例を見てみました。 最後に、ワークフローとプラグインの違いを確認しました。

Microsoft Dynamics CRM-プラグイン

プラグインは、Microsoft Dynamics CRMと統合してプラットフォームの標準動作を変更または拡張するカスタムビジネスロジックです。 プラグインはイベントハンドラーとして機能し、CRMの特定のイベントで実行するように登録されます。 プラグインはC#またはVBで記述され、同期モードまたは非同期モードで実行できます。

プラグインを作成するシナリオは次のとおりです-

  • レコードの特定のフィールドの更新や関連レコードの更新など、いくつかのビジネスロジックを実行したい。 CRMレコードを作成または更新するとき。
  • レコードの保存や更新などの特定のイベントで外部Webサービスを呼び出します。
  • レコードが開かれたときにフィールド値を動的に計算したい場合。
  • CRMの特定のイベントで顧客に電子メールを送信するなどのプロセスを自動化します。

イベントフレームワーク

CRMのイベント処理フレームワークは、イベント実行パイプラインに渡すことにより、同期および非同期のプラグイン要求を処理します。 イベントがプラグインロジックをトリガーするたびに、メッセージがCRM組織Webサービスに送信され、そこで他のプラグインまたはプラットフォームのコア操作によって読み取りまたは変更できます。

プラグインパイプラインステージ

プラグインパイプライン全体は、カスタムビジネスロジックを登録できる複数の段階に分割されます。 指定されたパイプラインステージは、プラグインの実行サイクルのどのステージでプラグインコードが実行されるかを示します。 次の表で指定されているすべてのパイプラインステージのうち、カスタムプラグインは、事前イベントおよび事後イベントでのみ登録できます。 Platform Core Main Operationsにプラグインを登録することはできません。

Event Stage Name Description
Pre-Event Pre-validation Stage in the pipeline for plug-ins that are to execute before the main system operation. Plug-ins registered in this stage may execute outside the database transaction.
Pre-Event Pre-operation Stage in the pipeline for plug-ins that are to executed before the main system operation. Plugins registered in this stage are executed within the database transaction.
Platform Core Operation MainOperation Intransaction,the main operation of the system, such as create, update, delete, and so on. No custom plug-ins can be registered in this stage. For internal use only.
Post-Event Post-operation Stage in the pipeline for plug-ins which are to executed after the main operation. Plug-ins registered in this stage are executed within the database transaction.

CRMアプリケーションがイベント(レコードの保存や更新など)を呼び出すたびに、次の一連のアクションが行われます-

  • イベントはWebサービス呼び出しをトリガーし、実行はイベントパイプラインステージ(イベント前、プラットフォームコア操作、イベント後)を通過します。
  • 情報はOrganizationRequestメッセージとして内部的にパッケージ化され、最終的に内部CRM Webサービスメソッドとプラットフォームコア操作に送信されます。
  • OrganizationRequestメッセージは、イベント前プラグインによって最初に受信され、プラットフォームコア操作に渡す前に情報を変更できます。 プラットフォームのコア操作の後、メッセージはOrganizationResponseとしてパッケージ化され、操作後プラグインに渡されます。 postoperationsプラグインは、オプションでこの情報を変更してから、非同期プラグインに渡すことができます。
  • プラグインはこの情報をコンテキストオブジェクトの形式で受け取り、Executeメソッドに渡された後、さらに処理が行われます。
  • すべてのプラグインの処理が完了すると、実行がイベントをトリガーしたアプリケーションに返されます。

プラグインメッセージ

メッセージは、プラグイン(またはビジネスロジック)が登録されるイベントです。 たとえば、連絡先エンティティのメッセージの作成にプラグインを登録できます。 これにより、新しい連絡先レコードが作成されるたびにビジネスロジックが起動します。

カスタムエンティティの場合、エンティティがユーザー所有か組織所有かによって、サポートされるメッセージは次のとおりです。

Message Name Ownership Type
Assign User-owned entities only
Create User-owned and organization-owned entities
Delete User-owned and organization-owned entities
GrantAccess User-owned entities only
ModifyAccess User-owned entities only
Retrieve User-owned and organization-owned entities
RetrieveMultiple User-owned and organization-owned entities
RetrievePrincipalAccess User-owned entities only
RetrieveSharedPrincipalsAndAccess User-owned entities only
RevokeAccess User-owned entities only
SetState User-owned and organization-owned entities
SetStateDynamicEntity User-owned and organization-owned entities
Update User-owned and organization-owned entities

既定の既定のエンティティには、100を超えるメッセージがサポートされています。 これらのメッセージの一部はすべてのエンティティに適用できますが、一部のメッセージは特定のエンティティに固有です。 サポートされているメッセージの完全なリストは、SDK内のExcelファイルで見つけることができます: SDK \ Message-entity support for plug-ins.xlsx

プラグインを書く

このセクションでは、プラグイン作成の基本を学びます。 新しい顧客がシステムに追加されるたびに、顧客にフォローアップするタスクアクティビティを作成するサンプルプラグインを作成します。 CRMで新しいContactrecordが作成されるたび。

まず、 Microsoft.Xrm.Sdk 名前空間への参照を含める必要があります。 CRM SDKには、必要なすべてのSDKアセンブリが含まれています。 第2章でSDKを既にダウンロードしてインストールしていると仮定して、Visual Studioを開きます。 タイプクラスライブラリの新しいプロジェクトを作成します。 プロジェクトにSamplePluginsという名前を付けて、[OK]をクリックします。

Mscrmプラグインの作成とソリューション

*Microsoft.Xrm.Sdk* アセンブリの参照をプロジェクトに追加します。 アセンブリは *SDK/Bin* にあります。

Mscrmプラグインソリューション追加リファレンス

ここで、 PostCreateContact.cs という名前のクラスを作成し、 IPlugin からクラスを拡張します。 これまで、コードは次のようになります。

Mscrmプラグインサンプルコード

System.Runtime.Serializationへの参照も追加する必要があります。 必要な参照を追加したら、次のコードを PostCreateContact クラス内にコピーします。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;

namespace SamplePlugins {
   public class PostCreateContact:IPlugin {
     ///A plug-in that creates a follow-up task activity when a new account is created.
     ///Register this plug-in on the Create message, account entity,
     ///and asynchronous mode.

      public void Execute(IServiceProviderserviceProvider) {
        //Obtain the execution context from the service provider.
         IPluginExecutionContext context =(IPluginExecutionContext)
            serviceProvider.GetService(typeof(IPluginExecutionContext));

        //The InputParameters collection contains all the data
            passed in the message request.

         if(context.InputParameters.Contains("Target")&&
            context.InputParameters["Target"]isEntity) {

           //Obtain the target entity from the input parameters.
            Entity entity = (Entity)context.InputParameters["Target"];
            try {

              //Create a task activity to follow up with the account customer in 7 days
               Entity followup = new Entity("task");
               followup["subject"] = "Send e-mail to the new customer.";
               followup["description"] =
                  "Follow up with the customer. Check if there are any new issues
                  that need resolution.";

               followup["scheduledstart"] = DateTime.Now;
               followup["scheduledend"] = DateTime.Now.AddDays(2);
               followup["category"] = context.PrimaryEntityName;

              //Refer to the contact in the task activity.
               if(context.OutputParameters.Contains("id")) {
                  Guid regardingobjectid = new Guid(context.OutputParameter
                     s["id"].ToString());
                  string regardingobjectidType = "contact";
                  followup["regardingobjectid"] =
                     new EntityReference(rega rdingobjectidType,regardingobjectid);
               }

              //Obtain the organization service reference.
               IOrganizationServiceFactory serviceFactory =
                  (IOrganizationSer viceFactory)serviceProvider.GetService
                  (typeof(IOrganizationServiceFactory));
               IOrganizationService service =
                  serviceFactory.CreateOrganizationService(context.UserId);

              //Create the followup activity
               service.Create(followup);
            } catch(Exception ex) {
               throw new InvalidPluginExecutionException(ex.Message);
            }
         }
      }
   }
}

以下は、このコードが何をするかの段階的な説明です-

  • ステップ1 *-IServiceProviderオブジェクトをパラメーターとして使用して、Executeメソッドを実装します。 サービスプロバイダーには、プラグイン内で使用する多くの便利なオブジェクトへの参照が含まれています。
  • ステップ2 *-IServiceProviderのGetServiceメソッドを使用してIPluginExecutionContextオブジェクトを取得します。
  • ステップ3 *-コンテキストオブジェクトのInputParametersコレクションからターゲットエンティティのオブジェクトを取得します。 このEntityクラスオブジェクトは、プラグインが登録されるContactエンティティレコードを参照します。
  • ステップ4 *-タスクエンティティのオブジェクトを作成し、適切な件名、説明、日付、カテゴリ、および関連するobjectidを設定します。 relatedobjectidは、このアクティビティレコードが作成されている連絡先レコードを示します。 context.OutputParametersを使用して、コードが親のContactレコードのIDを取得し、作成したタスクエンティティレコードに関連付けることがわかります。
  • ステップ5 *-IServiceProviderオブジェクトを使用してIOrganizationServiceFactoryのオブジェクトを作成します。
  • ステップ6 *-IOrganizationServiceFactoryオブジェクトを使用してIOrganizationServiceのオブジェクトを作成します。
  • ステップ7 *-最後に、このサービスオブジェクトのCreateメソッドを使用します。 CRMに保存されるフォローアップアクティビティを作成します。

プラグインアセンブリに署名する

このセクションは、初めてプラグインアセンブリを登録する場合にのみ適用されます。 プラグインをデプロイするには、キーを使用してアセンブリにサインインする必要があります。 ソリューションを右クリックして、[プロパティ]をクリックします。

Mscrmプラグインソリューションプロパティ

左側のオプションから[署名]タブを選択し、[アセンブリに署名]オプションをオンにします。 次に、[厳密な名前のキーファイルの選択]オプションから[新規]を選択します。

Mscrmプラグインサインアセンブリ

キーファイル名をsamplepluginsとして入力します(他の任意の名前を使用できます)。 [キーファイルをパスワードで保護する]オプションをオフにして、[OK]をクリックします。 保存をクリックします。

Mscrmプラグインサインアセンブリキーの追加

最後に、ソリューションを構築します。 右クリック→ビルド。 ソリューションをビルドすると、アセンブリDLLが生成されます。これは、次の章でこのプラグインを登録するために使用します。

プラグインでの例外処理

多くの場合、プラグインロジックはランタイム例外を処理する必要があります。 同期プラグインの場合、ユーザーにエラーダイアログボックスを表示する InvalidPluginExecutionException 例外を返すことができます。 エラーダイアログには、例外オブジェクトのメッセージオブジェクトに渡すカスタムエラーメッセージが含まれます。

コードを見ると、catchブロックでInvalidPluginExecutionException例外をスローしています。

throw new InvalidPluginExecutionException(ex.Message);

結論

プラグインは、カスタムCRMの実装に不可欠です。 この章では、イベントフレームワークモデル、パイプラインステージ、メッセージの理解、およびサンプルプラグインの作成に焦点を当てました。 次の章では、このプラグインをCRMに登録し、エンドツーエンドのシナリオで機能することを確認します。

プラグイン登録

前の章では、連絡先レコードが作成されたときにフォローアップタスクアクティビティを作成するためのサンプルプラグインを作成しました。 この章では、プラグイン登録ツールを使用してこのプラグインをCRMに登録する方法を説明します。 このツールは、SDK/Tools/PluginRegistration/PluginRegistration.exeにあります。

便宜上、プラグインの登録プロセスは3つのセクションに分かれています-

  • サーバーへの接続
  • アセンブリの登録
  • プラグインを登録する

サーバーへの接続

ステップ1 *-前に指定した場所から *PluginRegistration.exe を実行します。 [新しい接続の作成]ボタンをクリックします。

Mscrmプラグイン登録の新しい接続

  • ステップ2 *-ログインウィンドウで、CRMのオンラインバージョンを使用しているため、Office 365を選択します。 資格情報を入力し、「ログイン」をクリックします。

Mscrmプラグイン登録ログイン

  • ステップ3 *-ツールが開き、次のスクリーンショットのようになります。

Mscrmプラグイン登録アセンブリリスト

アセンブリの登録

  • ステップ1 *-登録→新規アセンブリの登録に進みます。

Mscrmプラグイン登録アセンブリ

  • ステップ2 *-これにより、[新しいアセンブリの登録]ウィンドウが開きます。 「ナビゲート」アイコンをクリックして、前の章で作成したプラグインDLLを見つけます。

Mscrmプラグイン登録ロードアセンブリ

ステップ3 *-DLLをナビゲートした後、[アセンブリのロード]をクリックします。 これにより、SamplePluginsアセンブリとそのすべてのプラグインクラスが生成されます。 以下に強調表示されている *PostCreateContact プラグインクラスを見ることができます。 プラグインアセンブリに3つのプラグインクラスがある場合、そこに3つのプラグインが表示されます。

Mscrmプラグイン登録新しいアセンブリ2

  • ステップ4 *-隔離モードとしてサンドボックス、場所としてデータベースを選択し、選択したプラグインを登録をクリックします。 登録が成功すると、成功メッセージが表示されます。

プラグインを登録する

次に、個々のプラグインが呼び出される特定のステップを登録します。

  • ステップ1 *-PostCreateContactプラグインを選択します。

Mscrmプラグインステップ選択プラグイン

  • ステップ2 *-[登録]→[新しいステップの登録]をクリックします。

Mscrmプラグインステップ新規ステップの登録

  • ステップ3 *-連絡先エンティティの作成時、操作後の段階、および同期モードでこのプラグインを登録します。

メッセージ-作成

プライマリエンティティ-連絡先

イベントパイプラインの実行段階-操作後

実行モード-同期

残りのオプションはデフォルトのままにして、「新規ステップの登録」をクリックします。

Mscrmプラグインステップ登録新しいステップの詳細

プラグインに追加された新しいステップを見ることができます。

MScrmプラグインステップ追加ステップ

次に、CRMに移動して、プラグインが正常に機能しているかどうかをテストします。 これらのテスト手順は、プラグインの例に固有のものであることに注意してください。

プラグインのテスト

[連絡先]タブに移動して、新しいレコードを作成します。 レコードを保存すると、このレコードに関連付けられた新しいアクティビティが作成されます。

Mscrmプラグイン連絡先作成

アクティビティをクリックして、コードで設定した詳細を確認できます。

Mscrmプラグイン作成アクティビティ

これにより、プラグインが正常に実行されたことを確認できます。 同様に、プラグインを拡張して非常に複雑な機能を実現できます。

Microsoft Dynamics CRM-Webサービス

Microsoft Dynamics CRMは、外部アプリケーションからCRMにアクセスし、CRMで作成、削除、更新、検索などの一般的なビジネスデータ操作を実行するWebメソッドを呼び出すために使用される2つの重要なWebサービスを提供します。

次のシナリオを考慮してください-

  • 外部の.NETアプリケーションがあり、CRMと通信する必要があります。 たとえば、新しい顧客が外部アプリケーションに登録されたときに、CRMに連絡先レコードを挿入できます。
  • または、CRMでレコードを検索し、外部アプリケーションで検索結果を表示することもできます。

このようなシナリオでは、CRMによって公開されるWebサービスを使用して、アプリケーションでそれらを使用し、CRMで作成、削除、更新、および検索の操作を実行できます。

IDiscoveryService Webサービス

このWebサービスは、指定されたユーザーが属する組織のリストと、各組織のURLエンドポイントを返します。

IOrganizationService Webサービス

このWebサービスは、CRMのデータとメタデータにアクセスするために使用される主要なWebサービスです。 IOrganizationServiceは、2つの重要なアセンブリ- Microsoft.Xrm.Sdk.dll および Microsoft.Crm.Sdk.Proxy.dll を使用します。 これらのアセンブリは、 Bin フォルダー内のCRM SDKパッケージにあります。

*Microsoft.Xrm.Sdk.dll*

このアセンブリは、Microsoft Dynamics CRMへの接続を簡単にするプロキシクラス、認証方法、サービス契約など、xRMのコアメソッドとタイプを定義します。

*Microsoft.Crm.Sdk.Proxy.dll*

このアセンブリは、非コアメッセージの要求と応答、および組織データの操作に必要な列挙を定義します。 これら2つのアセンブリでサポートされる名前空間は次のとおりです。

これらの各アセンブリは、特定のメッセージをサポートします。このメッセージは、エンティティに保存されているデータを操作するために使用されます。 それらによってサポートされているメッセージの完全なリストは、次のリンクで見つけることができます-

サポートされるxRMメッセージ-https://msdn.microsoft.com/en-us/library/gg334698.aspx

サポートされているCRMメッセージ-https://msdn.microsoft.com/en-us/library/gg309482.aspx

IOrganizationService Webサービスメソッド

*IOrganizationService* には、システムおよびカスタムエンティティと組織メタデータに対するすべての一般的な操作を実行できる8つのメソッドがあります。
Sr.No Method & Description
1

IOrganizationService.Create

レコードを作成します。

2

IOrganizationService.Update

既存のレコードを更新します。

3

IOrganizationService. Retrieve

レコードを取得します。

4

IOrganizationService. RetrieveMultiple

レコードのコレクションを取得します。

5

IOrganizationService. Delete

レコードを削除します。

6

IOrganizationService. Associate

レコード間のリンクを作成します。

7

IOrganizationService.Disassociate

レコード間のリンクを削除します。

8

IOrganizationService.Execute

ケース解決、重複検出などの特殊な処理だけでなく、一般的なレコード処理にも使用されます。

Webサービスの例

CRMでWebサービスがどのように機能するかを理解するために、CRM SDKが提供する例を見てみましょう。 この例では、新しいAccountレコードを作成して更新し、最後にCRM IOrganizationService Webサービスを使用して削除します。

  • ステップ1 *-CRM SDKを抽出したフォルダーを開きます。 次の場所を参照して、QuickStartCS.slnソリューションを開きます。SDK\ SampleCode \ CS \ QuickStart

Mscrm Webサービスの例のステップ1

ステップ2 *- *QuickStart with Simplified Connection プロジェクトを検討します。 このプロジェクトで app.config を開きます。 デフォルトでは、このファイルの connectionStrings セクションがコメント化されます。

Mscrm Webサービスの例のステップ2

これから、最初の接続文字列キーのコメントを外し、次の3つの詳細を編集します-

*Url* -CRMインスタンスのURLを指定します。 この場合、CRMのオンラインバージョンを使用しているため、そのURLを記載する必要があります。

ユーザー名-CRM Onlineユーザー名。

パスワード-CRMオンラインのパスワード。

Mscrm Webサービスの例のステップ2 2

ステップ3 *-このプロジェクトの *SimplifiedConnection.cs ファイルとその中のRunmethodを開きます。

public void Run(StringconnectionString, boolpromptforDelete) {
   try {

     //Establish a connection to the organization web service using CrmConnection.
      Microsoft.Xrm.Client.CrmConnection connection =
         CrmConnection.Parse(connectionString);

     //Obtain an organization service proxy.
     //The using statement assures that the service proxy will be properly disposed.
      using(_orgService = new OrganizationService(connection)) {

        //Create any entity records this sample requires.
         CreateRequiredRecords();

        //Obtain information about the logged on user from the web service.
         Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
         SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
            new ColumnSet(newstring[]{"firstname","lastname"}));

         Console.WriteLine("Logged on user is {0} {1}.",
            systemUser.FirstName,systemUser.LastName);

        //Retrieve the version of Microsoft Dynamics CRM.
         RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
         RetrieveVersionResponse versionResponse =
            (RetrieveVersionResponse)_orgService.Execute(versionRequest);
         Console.WriteLine("Microsoft Dynamics CRM version {0}.",
            versionResponse.Version);

        //Instantiate an account object. Note the use of option set
         enumerations defined in OptionSets.cs.

        //Refer to the Entity Metadata topic in the SDK documentation to
         determine which attributes must

        //be set for each entity.
         Account account = new Account{Name = "Fourth Coffee"};
         account.AccountCategoryCode = new OptionSetValue(
            (int)AccountAccountCateg oryCode.PreferredCustomer);
         account.CustomerTypeCode = new OptionSetValue(
            (int)AccountCustomerTypeCod e.Investor);

        //Create an account record named Fourth Coffee.
         _accountId = _orgService.Create(account);
         Console.Write("{0} {1} created, ",account.LogicalName,account.Name);

        //Retrieve the several attributes from the new account.
         ColumnSet cols = new ColumnSet(
            new String[]{"name","address1_postalcode","lastusedincampaign"});
         Account retrievedAccount =
            (Account)_orgService.Retrieve("account", _accountId, cols);
         Console.Write("retrieved, ");

        //Update the postal code attribute.
         retrievedAccount.Address1_PostalCode = "98052";

        //The address 2 postal code was set accidentally, so set it to null.
         retrievedAccount.Address2_PostalCode = null;

        //Shows use of a Money value.
         retrievedAccount.Revenue = new Money(5000000);

        //Shows use of a Boolean value.
         retrievedAccount.CreditOnHold = false;

        //Update the account record.
         _orgService.Update(retrievedAccount);
         Console.WriteLine("and updated.");

        //Delete any entity records this sample created.
         DeleteRequiredRecords(promptforDelete);
      }
   }
  //Catch any service fault exceptions that Microsoft Dynamics CRM throws.
   catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {

     //You can handle an exception here or pass it back to the calling method.
      throw;
   }
}
  • ステップ4 *-このメソッドは、基本的にCRM Webサービスを使用したすべてのCRUD操作を示します。 このコードは、最初に組織インスタンスを作成し、次にアカウントレコードを作成し、作成したレコードを更新して、最後に削除します。 このコードの重要なコンポーネントを見てみましょう。 このコードの実行時にCRMでの変更を確認するには、このコードを段階的にデバッグし(以下で説明します)、CRMの変更を同時に確認します。
  • ステップ4.1 *-*ステップ2 *で変更した接続文字列を使用して、組織への接続を確立します。
Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);
  • ステップ4.2 *-CRM組織Webサービスのプロキシインスタンスを取得します。
_orgService = new OrganizationService(connection)
  • ステップ4.3 *-新しいAccountエンティティオブジェクトを作成し、そのName、AccountCategoryCodeおよびCustomerTypeCodeを設定します。
Account account = new Account{Name = "Fifth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
   (int)AccountAccountCategoryCode.P referredCustomer);
account.CustomerTypeCode = new OptionSetValue(
   (int)AccountCustomerTypeCode.Investor);
  • ステップ4.4 *-組織サービスのCreateメソッドを使用して新しいレコードを作成します。
_accountId = _orgService.Create(account);

CRMに移動すると、新しく作成されたアカウントレコードが表示されます。

Mscrm Webサービスの例のステップ4_4

  • ステップ4.5 *-アカウントが作成されると、サービスはRetrieve Web Serviceメソッドを使用してCRMからレコードを取得します。
ColumnSet cols = new ColumnSet(new String[]{
   "name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
   (Account)_orgService.Retrieve("account", _accountId, cols);
  • ステップ4.6 *-取得したレコードを取得したら、レコードの更新値を設定できます。
retrievedAccount.Address1_PostalCode = "98052";
retrievedAccount.Address2_PostalCode = null;
retrievedAccount.Revenue = new Money(5000000);
retrievedAccount.CreditOnHold = false;
  • ステップ4.7 *-レコードの更新値を設定した後、Webサービスの更新メソッドを使用して、レコードを更新してCRMデータベースに戻します。
_orgService.Update(retrievedAccount);

CRMでレコードを開くと、これらの値が更新されていることがわかります。

Mscrm Webサービスの例のステップ4_7

  • ステップ4.8 *-最後に、Delete web serviceメソッドを使用してレコードを削除します。
_orgService.Delete(Account.EntityLogicalName, _accountId);

CRMで同じレコードを更新すると、そのレコードは既に削除されているため利用できなくなっていることがわかります。

Mscrm Webサービスの例のステップ4_8

結論

この章では、CRMが提供する2つの重要なWebサービスと、これらのWebサービスを外部アプリケーションから使用してさまざまなCRUD操作を実行する方法の実例を取り上げました。

Microsoft Dynamics CRM-ソリューション

ソリューションは、ビジネスの機能に合わせてコンポーネントをパッケージ化、インストール、およびアンインストールするためのフレームワークを提供します。 ソリューションにより、カスタマイザーと開発者は、CRMを拡張するソフトウェアのユニットを作成、パッケージ化、および保守できます。 CRMで実行されるカスタマイズ、拡張、または構成は、ソリューションを使用してパッケージ化、管理、および配布されます。 ソリューションは、ソース組織からzipファイルとしてエクスポートでき、ターゲット組織にインポートできます。

これを理解するために、次のシナリオ例を検討してください-

  • 開発者またはカスタマイザーとして、開発環境でCRMを拡張またはカスタマイズしました。 次に、変更をパッケージ化し、次の環境に移動します。 このために、個々のソリューションを作成し、それらをより高い環境で公開できます。
  • サードパーティのCRMプロバイダーとして、外部WebサービスAPIを使用してMicrosoft Dynamics CRMエンティティのデータを管理できるCRMモジュールを作成しました。 次に、このモジュールを他のクライアントに販売します。 ソリューションを使用して、このモジュールをパッケージ化し、このソリューションをインストールし、モジュールが提供する機能を使用できる他のクライアントに配布できます。

ソリューションの種類

デフォルトのシステムソリューション

システムソリューションには、カスタマイズなしでMicrosoft Dynamics CRM内で定義されたすぐに使用できるソリューションコンポーネントが含まれています。 システムソリューションのコンポーネントの多くはカスタマイズ可能であり、マネージドソリューションまたはアンマネージドカスタマイズで使用できます。

このチュートリアルでは、ソリューションを作成せず、デフォルトのシステムソリューションをカスタマイズしました。 思い出すと、設定→カスタマイズ→システムのカスタマイズに行きました。 このオプションは、デフォルトのソリューションを直接カスタマイズします。

管理ソリューション

マネージドソリューションとは、完了して配布およびインストールすることを目的としたソリューションです。 管理ソリューションは、システムソリューションまたは他の管理ソリューションの上にインストールできます。

重要なポイント-

  • ある組織から管理ソリューションをエクスポートして別の組織にインポートする場合、新しい組織でソリューションを編集することはできません。
  • 管理ソリューションは、システムソリューションを直接参照しません。
  • 管理ソリューションをアンインストールすると、ソリューションに関連付けられているすべてのカスタマイズがアンインストールされます。
  • デフォルトでは、管理対象ソリューションをターゲット組織でカスタマイズすることはできません。 ただし、管理プロパティの概念を使用して、ソリューションコンポーネントをカスタマイズ可能にするかどうかを定義でき、もしそうであれば、ソリューションを管理ソリューションとしてエクスポートした後にコンポーネントの特定の部分をカスタマイズできます。

管理されていないソリューション

管理されていないソリューションは、まだ開発中であり、配布することを意図していないソリューションです。 管理されていないソリューションには、追加、変更、削除、または削除されたコンポーネントを含む、CRMコンポーネントのすべての管理されていないカスタマイズが含まれます。 デフォルトでは、新しいソリューションは管理されていないソリューションです。 ただし、非管理ソリューションを管理ソリューションまたは非管理ソリューションとしてエクスポートできます。

重要なポイント-

  • ある組織から管理されていないソリューションをエクスポートし、別の組織にインポートする場合、新しい組織でソリューションを編集できます。
  • 管理されていないソリューションは、システムソリューションを直接参照します。 したがって、1つのアンマネージドソリューションに加えられた変更は、システムソリューションを含む同じコンポーネントを参照するすべてのアンマネージドソリューションに適用されます。
  • 管理されていないソリューションからソリューションコンポーネントを削除すると、そのコンポーネントはシステムから完全に削除され、使用できなくなります。 特定のアンマネージドソリューションからコンポーネントを削除するだけの場合は、deleteではなくremoveを使用します。
  • 管理されていないソリューションをアンインストールしても、関連するカスタマイズは削除されません。 システムからソリューションを削除するだけですが、行った変更はそのまま残ります。

ソリューションコンポーネント

ソリューションを使用して、デフォルト、非管理、または管理ソリューションを使用してカスタマイズできる次のコンポーネントをパッケージ化できます。

コンポーネントの種類

成分

スキーマ

実体

属性

関係

グローバルオプションセット

ユーザーインターフェース

アプリケーションリボン

サイトマップ

フォーム

エンティティリボン

Webリソース

アナリティクス

ダッシュボード

レポート

視覚化

プロセス/コード

プロセス

対話

ワークフロー

プラグイン

アセンブリ

処理手順

テンプレート

差し込み印刷

Eメール

契約する

記事

セキュリティ

セキュリティロール

フィールドレベルのセキュリティプロファイル

ソリューションを作成する

  • ステップ1 *-[設定]→[ソリューション]に移動します。 新規をクリックします。

Mscrmソリューションの作成ステップ1

  • ステップ2 *-次のウィンドウで、次の詳細を入力し、[保存して閉じる]をクリックします。

表示名-サンプルソリューション(これは任意の名前にすることができます)。

名前-表示名に基づいて自動的に設定されます。 ただし、これは変更できます。

*Publisher* -デフォルトのパブリッシャー。 ソリューション発行元は、共通のカスタマイズプレフィックスとオプション値のプレフィックスを提供します。 ソリューション発行元を定義すると、配布後の管理ソリューションの更新方法が制御されます。 ただし、この例およびほとんどの一般的なケースでは、これをデフォルトのパブリッシャーとして設定できます。

バージョン-次の形式でバージョンを指定します:major.minor.build.revision。 例:1.0.0.0。

Mscrmソリューションの作成手順2

デフォルトでは、すべてのソリューションが管理されていないソリューションとして追加されます。 ソリューションを追加したら、このソリューションのコンテキストでソリューションコンポーネントを作成するか、他のソリューションから既存のコンポーネントを追加して、ソリューションコンポーネントを追加できます。 たとえば、新しいエンティティ、フォームなどを作成できます。 この新しいソリューションのコンテキストで。

ソリューションのエクスポート

マネージドソリューションまたはアンマネージドソリューションとしてパッケージ化する変更をすべて実施したら、次のようにソリューションをエクスポートできます。

  • ステップ1 *-ソース組織を開き、[設定]→[ソリューション]に移動します。 エクスポートするソリューションを選択し、[エクスポート]ボタンをクリックします。

Mscrm Export Solutionステップ1

  • ステップ2 *-[カスタマイズの公開]ウィンドウで、[すべてのカスタマイズの公開]をクリックし、[次へ]をクリックします。

Mscrm Export Solutionステップ2

  • ステップ3 *-次のウィンドウで、オプションで自動番号付け、カレンダー設定などのシステム設定を選択できます。 ソリューションとともにエクスポートされます。 現時点では、オプションを選択せず​​に「次へ」をクリックします。

Mscrm Export Solutionステップ3

  • ステップ4 *-[パッケージタイプ]ウィンドウで、パッケージを管理されたソリューションとしてエクスポートするか、管理されていないソリューションとしてエクスポートするかを選択できます。 この例では、管理されていないものとしてエクスポートします。 完了したら、「次へ」をクリックします。

Mscrm Export Solutionステップ4

  • ステップ5 *-次のウィンドウで、使用しているCRMのソースバージョンを確認し、ターゲットバージョンを選択できます。 エクスポートをクリックします。

Mscrm Export Solutionステップ5

  • ステップ6 *-[エクスポート]をクリックすると、ソリューションがzipファイルとしてエクスポートされます。 このzipファイルをシステム上の目的の場所に保存します。

Mscrm Export Solutionステップ6

ソリューションのインポート

ここで、前のセクションでエクスポートしたソリューションzipファイルを新しいターゲット組織にインポートします。

  • ステップ1 *-ターゲット組織を開き、[設定]→[ソリューション]に移動します。 インポートをクリックします。

Mscrm importソリューションステップ1

  • ステップ2 *-エクスポートステップからダウンロードしたzipファイルを参照し、[次へ]をクリックします。

Mscrm importソリューションステップ2

  • ステップ3 *-次のウィンドウから、必要に応じてソリューションパッケージの詳細を表示できます。 [インポート]をクリックすると、ソリューションのインポートプロセスが開始されます。

Mscrm importソリューションステップ3

  • ステップ4 *-インポートプロセスが完了すると、成功または失敗のステータスが表示されます。 プロセスが成功したら、[すべてのカスタマイズを公開]をクリックします。 ソリューションのインポートが失敗した場合、インポートプロセスのどのステップが失敗したかに関する詳細なエラーログが表示されます。

Mscrm importソリューションステップ4

  • ステップ5 *-これで完了です。 ソリューションがターゲット組織に正常にインポートされます。 閉じるをクリックしてください。

紛争解決

複数の開発者がCRMのカスタマイズと拡張に取り組むことができるため、複数の管理ソリューションと非管理ソリューションを使用できます。 これらのソリューションをエクスポートおよびインポートすると、競合シナリオが発生する場合があります。 たとえば、「ソリューションA」にフォーム上のフィールドが含まれ、「ソリューションB」がフィールドを削除し、「ソリューションC」がフィールドの名前を変更したとします。 このシナリオでは、最終的な変更は何ですか? このような矛盾するシナリオでは、CRMは2つのアプローチを使用します。

マージ-このアプローチは、コマンドバー、リボン、サイトマップなどのユーザーインターフェイスコンポーネントに使用されます。 このアプローチに従って、ソリューションコンポーネントは下から再計算され、組織の管理されていないカスタマイズが最後に適用されます。

トップウィン-このアプローチは、ユーザーインターフェイスコンポーネントを除く他のすべての競合シナリオに使用されます。 このアプローチでは、最後の変更(管理対象または管理対象外)が優先され、適用されます。

結論

この章では、ソリューションの概念と、さまざまなタイプのソリューションとそのコンポーネントを紹介しました。 次に、ソリューションを作成、エクスポート、インポートする方法を学びました。 最後に、同じソリューションコンポーネントに影響を及ぼす複数のマネージドソリューションとアンマネージドソリューションがある場合に発生する2つの競合解決戦略について検討しました。