Quantcast
Channel: Japan Microsoft Dynamics 365 Team Blog
Viewing all 589 articles
Browse latest View live

Dynamics CRM : 2012 年 12 月 サービスアップデート 新フォームの紹介 その 6 - フォームのカスタマイズ上級編

$
0
0

みなさん、こんにちは。

今回は新フォームのカスタマイズ上級編をお届けします。
基本のカスタマイズはこちらをご覧ください。

マルチフォームサポート

新しいフォームもマルチフォームをサポートします。フォームごとに
セキュリティロールを設定することも通常のフォーム通り行えます。

以下の手順で 2 つ目以降のフォームを作成してください。

1. 既存のフォームのフォームエディターを開きます。

2. 名前を付けて保存をクリックして、新しいフォームを作成します。

※システムのカスタマイズからエンティティ | フォームを選択して
新規をクリックしても新しいフォームが作成できますが、順序で
最上位のものがコピーされますので、上記手順が確実です。

フォームの切り替えはクラシックモードを利用します。

1. フォームを開きます。

2. その他のメニューよりクラシックモードへ切り替えます。

image

3. 追加したフォームをフォームセレクターで選択します。

image

4. 一旦フォームを閉じてから、開きなおします。

ソーシャルペインの追加と削除

サポート案件のソーシャルペインはロックされているため
削除できませんが、他のエンティティからは削除が可能です。

1. フォームエディターよりソーシャルペインセクションを選択します。
※アイテム単位では削除できません。

image

2. 削除ボタンをクリックします。

3. 保存して公開します。すると以下のようにソーシャルペインが
削除されます。

image

4. ソーシャルペインを戻したい場合は、メモを挿入します。

image

5. 挿入したメモのプロパティよりラベルを非表示にします。

image

6. 形式より 1 列を選択して、十分な行数を設定します。

7. 残りのセルに必要なフィールドがあれば追加します。

8. 保存して公開します。

image

Web リソースの活用

新しいフォームでは Web リソースの活用も可能です。詳細は
別の機会にまた紹介したいと思います。

まとめ

現在 Microsoft Dynamics CRM Online および Microsoft Dynamics
CRM 2011 で利用できるフォームは通常のもの、読み取り専用、
新フォームと 3 種類ありますが、それぞれの特徴があるため
使い分けが重要なポイントとなります。

次回以降で Web リソースの活用方法や、各フォームの違いなど
紹介したいと思います。

‐ Dynamics CRM サポート 中村 憲一郎


Dynamics CRM 簡易検索のベストプラクティス

$
0
0

みなさん、こんにちは。

今日は開発者の方向けの情報として、簡易検索の
パフォーマンスをベストプラクティスを紹介します。

簡易検索機能とは

簡易検索機能とは、高度な検索と対をなす機能であり、以下の
ようにエンティティのグリッドで利用できる検索機能です。

image

では早速簡易検索の詳細を確認しましょう。

カスタマイズ方法

簡易検索はエンティティのビューとして定義されます。
各エンティティには以下のように簡易検索専用のビューが
提供されます。

image

以下の手順でカスタマイズが可能です。

1. エンティティのカスタマイズ画面より、ビューを選択します。

2. 種類が簡易検索ビューとなっているビューを開きます。

3. 表示列の変更はビュー列の追加や削除、並び替えを
利用して設定します。これは通常のビュー通りです。

4. 通常のビューと同じく、フィルター条件を編集できます。
取引先企業の場合以下のように状態としてアクティブな
ものを抽出するように設定されています。

image

5. 検索列の追加をクリックすることで、簡易検索実行時に
検索対象となる列を指定できます。

image

検索したい列が表示されない場合は、列自体が検索可能に
指定されていません。フィールドのプロパティより検索可能に
設定を行います。

image

パフォーマンスに関する考察

簡易検索はその性質上、上記設定で検索列に指定された
列に対し、前方一致検索を実施します。つまり検索文字列
として 「あ」 を指定した場合、「あ」 で始まるという意味に
なります。

数字以外を入力した場合、数字列に対する検索は最適化が
行われた結果実行されませんが、数字を入れた場合には、
数字列だけでなく文字である可能性もあるため、文字列も
検索対象となります。

またそれぞれの列に対する検索結果は OR 条件として表示
されるため、テーブルに対し複数回読み取りが実行されます。
簡易検索のパフォーマンスが悪い場合は、以下のベスト
プラクティスを参考にチューニングを行ってください。

簡易検索のベストプラクティス

- 検索列は必要に応じて既定から変更してください。できる
限り少ない列数に絞ることを推奨します。

- 検索時には極力長い文字列を入力して、検索結果が少なく
なるようにしてください。

- 検索文字列に先頭に 「*」 を利用するとテーブルスキャンが
発生するため、本当に必要な時以外は避けてください。その
場合、高度な検索を利用することを推奨します。
※高度な検索の場合、列をより明確に指定できるため

- オプションセットの検索は避けてください。これはラベルを
検索する行為であるためです。その場合は高度な検索を
利用してください。

- 設置型の場合、検索対象列に正しくインデックスが設定
されており、メンテナンスされているか確認してください。

