Dynamics CRM 2013/Fall ’13 SDK モバイルおよびリッチ クライアントの開発 その 1 – 概要とサンプル紹介

みなさん、こんにちは。 今回から Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 新機能より、モバイルおよびリッチ クライアント の開発に関する情報をお届けします。 概要 以下に今回のトピックに関連する内容を紹介します。 新たにサポートされる内容 – JWT トークンのサポート – Windows 8 ストアアプリケーションのサポート – ブラウザ以外の外部アプリケーションからの SOAP/REST エンド ポイントの認証をサポート ブラウザ以外のがいるアプリケーションでサポートされる操作 – OData エンドポイントを使用するとき、作成、取得、更新、および 削除の操作がサポートされます。メッセージ実行またはメタデータ 検索はサポートされません。 – 最新のアプリケーションおよびモバイル アプリケーションの SOAP エンドポイント (Organization.svc/web) を使用するとき、完全な Web サービス機能セットへのアクセスが利用できます。 テクノロジの依存関係 – .NET 用 Windows Azure AD 認証ライブラリ – Microsoft…


Dynamics CRM 2013/Fall ‘13 新機能関連ブログ一覧

みなさん、こんにちは。 10/1 から連続して Microsoft Dynamics CRM 2013 および Microsoft Dynamics CRM Online Fall ’13 の新機能を紹介 していますが、記事の数が多くなってきましたので、一覧 を作成しました。 今後も新機能に関連する新しい記事は、こちらにリスト する予定です。 新 UI 関連 Dynamics CRM 2013/Fall ’13 刷新された UI の紹介 新しくなった UI 全般について Dynamics CRM 2013/Fall ’13 新フォーム紹介 その 1 ナビゲーション、コマンドバー、ソーシャルペイン、 業務プロセスフローなど、フォーム新機能の概要 Dynamics CRM 2013/Fall ’13 新フォーム紹介 その 2 ルックアップ、フォームセレクター、サブグリッド の拡張およびコンポジットコントロール、および 自動レイアウト調整 Dynamics CRM 2013/Fall ’13…


Dynamics CRM 2013/Fall ’13 複数レコード参照フィールドの新機能

みなさん、こんにちは。 今回は Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 の複数レコード参照フィールドにおける新機能 を紹介します。 概要 電子メールの宛先にように、参照でありながら複数のレコードを指定 できる特殊なフィールドにおいて、今回のバージョンで以下新機能を 提供します。 – 連続したレコードの自動解決と追加 – 高さの自動拡張 – 電子メールが許可されていない等、問題のあるレコードのハイライト – 容易なレコードの削除 では実際に操作してみましょう。 動作の確認 1. 活動より新規に電子メールを作成します。 2. 宛先欄で参照アイコンをクリックします。 3. ドロップダウンより任意のレコードを 1 件選択します。   4. 続いて同じ方法で 2 件目のレコードを追加します。レコードは ; 記号で区切られます。 5. 宛先に ’シティ’ と入力して自動解決を試します。 6. レコードを追加していくと宛先フィールドの高さが自動で 拡張されます。※3 列を超えるとスクロールバーが出ます。 7. 任意のレコードをクリックして Delete キーを押下すると簡単に…


Dynamics CRM 2013/Fall ’13 エンティティテーブルの仕様変更

みなさん、こんにちは。 今回は Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 で変更されたエンティティテーブルの仕様に ついて紹介します。 概要 Microsoft Dynamics CRM 2011 以前のバージョンは、エンティティ に対して基底のテーブルが Base と Extension の 2 つに分割されて いました。これは SQL Server 2000 での制限に由来するものですが Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 よりエンティティに対する基底のテーブルは、活動 エンティティのような特殊なものを除いて 1 つになります。 データ抽出時の JOIN が削減されるためパフォーマンスの向上に つながります。 アップグレード時の動作 Microsoft Dynamics CRM 2011…


Dynamics CRM 2013/Fall ’13 簡易検索のインデックスサポート

みなさん、こんにちは。 今回は Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 の新機能であり、簡易検索のインデックス作成 について紹介します。 概要 簡易検索ビュー定義の検索列に任意の列を追加することで、検索 対象とすることができますが、多くの場合それらの列には適切な インデックスがないことから検索のパフォーマンスに大きな影響 が発生していました。 設置型の場合は直接データベースに対してカスタムインデックス を作成することも可能ですが、オンライン環境の場合には対応が 行えませんでした。 Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 では、簡易検索ビュー検索列の情報から、自動で インデックスを作る機能を提供します。 インデックス作成の動作 インデックスは以下の条件を満たしている場合に作成されます。 – 最大 20 列まで – インデックス列の合計が 900 バイトまで – 公開済のビュー定義を対象 インデックスはメンテナンス非同期サービス、OperationType 15 によって以下の形式で作成されます。 ndx_QF_<列名> 並べ替え列はインデックス作成対象にはなりません。 インデックス作成の確認 以下インデックス作成の確認は設置型のみで行えますが、同じ 動作はオンラインでも実施されます。 1….


Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 5

みなさん、こんにちは。 今回はプラグインおよびスクリプトより操作を呼び出す方法 について紹介します。前回までの内容からの続きとなります のでご注意ください Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 1 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 2 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 3 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 4 また今回はプラグインの開発、およびスクリプト開発の経験 がある前提となります。 概要 プラグインやスクリプトからユーザー定義アクションを実行 する理由は、プロセスを1か所で管理できるためです。実際 リアルタイムワークフローを利用することでプラグインから 操作を呼び出すのと同じ処理ができますし、ワークフローを 手動実行しても結果は同じです。但しその場合ワークフロー 定義が複数存在するため管理性が低下します。 プラグインからの呼び出し プラグインから操作を呼び出す場合、メッセージ名を解決する には crmsvcutil にて操作を取得する必要がありますが、複数の アセンブリに対して同じファイルを含めることはサイズの面、 管理の面から望ましくないため、実行時に解決させる方法が あります。 尚、この手法は通常の SDK アプリケーションでも同様に利用 可能です。 1. Visual…


Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 4

