トピックス

知識創造研究室 by CRM(xRM)

第3回 『Dynamics CRM』について

お待たせして申し訳ございませんm(_ _)m
誰も待ってないとか悲しい話はなしでお願いします!

いよいよ、第3回がやってまいりました! ワァワァパチパチ♪
第1回第2回とご理解頂けてますでしょうか?
何を隠そうこの第3回が私を一番輝かせてくれる話になるはずなのですです
なぜならCRM事業本部の御大将に初めて会った案件でのミッションが下記の3つでした!

  1. javascript 書いて!
  2. プラグイン作って!1日で!(笑)
  3. ユーザー定義ワークフロー活動(アセンブリ)作って!1日で!(笑)

とお客さんを前に笑顔で言われるわけです。。。。出来ないとは言えませんよね?
「え?自習書にそんなん載ってなかったんやけど?」「なんなんこの無茶ぶりw」と思いながらセセコラと頑張りましたw もちろん1日では無理でしたが(笑) その中で、色々調べたり、想像したり、動かしてみたりとやって行くうちに、Dynamics CRM を構築する上で必ず頭に入れておかなければならないことであることに気付いたわけです。
なので、私の原点だから輝かせてくれるだろう・・・(笑)
と、昔話はこれくらいにして、張り切ってまいりましょ~♪
※ プログラムよりの話になるので、わからない言葉があれば(ググってくださいw)コメントください(笑)

API 公開による拡張性

Dynamics CRM では SDK が提供されており、そのSDKを使用したカスタマイズが可能です。それがどのように提供されているのか、MSDN より画像を拝借してご説明します。
Dynamics CRM SDK Architecture
上図の黄色で表されている部分がSDKによるカスタマイズが可能な部分です。
APIは図の中央にある「Webサービス」で公開されており、.NET アセンブリで提供されているSDKはこちらにアクセスしています。また、皆さんがお使いになるCRMアプリケーションからもこのWebサービスにアクセスしています。
今回は冒頭の昔話で無茶ぶりされた「プラグイン」と「javascript」をご説明します。
※ 他の部分についてもご興味のある方は、弊社のDynamics CRM トレーニングコースへのお申し込みを( ̄ー ̄)ニヤリ

まずは、とっかかりやすいjavascriptからいってみましょ~♪

javascript によるカスタマイズ

Dynamics CRM ではXrm.Pageというオブジェクトモデルが提供されており、フォーム(詳細画面です)で使用できるjavascript ライブラリが提供されています。例えば下記のように記載するだけで画面に設定されている値が取得できます。

var value = Xrm.Page.getAttribute("fieldName").getValue();

Xrm.Pageでできる事を簡単にご紹介します。

  • データ検証(俗にいう入力チェック)
  • 自動化(生年月日を入れると年齢が自動計算されるなど)
  • 表示制御(入力値や入力者によって表示・非表示の切替など)
  • カスタムフィルター(検索フィールドの検索ダイアログに自動で絞込条件を設定)
  • 業務プロセスフローの制御(Dynamics CRM 2016の新機能です)

上記がフォームスクリプトの出来る事になります。(業務ルールで実現できる事もありますね。)
また、WebサービスへもSOAP(WSDL)やoDataでのアクセスが可能ですので、データのCRUDも可能となるのでさらにできる事は増えますね。

このWebサービスへのアクセスが巷で話題のWeb API として提供されています。(Web APIは機会があればってことでww トレーニングコースには入ってますよぉ~♪)

これで画面における拡張性はご理解いただけたと思います。

プラグイン によるカスタマイズ

続いては「プラグイン」です。
アセスメントや支援で行った先で魔法の言葉のように使われている「プラグイン」(笑) 実際に何ができて何ができないのか理解されてこの言葉が使われていることは少ないのではないかと感じています。。。
実際には「Plug-in」という言葉が表す通りなのですが、エンティティレコードを作成することを例に簡単に説明すると・・・

  1. 画面から保存する。
  2. 画面がWebサービスのCreate というAPIを呼び出す。
  3. Create API の中で(GUIDや作成日などの)自動設定
  4. データベースへのDML発行
  5. DMLの結果を画面に返却(ゴニョゴニョしてると思われます)
  6. Webサービスからの戻り値を画面に設定

2の後 or 5の後に処理を差し込む事が出来るのがプラグインです。
おのずと画面に対する処理ができない事、2の後であれば更新後の値はわからない事、5の後であればすでに一度処理されている事がご理解頂けると思います。これを理解しているかどうかがDynamics CRMを構築する上で重要となるのです。
※ 世のDynamics CRM 案件で悲惨な事になっているところではプラグインの多用が原因で「設計ができない」「運用後パフォーマンスが出ない」などの事例が数多く出ています。

プラグインはC#(VBは嫌いなのでC#限定でwww)を使用してDLL(.NET アセンブリ)を作成し、CRMアプリケーションに登録することで使用可能です。上記の内容を理解していると「イベント実行パイプライン」「メッセージ」「ステージ」という言葉たちの意味も理解しやすくなると思います。(MSDNの文言が分かりにくいったらありゃしない・・・)

まとまりもなくツラツラと書いてしまいましたが、つまりは、プラグインを作成することで、Dynamics CRMが持っている機能にプラスしてビジネスロジック(処理)を追加することが可能となります。簡単に追加できるので安易に追加しがちですが、私のような人間をアドバイザーで入れてみるのはいかがですか?(笑)
(今回は宣伝が多くて不愉快だなぁと思ったあなた!申し訳ございませんm(_ _)m これを書きたいがために3回目まで引っ張りましたwwww)

最後に・・・

『Dynamics CRM』について3回にわたって書いてきたのですが、内容はともかく楽しんで頂けたでしょうか。
皆さんはもう「だいなみくす しーあーるえむ」と読んで頂けてると思っていますw (冗談はこの辺にしておきます)

CRM を実現するためになぜ Dynamics CRM かを書いてきましたが、少しはご理解いただけたでしょうか。
CRMは育てるものです。基幹システムのようにガッツリ作って一気にリリースするものではありません。
CRMは使われなければ意味がありません。だからこそ、UIによるカスタマイズであったり、MS製品・サービスとの連携が必要だったり、ビジネスロジックが差し込めたり、画面の入力補助をするようなことが簡単に実現できなければならないと思っています。

以上、『Dynamics CRM』について でしたm(_ _)m

※ 記事の内容は個人発信の参考情報です。記事内容のご利用は、ご自身の判断でお願いします。

この記事を書いた人
原田 研吾

文系プログラマ(.NET Framework、Java)。
25歳から始めたプログラムは死ぬ気で頑張った(誰も褒めてくれないので自分で誉めてます)。
気が付けば製品開発部のマネージャー・・・
弊社Dynamics CRM トレーニングの講師をやったりもします。
事業部やら役職やらありますが、『事業部内の便利屋』が一番フィットする肩書です。
アーカス・ジャパン株式会社 CRM製品
CRM製品に関するお問い合わせ
TEL 06-6195-7501
お問い合わせはこちら

同じカテゴリの記事

Translate »