簡易検索に関する設定

簡易検索に関して、以下 2 点の設定が存在します。

簡易検索レコード上限の設定

システム設定より有効にできる設定で、上限である 1 万件
を結果セットが超える場合、エラーを表示してクエリを実行
しません。これによりユーザーが検索文字列をより具体的
にする可能性が高くなります。

image

EnableQuickFindOptimization

Update Rollup 10 で実装された簡易検索パフォーマンス
向上機能の有効/無効を切り替えることが可能です。既定
は有効ですが、手動で無効に変更が可能です。

Update Rollup 10 以降で簡易検索が遅くなった場合のみ
設定を無効にしてください。

http://support.microsoft.com/kb/2691237/

まとめ

簡易検索はユーザーには非常に便利で手軽な機能である
一方、正しく設定、運用を行わないとパフォーマンスに影響が
出ます。多くの場合、多すぎる検索対象列とインデックスの
不在が問題を起こしているように思います。

是非今回の記事を参考に現在の設定等を見直してください。

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 SDK 5.0.14 Xrm.Page スクリプト ライブラリ テンプレートが更新されました

$
0
0

みなさん、こんにちは。

今日は開発者の方向けの情報として、SDK 5.0.14 で更新された
Xrm.Page スクリプト ライブラリ テンプレートを紹介します。

 

元情報 : http://blogs.msdn.com/b/crm/archive/2013/02/27/updated-xrm-page-script-library-template.aspx

=================================

最新バージョンである Microsoft Dynamics CRM SDK (v5.0.14) で、
更新された Xrm.Page Script Library Template が提供されています。

このテンプレートは、スクリプト開発時に Visual Studio で IntelliSense を
利用できるようにするものです。更新された内容は以下の通りです。

・ Visual Studio 2010 に加え、Visual Studio 2012 にも対応しました。
・ より強力な IntelliSense を提供します。
・ Xrm.Utility および Xrm.Page.context.getClientUrl をサポートします。

以前のバージョンに比べ、より使いやすくなっていることに私は満足
しています。詳細は以下のビデオをご覧ください。(英語)

http://www.youtube.com/watch?v=GNfDird7hWI.

テンプレート自体の詳細な情報は、以下の記事をご覧ください。
Dynamics CRM 2011 Xrm.Page スクリプト ライブラリ テンプレート
=================================

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM : 2012 年 12 月 サービスアップデート 新フォームの紹介 その 7 - 新しいフォームでの Web リソースの利用

$
0
0

みなさん、こんにちは。

本日は 2012 年 12 月サービスアップデートで提供された
新しいフォーム上で Web リソースを利用する方法を紹介します。

サポートされる Web リソース

新しいフォームではクラシックフォーム同様、画像、HTML、及び Silverlight
Web リソースがサポートされます。

サポートされるクライアントサイド SDK

Web リソースがクライアントサイトスクリプトを利用する場合には、利用
するXrm.Page オブジェクトモデルが、以下図の緑色の部分のみとなるよう
注意してください。

詳細は以下リンクを参照してください。

更新したフォームの Xrm.Page オブジェクト モデルへのアクセス

Web リソースのプロパティ

クライアントサイドスクリプトを含む Web リソースを配置する場合
不要に実行されないように既定で制御がかかっています。読み込んだ
Web リソースを実行する場合は、Web リソースプロパティ画面で
「読み取り最適化されたフォームにこの Web リソースを表示する」
にチェックを入れてから保存してください。

image

その他

以下のサンプルでは、Web リソースから Xrm.Page オブジェクトを
利用する前にロードされているか確認する方法が提供されています。

http://msdn.microsoft.com/en-us/library/jj863619.aspx

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 SDK 5.0.13 日本語版がリリースされました!

$
0
0

みなさん、こんにちは。

Microsoft Dynamics CRM 2011 SDK 日本語版 5.0.13 がリリースされました。
最新の SDK は英語版の 5.0.14 ですが、内容を日本語で確認したいことが
多々あると思いますので、是非ダウンロードしてください。

Microsoft Dynamics CRM 2011 ソフトウェア開発キット (SDK)
http://www.microsoft.com/ja-jp/download/details.aspx?id=24004

※ダウンロードページのバージョンは 5.0.14 となっていますが、本日の時点で
内容は 5.0.13 です。最新の SDK が必要な場合は、英語版を取得してください。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 Update Rollup 12 読み取り最適化フォームの新機能

$
0
0

みなさん、こんにちは。

今日は Update Rollup 12 で提供された読み取り最適化フォームの
新機能について紹介します。

読み取り最適化フォーム

読み取り最適化フォームは Update Rollup 7 で初めて提供された
機能で、従来の編集フォームではなく、リボンやスクリプトなど
編集に必要なコンポーネントの読み込みを省略し、レコードを開く
際のパフォーマンスを向上したフォームです。

詳細は以下の記事を参照してください。

Dynamics CRM 2011 読み取り最適化フォーム

Update Rollup 12 での新機能

以前の読み取り最適化フォームではいくつかの制限がありましたが
Update Rollup 12 では制限を緩和すべくいくつかの新機能を提供
しています。詳細は以下の記事を参照してください。