みなさん、こんにちは。 今回は新規に入出力パラメータを利用する操作を作成し、SDK から利用する方法を紹介します。前回までの内容を把握している ことが前提となりますのでご注意ください。 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 1 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 2 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 3 シナリオ 作成後 1 か月以上週間経過したサポート案件に対して以下の プロセスでエスカレーションを実施します。 – エスカレーション担当者にサポート案件をアサインする – 担当者のウォールにエスカレーションされた旨を投稿する – 元担当者のウォールにエスカレーションされた旨を投稿する 操作の作成 シナリオを満たせるよう、エスカレーション担当者を入力 パラメータとして受け取れる操作を作成します。また出力 パラメータのサンプルとしてすべての操作の最後に作業が 完了した旨を記した文字列を返すこととします。 1. 設定モジュールよりプロセスをクリックします。 2. 新規ボタンをクリックして、以下の様に操作を作成します。 3. OK をクリックします。 4. 一意の名前として new_escalateIncident と入力します。 5. プロセスの引数で [+]…


Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 3

みなさん、こんにちは。 今回はすでに公開済みの操作を変更するシナリオを紹介します。 前回からの続き物となりますのでご注意ください。 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 1 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 2 シナリオ オープン状態の潜在顧客に対して電話活動が行われていない場合 これまでは担当者にメール通知をしていましたが、プロセス追加 により、メール通知以外にもタスクの作成も行います。 操作の変更 すでにアクティブ化した操作の変更は以下の手順で行います。 1. 設定モジュールよりプロセスを選択します。 2. アクティブ化済みの潜在顧客のフォローアップ操作を開きます。 3. 非アクティブ化ボタンをクリックして操作を非アクティブに します。 4. ステップの追加よりレコードの作成を選択します。 5. 作成対象よりタスクを選択し、プロパティをクリックします。 6. タスクに必要な情報を入力して保存してください。 7. プロセスの変更が完了したので、エディターの画面でアクティブ 化をクリックします。 8. 操作が再びアクティブになります。 SDK からの実行 前回作成したアプリケーションを実行します。実行が完了したら 電子メールおよびタスクが作成されていることを確認します。 上記のようにプロセスの変更時に SDK の改修が不要であり、業務 プロセスだけを修正することが可能です。 次にエラーが発生した際のトラブルシューティングを紹介します。 トラブルシューティング 操作のトラブルシューティング方法はワークフローと同様の手順で 実施します。今回はエラーを発生させるため、上記の操作に関して タスクの作成が失敗するようにカスタムプラグインを登録しました。 このカスタムプラグインのコードは以下の通りです。…


Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 2

みなさん、こんにちは。 今回は前回に続き、SDK から操作を実行する紹介します。 前回からの続き物となりますのでご注意ください。 Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 1 事前準備 操作は関連付く要求/応答クラスのカスタム メッセージを提供 します。まずはこのメッセージ情報を取得する必要があります。 1. Microsoft Dynamics CRM 2013 SDK をダウンロードします。 http://www.microsoft.com/ja-jp/download/details.aspx?id=40321 2. コマンドプロンプトを開き、sdk\bin フォルダに移動します。 3. crmsvcutil.exe を /generateActions パラメータを指定して 実行します。crmsvcutil の使い方はこちらを参照してください。 例) オンライン環境の場合 >crmsvcutil.exe /url:https://<組織名>.api.crm5.dynamics.com/XRMServices/2011/Organization.svc /out:Xrm.cs /username:<ユーザ名> /password:<パスワード> /generateActions 4. 生成された Xrm.cs ファイルを開きます。 5. new_followupLeadRequest および new_followupLeadResponse が生成されていることを確認します。 6. Visual Studio より C#…


Dynamics CRM 2013/Fall ’13 ユーザー定義アクション その 1

みなさん、こんにちは。 今回から Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM Online Fall ’13 の新機能である、ユーザー定義アクション (操作) を紹介します。 概要 通常、ビジネスプロセスを把握し改善する担当者とシステムの開発、 保守を行う担当者は異なります。ビジネスアナリストはプロセスを 開発者に伝え、開発者はシステムにプロセスを実装します。 このモデルの場合、以下の様な問題が発生します。 – 開発者がビジネスプロセスを理解する必要がある – 伝達ミス、相互理解の不足により問題が発生する – プロセスを変更するたびに改修が入る これらの問題を解消すべくユーザー定義アクションは導入されました。 アクションでは以下の機能を提供します。 – ビジネスアナリストは GUI エディターを利用して操作を作成 – 開発者は操作に関連付いた要求/応答を呼び出すプログラムのみ作成 – プログラムの完成後もビジネスアナリストは操作の編集を自由に行う ことができる。(入出力パラメータが同じ場合) 早速具体例を見ていきます。 シナリオ オープン状態の潜在顧客に対して電話活動が行われていない場合、 任意の担当者にメールで通知する必要があります。毎日 0 時にこの 処理をバッチ実行する予定ですが、今後担当者にメールで通知する 担当者の変更や、プロセスの追加が行われる可能性があります。 実装方式の候補 シナリオを実現するにはいくつかの方式が考えられます。まず夜間の バッチ処理を前提としているため SDK でコンソールアプリケーション を使用することはほぼ決まりとなりますが、処理自体は以下の選択肢 があります。 プロセスをコード内にハードコードする これは今までの方法で、上記に挙げた問題が潜在的に存在します。 ワークフローを利用する…