フォームの別のプレゼンテーションのデザイン
http://msdn.microsoft.com/ja-jp/library/hh913610.aspx#BKMK_ReadOptimizedForms

まとめ

上記の記事にある通り、Update Rollup 12 以降ではナビゲーションや
Web リソースがサポートされ、また Web リソース内でのスクリプト実行も
ある程度行えるようになりました。

いままで上記制限が理由で読み取り最適化フォームの導入を見送って
いた場合は、是非再度検討してください。

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 Update Rollup 12 非同期メンテナンスジョブの変更点

$
0
0

みなさん、こんにちは。

今日は管理者の方向けの情報として、Update Rollup 12 で変更された
非同期メンテナンスジョブの内容を紹介します。

情報元: UR12/Polaris Changes to Dynamics CRM 2011 Async Maintenance Jobs

 

Update Rollup 12 では ReindexAll、および DeletionService の
メンテナンスジョブの処理内容が変更されました。

ReindexAll ジョブの変更点

ReindexAll ジョブは元々以下の処理を行っていました。

1. 断片化したインデックスの再構成と再構築
2. データベースファイルおよびログファイルの圧縮

しかし、後半の処理は事前にファイルサイズを確保している環境では
パフォーマンスに影響があることから、ジョブ自体を停止している場合が
多々あると思います。

Update Rollup 12 ではファイルの圧縮処理は行われなくなりました。
またインデックスの断片化が 30 % 以上の場合はインデックスの再構築
を行い、30% 未満の場合は処理をスキップするようになりました。

独自のインデックスメンテナンスジョブを実装されている場合は引き続き
そちらを利用できますが、処理内容が変わったことで ReindexAll が再度
利用できるか是非ご検討ください。

DeletionService ジョブの変更点

Update Rollup 12 の新機能の 1 つに新しいメタデータ API があります。
この API を利用することでメタデータの更新情報を差分で取得することが
できますが、メタデータは追加や変更だけでなく削除処理もあるため、
あるメタデータが削除されたという記録を 90 日間の保持します。Update
Rollup 12 では DeletionService を拡張し、この削除記録を 90 日後に
削除するようになりました。よって既存の機能に対する変更はありません。

メタデータ API の詳細についてはこちらをご覧ください。

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 Update Rollup 13 がリリースされました!

$
0
0

みなさん、こんにちは。

2013 年 3 月 27 日(US 時間) に Microsoft Dynamics CRM 2011 Update Rollup 13  がダウンロードセンターにリリースされました。
次のリンクから Update Rollup 13  に関する情報を確認することができます。

マイクロソフト ダウンロード センター: http://www.microsoft.com/ja-jp/download/details.aspx?id=37133
Microsoft サポート技術情報 : http://support.microsoft.com/kb/2791312
マイクロソフト アップデート (現時点で未公開): http://catalog.update.microsoft.com/v7/site/Search.aspx?q=2791312

各種スケジュール(US 時間)
• Dynamics CRM オンライン: 現時点で予定になく、重要な修正のみ適用
• マイクロソフト ダウンロードセンター: 2013 年 3 月 27 日
• マイクロソフト アップデート: 2013 年 4 月 9  日

Update Rollup 13  概要
• Update Rollup 6 が前提条件となります。
CRM Server に Update Rollup 6 (KB2600640) が適用されていない状態で、Update Rollup 13 を適用しようとすると 「KB2600640 がこのコンピュータ上にインストールされていません」 というメッセージが表示されます。
• Update Rollup 13 はアンインストールが可能です。
• クライアント用インストールパッケージをダウンロードセンターより取得した場合には、インストールに管理者権限が必要です。
  マイクロソフト アップデート(Windows Update) を利用した場合には、管理者権限は要求されません。
• 詳細はサポート技術情報 2791312をご参照ください。

Update Rollup 13 の Windows Server 2012 サポート
Update Rollup 13 で Windows Server 2012 がサポートされますが、インストール時に更新を
適用する必要があるため、Windows Update で公開されるまでお待ちください。

Microsoft Dynamics CRM 2011 Report Authoring 拡張 (SQL Server データ ツール サポート付き)
今回のリリースで Report Authoring 拡張が SQL データツールに対応しました。
これで SQL Server 2012 と Visual Studio 2010 でレポート開発が行えます。
http://www.microsoft.com/ja-jp/download/details.aspx?id=27823

Update Rollup 13 のモジュールは 5.0.9690.3448 です。

- Dynamics CRM サポート 中村 憲一郎


Dynamics CRM 2011 SDK 5.0.15 がリリースされました!

$
0
0

みなさん、こんにちは。

先日、Microsoft Dynamics CRM 2011 用 SDK の 5.0.15  がリリース
されました。最新の SDK は以下の リンクよりダウンロード可能です。

Microsoft Dynamics CRM 2011 Software Development Kit (SDK)
http://www.microsoft.com/download/en/details.aspx?id=24004

こちらのバージョンでは以下の更新が含まれています。

- アセンブリが Update Rollup 13 に対応しました。

- メタデータブラウザが更新され、Update Rollup 12 で追加された内容も
確認できるようになりました。

‐ いくつかのページに説明が追記されました。

今回の更新は主にアセンブリを Update Rollup 13 に対応させるためですが、
開発者に有用な情報も追加されていますので、是非最新版をご利用ください。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM Developer Center リニューアル

$
0
0

みなさん、こんにちは。

先日 Microsoft Dynamics CRM Developer Center がリニューアルされ、
より見やすく、コンテンツも豊富になりました。

Developer Center
http://msdn.microsoft.com/ja-jp/dynamics/crm/jj937218

リソースセンターと同様の使用感になっています。

http://rc.crm.dynamics.com/rc/2011/ja-jp/default.aspx?ver=5.1

上記以外にも、IT Pro 向けに IT Pro Center があります。

http://technet.microsoft.com/ja-jp/library/jj992623.aspx

SDK だけでは情報が十分でない場合、是非これらのリソースも
ご活用ください。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 : 2 つのオプションセットにおける OnChange 挙動の変更

$
0
0

みなさん、こんにちは。

今日は開発者の方向けの情報としてフォームスクリプトの
OnChange イベントで変更さえた挙動を紹介します。

環境: Update Rollup 12、および 2012 年 12 月 サービスアップデート以降

変更内容

フォームスクリプトの OnChange イベントは、通常カーソルがフィールド
から離れたタイミングでトリガーされますが、以下に限り、値変更時に
すぐトリガーされます。

条件

1. フィールドの型が 2 つのオプションセット で、フォーム上にラジオボタン
またはチェックボックスとして配置されていること。
2. ブラウザが Internet Explorer 7、Internet Explorer 8 以外であること。

※Internet Explorer 7 および Internet Explorer 8 を利用している場合は
今まで通りフィールドからフォーカスが離れたタイミングでイベントが
トリガーされます。

影響

既存のスクリプトに大きな影響はありませんが、今までチェックボックスや
ラジオボタンをクリック後、別のフィールドに移らないと実行されなかった
スクリプトが、条件を満たすことで変更時にすぐ実行されるため、より
ボタン的な動作を期待できます。

参考 URL http://msdn.microsoft.com/en-us/library/gg334701.aspx#BKMK_OnChangeEvent

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011: Xrm.Utility の紹介

$
0
0

みなさん、こんにちは。

今回は開発者の方向けの情報として、スクリプトで利用できる Xrm.Utility
を紹介します。こちらの機能は Update Rollup 8 で提供されましたが、先日
公開された Visual Studio 向けのScript Template でもサポートされました。

情報元 : http://msdn.microsoft.com/ja-jp/library/jj602956.aspx

Xrm.Utility

Microsoft Dynamics CRM 2011 および Microsoft Dynamics CRM Online で
スクリプトを開発をしている場合、Xrm.Page オブジェクトモデルを利用でき、
コンテキストやフォームの要素、また読み込まれているデータへアクセス
が容易に行えます。

Xrm.Utility は Xrm.Page とは異なる名前空間であり、目的も異なります。
Xrm.Utility は以下の関数を提供します。

openEntityForm: エンティティフォームを開くことができます。
openWebResource: Web リソースを開くことができます。

window.open との最大の違いは、特定の環境や状況でユーザーが
ログインの為の認証を聞かれないことと、開いたフォームのサイズや
見た目が通常のフォームと同等であることです。また日本語環境では
文字列を URL Encode する必要がない点も重要です。

利用条件

Xrm.Utility はフォームやリボンスクリプト等、スクリプトをサポートする
ページで利用できます。Web リソース内で利用する場合は、
ClientGlobalContext.js.aspx を読み込んでください。

openEntityForm 関数

エンティティフォームを開く関数です。以下の引数を取ります。

name : エンティティの論理名です。
id : 開きたいレコードの GUID です。省略した場合新規フォームが開きます。
parameters : 複数フォームの場合、開きたいフォームの GUID を指定したり、
開いたフォームの初期値を渡すことができます。その他にもカスタムの
クエリ文字列を渡すことが可能ですが、この場合フォーム側でカスタム
クエリ文字列を受け付けるようにする必要があります。次回紹介します。

例えば以下のコードは新規の取引先企業フォームを開き、また
初期値として名前と電話番号を設定しています。

var parameters = {};
parameters["name"] = "XrmUtility テスト";
parameters["telephone1"] = "(425) 555-1234";
Xrm.Utility.openEntityForm("account", null, parameters);

このコードにより開かれるフォームのアドレスを確認すると、以下のように
日本語部分がエンコードされています。

name%3dXrmUtility%2520%25E3%2583%2586%25E3%2582%25B9%25E3%2583%2588

openWebResource 関数

Web リソースを開くことができます。以下の引数を取ります。

webResourceName : 開きたい Web リソース名です。
webResourceData : Web リソースに渡すパラメータです。
width : 開くウィンドウの幅です。
height : 開くウィンドウの高さです。

上記の通りただ開くだけでなくパラメーターも渡せますので、完全な
機能が利用できます。Web リソースへのパラメータの受け渡しの
詳細はまた紹介します。

まとめ

今回は既に日本語化されている SDK の記事から、利用頻度が
高いと思われるものを紹介しました。今後も既に日本語化されて
いる SDK であっても重要なものはブログでも紹介いたします。

‐ Dynamics CRM サポート 中村 憲一郎

Microsoft Dynamics CRM 2011 を Windows Server 2012 にアップグレード

$
0
0

みなさん、こんにちは。

先日公開された Update Rollup 13  が Windows Update にも公開されました。

http://catalog.update.microsoft.com/v7/site/Search.aspx?q=2791312

これにより Microsoft Dynamics CRM 2011 を Windows Server 2012 にインストール可能になりました。
また既に Microsoft Dynamics CRM 2011 がインストールされているサーバーを Windows Server 2012 にアップグレードする手順も以下のサイトに公開されていますので、是非ご覧ください。(英語)

How to upgrade a Microsoft Dynamics CRM Server application to Windows Server 2012
http://technet.microsoft.com/en-us/library/dn167638.aspx

今後 Windows Server 2012 上で Microsoft Dynamics CRM 2011
を利用する Tips も随時公開していきます。

- Microsoft Dynamics CRM サポート

Dynamics CRM 2011 : フォームでカスタムパラメーターを利用する

$
0
0

みなさん、こんにちは。

前回スクリプトで利用できる Xrm.Utility クラスを紹介しましたが、
その中でフォームに初期値を渡す方法を説明しました。今回は
各フィールドの初期値以外に、カスタムパラメーターをフォームに
渡す方法を紹介します。

フォーム側での設定

フォームにカスタムパラメーターを渡すためには、まずフォーム
側で設定を行う必要があります。

1. 任意のフォームのフォームエディターを開きます。ここでは
取引先企業の情報フォームを利用します。

2. フォームのプロパティボタンをクリックします。

image

3. パラメータータブをクリックします。

image

4. 緑のプラスボタンをクリックします。任意の名前を設定し、
パラメータの型を指定します今回は 以下の組み合わせを
登録しました。実施には他のソリューションと重複しないように
固有のプリフィックスを利用することを推奨します。

image

名前: CustomString_0
型: SafeSring

名前: CustomNumber_1
型: Integer

image

5. 保存します。

スクリプトでパラメーターを利用

上記で設定したものをスクリプトで利用できます。

1. 引き続き上記のフォームエディターを利用します。フォームの
プロパティからイベントを選択し、フォームライブラリで追加を
クリックします。

image

2. レコードの検索画面で、新規ボタンをクリックします。新しい
Web リソースの画面が開きます。

3. 任意の名前を指定し、種類からスクリプトを選択します。
ここでは FormParameterTest.js としました。

4. テキスト エディターボタンをクリックします。

5. 以下のコードを貼り付けます。パラメーターは Xrm.Page
の context から getQueryStringParameters 関数で取得します。

function parameterTest()
{
   var param=Xrm.Page.context.getQueryStringParameters();
   alert('Customer String: ' + param["CustomString_0"]);
   alert('Customer Number: ' + param["CustomNumber_1"]);
}

6. 保存して閉じます。作成した Web リソースが選択されて
いることを確認して、OK をクリックします。

7. イベントハンドラーの項目で作成した関数を OnLoad に
指定します。

image

呼び出し元の変更

前回の記事で利用したスクリプトにカスタムパラメーターを
追加します。

var parameters = {};
parameters["name"] = "XrmUtility テスト";
parameters["telephone1"] = "(425) 555-1234";
parameters["CustomString_0"] = "カスタムパラメーター";
parameters["CustomNumber_1"] = 10;
Xrm.Utility.openEntityForm("account", null, parameters);

上記スクリプトを利用してフォームを開いた場合、成功すると
以下のようにメッセージが出ます。

image

image

まとめ

任意の場所からフォームを開く場合に、どこから開いたかに
よってアクションを変えたい場合などにカスタムパラメーター
を試してください。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011: セキュリティロール システム内部用の権限について

$
0
0

みなさん、こんにちは。

今日は管理者の方向けの情報として、セキュリティーロールの
権限についての情報を提供します。

For internal use only 権限

セキュリティーロールで設定できる権限には、エンティティに対する
権限と、機能に対する権限がありますが、一部の権限はシステム
内部で利用されており、実際のどのような処理に利用されているのか、
またどのように設定すべきか不明なものがあります。これらの権限は
SDK でも for internal use only と記述があるだけで、詳細がない
場合があります。

今回はサポートセンターにお問い合わせのあるものから、代表的な
ものをご紹介します。

コア レコードの権限

アプリケーション ファイル
アプリケーションファイルはすべてのユーザーで読み込みが行える
よう設定を行ってください。こちらはシステムが内部的に利用している
エンティティで、レポートウィザードを使用して作成するレポートの
テンプレートや、再インポート用のエクセルエクスポートで利用する
テンプレート、また各種スキーマ情報を保持しています。

ただしレポートウィザードのようにウィザード形式で実行される機能は
別途以下の権限も必要となります。

ウィザード ページ、Web ウィザード、Web ウィザードのアクセス特権
こちらもすべてのユーザーで読み込みが行えるよう設定をしてください。
レポートウィザードやソリューションのインポートなど、ウィザード形式で
行う作業で必要になります。

ユーザー エンティティの UI 設定
すべての操作に対して、ユーザーレベルの権限を設定してください。
こちらのエンティティはユーザーが最後に開いたフォームやレコード
の記録を保持するために利用されます。尚、マルチフォームを利用
しない場合にも必須になります。

ユーザー エンティティのインスタンス データ
すべての操作に対して、ユーザーレベルの権限を設定してください。
Outlook クライアントを利用している場合に、フラグを立てることが
できますが、そのフラグ情報を格納します。Outlook クライアントを
利用しない場合にも、内部的に他の用途で利用する可能性が
あるため、設定をお願いします。

マーケティングの権限

インターネットマーケティング モジュール関連
インターネットマーケティングモジュールは北米版の Microsoft
Dynamics CRM Online でのみ利用可能なモジュールであるため
アジア版では影響がありません。

事業部管理の権限

別のユーザーの代わりに操作します
この権限は、SDK で偽装を使用する場合に必要となります。詳細は
以下の記事を参照してください。

http://msdn.microsoft.com/ja-jp/library/gg334744.aspx

その他の問題

上記以外によくあるお問い合わせとしてカスタムエンティティの
権限に関する問題があります。カスタムエンティティを作成し、公開
したにも関わらず、ユーザーのサイトマップ上でカスタムエンティティ
が表示されないという問題です。カスタムエンティティ作成時に、
システム管理者は自動的に権限が付与されますがの、その他の
セキュリティロールを利用しているユーザーへは自動的に権限
が付与されないため発生する問題のため、手動で必要な権限を
ユーザー定義エンティティタブで別途設定してください。

まとめ

新規にカスタマセキュリティロールを作成する場合は、既存のロール
から近いものをコピーすることで、上記のような内部用権限の設定を
考慮する必要が少なくなりますが、セキュリティの要件が厳しい場合、
詳細な情報が必要となる場合があります。

こちらの記事が参考になれば幸いです。

‐ Dynamics CRM サポート 中村 憲一郎


Dynamics CRM 2011 SDK : Windows Server 2012 及び Windows 8 上で SDK サンプルを利用する際の注意

$
0
0

みなさん、こんにちは。

今日は開発者の方向けの情報として、Windows Server 2012 及び
Windows 8 上で SDK サンプルを利用する際の注意点を紹介します。

元記事: How to build and run the Dynamics CRM SDK samples on Windows Server 2012 and Windows 8

=========================================================

Windows Sever 2012 または Windows 8 上で Microsoft Dynamics CRM 2011
SDK のマネージコードサンプルコンパイル時にエラーが出る場合があります。

エラー: 'Microsoft.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse'
does not contain a definition for... Could not resolve this reference. Could not locate
the assembly "Microsoft.IdentityModel"

また、他環境でコンパイル済みの実行ファイルを利用した場合、以下のエラー
が出る場合があります。

エラー: System.IO.FileNotFoundException was unhandled by user code HResult=
-2147024894 Message=Could not load file or assembly 'Microsoft.IdentityModel,

原因は Windows Identity Foundation 3.5 から 4.5 に更新された際、名前空間や
メソッドなどいくつかの変更が入ったためです。対処は以下の通りです。

1. Windows Server 2012 または Windows 8 上でコマンドプロンプトまたは
PowerShell を管理者として起動します。

2. 以下のコマンドを実行して、WIF 3.5 をインストールします。

dism /online /enable-feature:windows-identity-foundation

※ Windows Server 2012 の場合は役割と機能の追加から、Windows 8 の
場合は Windows 機能の有効化/無効化からでもインストール可能です。

3. サンプルのコンパイルを実行して、エラーが出ないことを確認します。

Windows Azure サンプル

Windows Azure のサンプルの場合、前提条件である Azure SDK 1.8 以降
をインストールした後、Microsoft.ServiceBus.dll の参照を一旦削除した後
再度参照を追加しなおしてください。

WIF 3.5 と WIF 4.5

WIF 3.5 から WIF 4.5 の変更点や移行する場合のガイドラインは以下の
リンクを参照してください。

WIF 3.5 でビルドされたアプリケーションを WIF 4.5 に移行するためのガイドライン
http://msdn.microsoft.com/ja-jp/library/jj157089.aspx

=========================================================

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011 : 活動の関連参照ダイアログの既定エンティティを変更する

$
0
0

みなさん、こんにちは。

今日は開発者および管理者の方向けの情報として活動の関連
参照ダイアログの新機能を紹介します。

背景

各種活動に関連を設定することが出来ますが、既定では取引先
企業が検索対象となっています。選択できる対象が非常に多い
ことが関連の特徴ですが、既定を変えたいという声を今までに
多くいただきました。

image

そこで Update Rollup 11 から、関連参照ダイアログの既定の
エンティティを変更する手段を提供しています。

手順

1. 以下の記事を参照していただき、OrgDbOrgSettings ツールを
入手します。尚、最新の Update Rollup のダウンロードページ
からツールを入手してください。

Dynamics CRM 2011 用 OrgDBOrgSettings ツールの案内

2. 上記記事を参考に設定ファイルを編集後、以下のコマンドを
実行して現在の設定を取得します。

Microsoft.Crm.SE.OrgDBOrgSettingsTool.exe Retrieve /u <組織の固有ID>

3. SetRegardingLookupDefaultEntityType  に値が設定されていない
ことを確認します。

4. 以下のコマンドで値を設定します。以下の例では初期の
エンティティとしてサポート案件 (incident) を指定しています。

Microsoft.Crm.SE.OrgDBOrgSettingsTool.exe Update /u <組織の固有ID> SetRegardingLookupDefaultEntityType  incident

5. Update successful のメッセージが出れば更新完了です。

6. 画面より初期値が変わっていることを確認します。

image

まとめ

こちらのツールを利用することで各種設定を安全に
変更できます。他にも気になるオプションがあれば
コメントをいただければ紹介いたします。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM Online 自習書シリーズ 新バージョン公開のお知らせ

$
0
0

みなさん、こんにちは。

本日新しいバージョンの Dynamics CRM Online 自習書シリーズ
が公開されました。これから Microsoft Dynamics CRM Online を
利用する方も、既に利用している方も、是非一度ご覧ください。

Dynamics CRM Online 自習書シリーズ
http://technet.microsoft.com/ja-jp/cloud/crm_learning

Dynamics CRM Online を利用される業務を想定し、その業務シナリオに
沿って Dynamics CRM Online の基本的な機能を学習いただける自習書です。
本自習書はクラウド型の Dynamics CRM Online に基づいておりますが、
設置型の Dynamics CRM Server 2011 にも適用できます。本書に記述されて
いる機能的な内容は設置型の Dynamics CRM Server 2011 と一部を除いて
同等であるためです。

‐ Dynamics CRM サポート 中村 憲一郎

Dynamics CRM : コードレビュー事例 : イメージを利用したプラグイン

$
0
0

みなさん、こんにちは。

今回は開発者の方向けの情報として、北米 PFE ブログからプラグインの
コーディングに関する記事を紹介します。

元情報 : Code Review: Refactored Handling of Plug-in Pre-Image Attribute Values

===============================================================
最近関わった Microsoft Dynamics CRM 2011 のプラグインに関するコードレビュー
プロジェクトで、カスタムコードが��り返し利用されるパターンに気が付きました。
このような場合、繰り返されるコードをメソッドとして記述することで、プラグイン
で利用するコードをより簡潔にできると共に、メンテナンス性も向上します。

問題のコードは pre-image を利用して処理前のエンティティの列情報を確認する
ものですが、これは Update プラグインでよく利用されるシナリオです。Update
処理では、実際に更新される列の情報のみがプラグインに引き渡されるため、
その他の更新されない列の情報は確認が行えません。

イメージを利用することで、処理の前後におけるレコードの任意の列情報を
プラグインに引き渡すことが可能になります。この機能を利用すれば、不要な
Retreive をプラグイン内で実行する必要がなくなり、パフォーマンスが向上
しますが、フィールドの情報を取得する際、InputParameter と Image の両方
から値を取得する必要があります。通常以下の流れになります。

1. プライマリエンティティよりフィールドの値の取得を試みる。
2. 値が取得できた場合はそれを利用する。
3. 値が取得できない場合は、イメージから値の取得を試みる。
4. 値が取得できたらそれを利用する。
5. 値が取得できない場合は既定値を利用する。

実際のコードでは以下のようになります。

Common Scenario
int value = -1; //default value

if (entity.Contains("attributename"))
{
  value = entity.GetAttributeValue<int>("attributename");
}
elseif (preImage.Contains("attributename"))
{
  value = preImage.GetAttributeValue<int>("attributename");
}

次に上記処理をメソッド化してみます。ここでは拡張メソッドを利用します。

Extension Method
public static class EntityExtensions
{
  ///<summary>
  /// Extension method to get an attribute value from the entity
  /// or its image snapshot
  ///</summary>
  ///<typeparam name="T">The attribute type</typeparam>
  ///<param name="entity">The primary entity</param>
  ///<param name="attributeLogicalName">Logical name of the attribute</param>
  ///<param name="image">Image (pre/post) of the primary entity</param>
  ///<returns>The attribute value of type T</returns>
  ///<remarks>If neither entity contains the attribute, returns default(T)</remarks>
  public static T GetAttributeValue<T>(thisEntity entity,
                                       string attributeLogicalName,
                                       Entity image)
  {
   return entity.GetAttributeValue<T>(attributeLogicalName, image, default(T));
  }

  ///<summary>
  ///Extension method to get an attribute value from the entity or image
  ///</summary>
  ///<typeparam name="T">The attribute type</typeparam>
  ///<param name="entity">The primary entity</param>
  ///<param name="attributeLogicalName">Logical name of the attribute</param>
  ///<param name="image">Image (pre/post) of the primary entity</param>
  ///<param name="defaultValue">The default value to use</param>
  ///<returns>The attribute value of type T</returns>
  public static T GetAttributeValue<T>(thisEntity entity,
                                       string attributeLogicalName,
                                       Entity image,
                                       T defaultValue)
  {
      return entity.Contains(attributeLogicalName)
          ? entity.GetAttributeValue<T>(attributeLogicalName)
          : image != null&& image.Contains(attributeLogicalName)
              ? image.GetAttributeValue<T>(attributeLogicalName)
              : defaultValue;
  }
}

このコードを利用すると、もともとのコードは以下のように変更できます。

Refactored Scenario
int value = entity.GetAttributeValue<int>("attributename", preImage, -1);

もし同じコードを何度も繰り返し記述するのであれば、メソッド化するべきです。

PFE で実施しているコードレビューサービスに興味がありますか?Microsoft
Dynamics CRM サービスを拡張するマネージドコードの解析から、クライアント
サイドで実装される JavaScript までレビュー対象であり、ベストプラクティスや
設計、セキュリティ、パフォーマンス、メンテナンス性、サポート性を考慮した
レビューを実施しています。また場合によってはサンプルコードを提示して
具体的に問題を指摘します。
===============================================================

まとめ

上記は北米 PFE のコードレビュー事例ですが、日本でも同様のサービスを
提供しています。興味があるお客様は是非契約担当までご相談ください。
尚、拡張メソッドについては以下の記事をご参照ください。

http://msdn.microsoft.com/ja-jp/library/vstudio/bb383977.aspx

- Dynamics CRM サポート 中村 憲一郎

Dynamics CRM 2011: Visual Ribbon Editor の紹介

$
0
0

みなさん、こんにちは。

今日は開発者の方向けの情報として、Visual Ribbon Editor を
紹介します。

Visual Ribbon Editor

Visual Ribbon Editor はリボンの編集を GUI を利用して実施できる
ツールであり、以下のアドレスからダウンロードが可能です。

http://crmvisualribbonedit.codeplex.com/

※Codeplex 上のツールはソースが公開されており、サポート
センターではサポートされませんので、事前にご了承ください。

こちらのツールを利用すれば複雑な XML を理解する必要が
なく、視覚的にリボンのカスタマイズを行うことが可能です。

まずは接続

1. 上記アドレスより Visual Ribbon Editor をダウンロードして、
任意のフォルダに解凍します。

2. 解凍したフォルダより、VisualRibbonEditor.exe を実行します。

3. 画面上一番左にある、接続アイコンをクリックします。

image

4. Microsoft Dynamics CRM に接続する情報を入力します。
設置型、IFD、オンラインに対応しています。

image

5. OK ボタンをクリックします。

6. 接続アイコン横の Open ボタンをクリックします。

7. 編集したいエンティティか、Application Ribbons を選択します。
今回は競合企業を試してみます。

image

8. OK をクリックします。

image

9. 以下の画面が出てリボンのロードが始まります。

image

10. ロード完了後リボンが表示されます。

image

リボンのカスタマイズ

フォームリボンのカスタマイズ

では早速カスタマイズを始めましょう。既定でフォームリボンが
選択されていますので、まずフォームリボンをカスタマイズします。

ボタンを隠す

保存して新規作成ボタンを隠してみます。

1. Save and New ボタンを選択します。

2. 画面上部にある Hide Button をクリックします。クリックすると
すぐボタンが隠れます。

3. 画面上部の Save ボタンをクリックします。確認の画面が出る
ので、OK をクリックします。

4. 以下の画面が出て保存が実行されます。

image

5. 保存完了後、実際の画面を確認します。ボタンが隠れています。

image

隠したボタンを再び表示する

1. Visual Ribbon Editor に戻り、画面上の Un-Hide ボタンを
クリックします。

2. 現在隠しているボタンの一覧が出るので、再表示したいものを
選択して、OK をクリックします。

image

3. 画面に表示されたことを確認して、Save ボタンをクリックします。

4. 実際の画面でもボタンが戻ることを確認します。

他にもタブ単位で非表示することや、カスタムボタン、グループの作成、
変更した XML の表示が行えます。

グリッド、サブグリッドリボンのカスタマイズ

次にグリッドリボンもカスタマイズしてみます。

1. 画面上部の Ribbon Type より、Homepage を選択します。

image

2. グリッド画面のリボンが読み込まれます。

3. 先ほどと同じ手順で不要なボタンを隠してみてください。

サブグリッドのリボンを変更したい場合は、Sub-Grid を選択します。

アプリケーションリボンのカスタマイズ

次にアプリケーションリボンを変更してみます。

1. 画面上部の Open  ボタンをクリックします。

2. Application Ribbons を選択して、OK をクリックします。

3. Ribbon Type よりカスタマイズできる対象を確認します。

image

4. 任意のリボンを選択して、カスタマイズしてみてください。

Ribbon Editor ソリューション

ツールで変更した内容は直接既定のソリューションを編集せず、
RibbonEditor というカスタムソリューションを作成して、そちらに
保存されます。

よって変更した情報を他の環境へ移行することも容易です。

image

まとめ

リボンのカスタマイズは XML を直接編集する必要があり、難易度が
比較的高く、またエラーにもなりやすいものですが、このようなツールを
活用することで効率よく開発が行えます。ただしツールで対応できない
ものもありますので、その際は引き続き手動での開発が必要です。

‐ Dynamics CRM サポート 中村 憲一郎

Viewing all 589 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>