Japan Dynamics CRM Team Blog
News and views from the Microsoft Japan CRM Team

February, 2012

  • Japan Dynamics CRM Team Blog

    Microsoft Dynamics CRM 互換性リスト

    • 0 Comments

    みなさん、こんにちは。

    今回は管理者向けの記事として、Microsoft Dynamics CRM と
    互換性のある製品とバージョンの一覧を示した KB を紹介します。

    Microsoft Dynamics CRM Compatibility List
    http://support.microsoft.com/kb/2669061

    こちらには Microsoft Dynamics CRM 4.0 および 2011 の互換性
    情報が記載されており今後も更新されますので、定期的にご覧ください。

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

  • Japan Dynamics CRM Team Blog

    Microsoft Dynamics CRM 2011 / オンライン関連リンクの紹介

    • 0 Comments

    みなさん、こんにちは。

    今回は改めて Microsoft Dynamics CRM 2011 およびオンラインに関連するリンクを紹介します。

    Microsoft Dynamics CRM ホーム
    http://crm.dynamics.com/ja-jp/home
    このページでは、製品の機能紹介や事例紹介を行っており、サポートの情報や
    セミナー情報等、他リソースへのリンクも提供しています。

    Microsoft Dynamics CRM セミナー情報
    http://www.microsoft.com/japan/dynamics/crmseminar/default.mspx
    今後開催される Microsoft Dynamics CRM 関連のセミナーを紹介しています。

    Dynamics CRM Online Tech センター
    http://technet.microsoft.com/ja-jp/cloud/gg454579
    Microsoft Dynamics CRM オンラインに関連する情報を提供しています。
    Micorosft Dynamics CRM オンラインは 設置型とほぼ同じ機能を提供する
    ことから、設置型に関しても有用な情報があります。

    Dynamics CRM Online 自習書シリーズ
    http://technet.microsoft.com/ja-jp/cloud/gg454580
    実際の操作方法等を自習書形式で紹介しています。これから製品を触る
    方にお勧めです。

    Microsoft Dynamics CRMリソースセンター
    https://rc.crm.dynamics.com/rc/2011/ja-jp/on-prem/default.aspx
    Microsoft Dynamics CRM の利用方法に関して、さまざまなコンテンツが
    集約されています。製品の使い方が分からない場合にご活用ください。

    Microsoft Dynamics CRMフォーラム
    http://social.technet.microsoft.com/Forums/ja-JP/crmja/threads
    日本語で情報交換ができる場です。質問するもよし、回答するもよし、
    多くの方のご利用をお待ちしております。

    Microsoft Dynamics CRMユーザー会
    http://www.microsoft.com/japan/dynamics/ug/default.mspx
    Microsoft Dynamics 製品全般でのユーザー会です。まだ入会されて
    いない方は、是非入会をご検討ください。

    Microsoft Dynamics CRM ブログ
    http://blogs.msdn.com/b/crm
    North America チームの Dynamics CRM ブログです。多くの情報が
    頻繁に更新されています。英語のみですが、興味がある記事で翻訳の
    希望があれば、コメント欄よりおねがいします。

    Microsoft Dynamics CRM 2011 SDK (英語が最新情報)
    http://msdn.microsoft.com/ja-jp/library/gg309408.aspx
    http://msdn.microsoft.com/en-us/library/gg309408.aspx
    Microsoft Dynamics CRM 2011 用 SDK のリンクです。英語版のほうが
    より新しいバージョンとなっていますので、ご利用の場合はあわせて
    ご確認ください。

    Microsoft Dynamics CRM 2011 Developer Training Kit (英語)
    http://www.microsoft.com/download/en/details.aspx?id=23416
    こちらも英語のドキュメントですが、開発者向けにまとまった資料が
    提供されています。ビデオ、プレゼンテーション、ラボ、ハンズオン等
    是非一度お試しください。

    他にも有用なリンクがあれば、今後追加していきます。

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

  • Japan Dynamics CRM Team Blog

    Dynamics CRM 2011 Silverlight ナビゲーション アプリケーションの利用

    • 0 Comments

    みなさん、こんにちは。

    今回は開発者向けに US の Premium Field Engineering チームブログの記事を
    紹介します。この記事では Silverlight Web リソースの開発手法に関して紹介しています。
    紹介するにあたり一部意訳、構成変更をしていますので、是非元記事もご覧ください。

    情報元 : Building Multi-Purpose Silverlight Web Resources in Dynamics CRM 2011

    Dynamics CRM 2011 の拡張において、様々な箇所で再利用が可能でかつ既存の UI の
    拡張にも利用可能である Web リソースの存在はとても重要です。Web リソースを利用した
    UI の拡張機能は、ASP.NET や Web Form、MVC アプリケーションを利用した拡張の代替手段
    として機能し、認証等の複雑な処理を考える必要がありません。

    Dynamics CRM 2011 の Web リソースに関する詳細な情報は以下のリンクをご覧ください。
    Microsoft Dynamics CRM の Web リソース
    http://msdn.microsoft.com/ja-jp/library/gg309473.aspx

    これらの利点に加え、Dynamics CRM 2011 ではより充実したユーザーエクスペリエンスを
    提供できる Silverlight (.XAP) を Web リソースとしてサポートしています。この記事では
    Silverlight Web リソースを利用して開発する際の手法に関して情報を提供します。

    Silverlight Web リソースを利用した開発のトレンド

    今のところ Silverlight Web リソースは、エンティティのフォームのような UI を拡張するために
    用いられることが多いようです。開発の現場では、画面やパーツごとに XAP ファイルを作成して
    います。規模が小さい場合はあまり問題になりませんが、規模が大きくなるにつれこの手法では
    ソリューションのトータルサイズが増大していき、フォームやページを開く場合のパフォーマンスに
    懸念が出てきます。

    例えば以下のようなものがソリューションのサイズを大きくする要因です。

    - WCF データサービスが生成したクラス (csdl ファイ���)
    - 自社開発の複数の XAP で共有されるライブラリやリソース
    - サードパーティー製のライブラリ

    OrganizationData.svc 用のクラスは数 MB のサイズがあり、結果として XAP ファイル
    のサイズに影響します。特にカスタムエンティティが多い環境では、その分生成される
    ファイルサイズも大きくなります。

    また共有ライブラリやサードパーティー製のライブラリを Silverlight 開発に利用する場合にも、
    その参照数により XAP のサイズは大きくなります。もしそれらのライブラリを参照する XAP が
    5、10、20 と増えていくと、重複した参照を含む XAP がソリューションのサイズを圧迫します。

    Silverlight ナビゲーション アプリケーション

    上記の状況を避ける手法として、Silverlight ナビゲーション アプリケーションが考えられます。
    Silverlight ナビゲーション アプリケーションでは、それぞれの画面はビューとして定義され、
    ユーザーがビューを指定することで、メインページを開く際に任意のビューを開くことが可能です。
    この場合複数のビューが同じアプリケーションとして実装されるため、ライブラリ参照やサービス
    参照を共有できます。

    Silverlight ナビゲーションの詳細は、以下を参照してください。

    ナビゲーションの概要
    http://msdn.microsoft.com/ja-jp/library/cc838245(v=VS.95).aspx

    Dynamics CRM でこのアプローチを利用するには、まず 1 つの Silverlight ナビゲーション
    アプリケーションを作成し、複数のビューで参照されるライブラリやサービス参照を追加します。
    そして実際の画面はそれぞれビューとして定義します。

    ユーザーが Silverlight Web リソースを読み込む際に、ビュー名を引数として渡すことで
    任意のビューを表示させることが可能です。

    もし開発規模がそれほど大きくない場合、全てのビューを含む Silverlight Web リソースを
    1 つだけ利用できますが、規模が大きい場合や複雑なソリューションを開発する場合には
    その機能等でグループ化して、別の Web リソースとするほうが良いこともあります。
    開発の規模や 開発者の数とバランスを取るようにしてください。

    では実際にどのようにこの手法が利用できるか、以下に解説します。

    Silverlight ナビゲーション アプリケーションの適用方法

    ※元記事と内容を少し変えています。元記事も是非参考にしてください。

    Silverlight ナビゲーション アプリケーションの開発

    以下のシナリオを考えます。

    営業案件のフォームを拡張して、3 つの Silverlight コントロールを配置する。

    - 顧客の情報の詳細表示画面
    - 編集可能な製品のリストをサブグリッドとして表示

    通常であれば、2 つの XAP を開発しますが、今回は上記 2 つの機能用のビューを
    含んだ 1 つの Silverlight ナビゲーション アプリケーションを開発します。
    尚、各画面の開発の詳細は省略します。

    1. Visual Studio 2010 を起動します。

    2. Silverlight より Silverlight ナビゲーション アプリケーションを選択します。
    アプリケーション名は Microsoft.Xrm.SilverlightNavSample としました。

    image

    3. MainPage.xaml の Grid を以下のように書き換えます。
    UriMapper でどのビューにユーザーを誘導するかを指定しています。

    またサービス参照やライブラリ参照等、必要な参照を追加します。

    <Grid x:Name="LayoutRoot" Style='{StaticResource LayoutRootGridStyle}'>
        <Grid.Resources>
            <!-- Uri Mapping -->
            <uriMapper:UriMapper x:Key="NavigationMapping">
                <uriMapper:UriMapping Uri="/{webResource}" MappedUri="/Views/{webResource}.xaml"/>
            </uriMapper:UriMapper>
        </Grid.Resources>
        <navigation:Frame x:Name="MainContentFrame"
                            Loaded="MainContentFrame_Loaded"                          
                            UriMapper="{StaticResource NavigationMapping}">           
        </navigation:Frame>
    </Grid>

    ※2012 年 5 月 21 日追記※
    また、コードビハインドファイル内の、 MainContentFrame_Loaded メソッド
    にて、インプットパラメーターを処理する必要があります。

    private void MainContentFrame_Loaded(object sender, RoutedEventArgs e)
    {

        // インプットパラメータを取得
        if (App.Current.Host.InitParams.ContainsKey("data"))
        {
            var viewUriString = string.Format("/{0}", App.Current.Host.InitParams["data"].ToString());
            MainContentFrame.Navigate(new Uri(viewUriString, UriKind.Relative));
        }

    4. ビューを追加します。まず顧客の情報の詳細表示画面用にページを
    追加して、OpportuntyCustomerDetailsView.xaml とします。Views
    フォルダを右クリックして、追加 | 新しい項目をクリックします。

    5. Silverlight ページを選択して、OpportuntyCustomerDetailsView と
    名前を設定します。

    image

    6. OpportuntyCustomerDetailsView.xaml を開いて、Grid に以下の
    内容を追加します。

    <sdk:Label Content="取引先企業番号 :" Height="20" HorizontalAlignment="Left" Margin="10,10,0,0" Name="lblAccountNumber" VerticalAlignment="Top" Width="120" />
    <TextBox Height="20" HorizontalAlignment="Left" Margin="154,10,0,0" Name="txtAccountNumber" VerticalAlignment="Top" Width="161" />
    <sdk:Label Content="取引先責任者 :" Height="20" HorizontalAlignment="Left" Margin="10,45,0,0" Name="lblPrimaryContact" VerticalAlignment="Top" Width="120" />
    <TextBox Height="20" HorizontalAlignment="Left" Margin="154,45,0,0" Name="txtPrimaryContact" VerticalAlignment="Top" Width="161" />
    <sdk:Label Content="代表電話 :" Height="20" HorizontalAlignment="Left" Margin="10,80,0,0" Name="lblMainPhone" VerticalAlignment="Top" Width="120" />
    <TextBox Height="20" HorizontalAlignment="Left" Margin="154,80,0,0" Name="txtMainPhone" VerticalAlignment="Top" Width="161" />

    画面は以下のようになります。

    image

    7. 必要に応じて OpportuntyCustomerDetailsView.xaml.cs にコードを
    記述します。今回は省略します。

    8. 同じ手順で OpportunityForcastGridView.xaml を追加します。
    また OpportunityForcustGridView.xaml で Grid の代わりに以下を
    追加します。

    <ScrollViewer x:Name="LayoutRoot">
        <StackPanel Width="650">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <Button Grid.Column="0">
                    <TextBlock Text="製品の追加"/>
                </Button>
                <Button Grid.Column="1">
                    <TextBlock Text="変更の保存"/>
                </Button>
                <Button Grid.Column="2">
                    <TextBlock Text="製品の除外"/>
                </Button>
            </Grid>
            <sdk:DataGrid AutoGenerateColumns="False" Height="150" Name="ForecastGrid" >
                <sdk:DataGrid.Columns>
                    <sdk:DataGridCheckBoxColumn Width="35"/>
                    <sdk:DataGridTextColumn Header="製品名" Width="275" />
                    <sdk:DataGridTextColumn Header="見積金額" Width="100" />
                    <sdk:DataGridTextColumn Header="見積数" Width="100" />
                    <sdk:DataGridTextColumn Header="見積合計" Width="125" />
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
            <Grid HorizontalAlignment="Right">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="95"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <TextBlock Grid.Row="0" Grid.Column="0" Text="合計:"  FontSize="13" HorizontalAlignment="Right"/>
                <TextBlock Grid.Row="1" Grid.Column="0" Text="合計予測:"  FontSize="13" HorizontalAlignment="Right"/>
                <TextBlock Grid.Row="2" Grid.Column="0" Text="マージン見積:"  FontSize="13" HorizontalAlignment="Right" FontWeight="Bold"/>
                <TextBlock Grid.Row="3" Grid.Column="0" Text="コミッション見積:"  FontSize="13" HorizontalAlignment="Right" FontWeight="Bold"/>
                <TextBlock Grid.Row="0" Grid.Column="1"  FontSize="13" Text="$0.00"/>
                <TextBlock Grid.Row="1" Grid.Column="1"  FontSize="13" Text="$0.00"/>
                <TextBlock Grid.Row="2" Grid.Column="1"  FontSize="13" FontWeight="Bold" Text="$0.00"/>
                <TextBlock Grid.Row="3" Grid.Column="1"  FontSize="13" FontWeight="Bold" Text="$0.00"/>
            </Grid>
        </StackPanel>
    </ScrollViewer>

    画面は以下のようになります。

    image

    9. 必要に応じて OpportunityForcastGridView.xaml.cs にコードを
    記述します。今回は省略します。

    10. 上記手順より、ソリューション構成は以下のようになります。

    image

    11. プロジェクトをコンパイルします。

    開発した XAP の展開とフォームへの設置

    1. Internet Explorer で Dynamics CRM 2011 またはオンラインに接続します。

    2. 任意のソリューションを 設定 | カスタマイズ より開きます。

    3. Web リソースを選択して、新規をクリックします。

    4. 以下のように Silverlight Web リソースを作成します。

    image

    5. 公開をクリックして、画面を閉じます。

    6. カスタマイズしたい、営業案件エンティティのフォームを開きます。

    7. タブを 1 つ追加して、Silverlight サンプルと名前をつけます。

    8. 作成したタブに Web リソースを挿入します。先ほど作成した Silverlight Web
    リソースを指定し、カスタムパラメーター欄に OpportuntyCustomerDetailsView
    ビュー名を指定します。

    image

    9. もう 1 つ Web リソースを追加し、同じ Silverlight Web リソースを
    指定します。カスタムパラメーター欄には OpportunityForcastGridView
    ビュー名を指定します。

    10. フォームを保存して、公開します。

    11. 営業案件レコードを開いて、フォームを確認します。

    image

    同じ Silverlight Web リソースを読み込んでいますが、異なる
    ビューが表示されています。

    まとめ

    今回は Silverlight アプリケーション開発手法の一例を紹介しましたが、メリットと
    デメリットを検討する必要があります。Silverlight ナビゲーション アプリケーションの
    場合、複数の Silverlight 画面(ビュー) で参照を共有することができるため、複数の
    XAP に比較すると合計のファイルサイズは小さくなり、メンテナンスも容易になる一方
    1 つの XAP ファイルのサイズが大きくなるため、ユーザーによっては無駄なリソースを
    ダウンロードすることにもつながります。

    今後も開発手法の例が公開されれば、こちらのブログでも案内していきますので
    お楽しみに!

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

  • Japan Dynamics CRM Team Blog

    Dynamics CRM 2011 プラグインのパフォーマンス分析

    • 0 Comments

    みなさん、こんにちは。

    今回はプラグインのパフォーマンス分析に関するトピックをお届けします。

    プラグインのリプレイ

    以前プラグインのデバッグの方法をこちらの記事で紹介しました。
    手順は同様ですが、今回はリプレイ機能として活用してみます。

    前提 : 取引先担当者を取得するプラグインを開発しました。プラグインには
    2 つのクラスが含まれており、一方は取引先担当者の全ての列を取得、
    他方は名前列のみ取得するようにしています。

    1. 開発したプラグインを取引先企業の更新に対して設定します。
    image

    2. こちらの記事を参考にして、プラグインのデバッグの準備を行います。
    まずは getallContact に対してプロファイルを実行します。

    image

    3. 任意の取引先企業を更新します。エラーが発生するので、ファイルを
    任意の場所に保存します。

    image

    4. Plugin Registration Tool より、 Replay Plug-in Execution または
    Debug をクリックします。どちらも同じ画面が表示されます。

    5. Profile Location に保存したエラーファイルを、Assembly Location
    に開発した dll を指定します。Plug-in で正しいクラスが選択されている
    ことを確認します。

    image

    6. Start Plug-in Execution をクリックします。結果に実行にかかった
    時間が表示されます。

    image

    7. 次にプロファイル対象を getallContactwithNameOnly に変更します。

    image

    8. 同様の手順でエラーログ取得とリプレイを行います。

    image

    image

    9. 実行時間が初めのものより早いことが分かります。

    コンテキストの確認

    プロファイルを行った際に出力されるエラーには、実際にプラグイン実行時に
    システムから渡る情報が入っています。Plugin Resitration Tool で、その
    中身を確認することが可能です。

    プラグインのソースと Visual Studio 2010 等のデバッグ環境が無い場合に
    とても便利です。

    1. View Plug-in Profile をクリックします。

    image

    2. Log Location にダウンロードしたファイルを指定します。

    image

    ※こちらのファイルには、実際のレ���ードの情報など、機密情報が
    含まれていますので、取り扱いには注意してください。

    3. View ボタンをクリックします。

    4. データの中身がブラウザに XML 形式で表示されます。こちらを確認
    することで、プラグインに引き渡される情報を確認することが可能です。

    まとめ

    Plugin Registration Tool のプロファイル、デバッグ、リプレイ等の機能を
    利用することで、実際に処理される内容や処理にかかる時間が明確になります。

    一連の処理に時間がかかる場合の切り分けに、是非ご活用ください。

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

  • Japan Dynamics CRM Team Blog

    Microsoft Dynamics CRM 4.0 Update Rollup 21 がリリースされました!

    • 0 Comments

    みなさん、こんにちは。
     
    2012年2月10日(US 時間) に CRM 4.0 Update Rollup 21 がリリースされました。
    次のリンクから Update Rollup 21 に関する情報を確認することができます。
     
    マイクロソフト ダウンロード センター: http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=be5e3303-fd3e-4127-a827-c9768458636b&displaylang=ja-nec
    Microsoft サポート技術情報: http://support.microsoft.com/kb/2621054/ja
     
    Update Rollup 21 概要
     
    Update Rollup 21 は累積修正プログラムですが、次の 2 つの Update Rollup 21 に関しては、適用前に Update Rollup 7 を適用する必要があります。
    その他の CRM コンポーネントには、適用前提となっている Update Rollup はありません。
     
    CRM Outlook クライアント (CRMv4.0-KB2621054-i386-Client-JPN.exe)
    データ移行マネージャー (CRMv4.0-KB2621054-i386-DMClient-JPN.exe)
     
    なお、2011年8月時点でダウンロード センターから入手可能な CRM 4.0 Outlook クライアントには、Update Rollup 10 が含まれおり、ダウンロード ファイルに組み込まれています。バージョンは 4.00.7333.2747 です。このバージョンを利用される場合は、Update Rollup 7 の事前適用は不要です。
     
    新しく CRM 4.0 Outlook クライアントのインストールを行われる場合は、利用するインストールファイルがどのバージョンか確認し、適用が必要な Update Rollup を確認してください。
     
    Update Rollup 21 では、40 のサポート対象言語パックに対する更新が行われています。
    Update Rollup 21 言語パックを適用する場合、事前に製品リリース時の言語パックがインストールされている必要があります。
    言語パックをご利用の場合は、次の作業を行ってください :
    1. 必要な Update Rollup 21 言語パックをダウンロードします。
    2. ダウンロードした Update Rollup 21 言語パックをインストールします。
    3. 言語パックを無効化します。
    4. 再度、言語パックを有効化します。
     
    言語パックをご利用の場合は、サポート技術情報 2621054 の インストール情報 (Installation Information) に記載されている次の注意事項をご確認ください :
    言語パックを無効化すると各ユーザーが個人用オプションの言語設定で選択している言語が基本言語に戻ります。
    Update Rollup 適用を終了し、言語パックが有効化された後に、再度個人用オプションの設定 - [言語]タブをご確認いただき、使用するユーザー インタフェースの言語、ヘルプ言語に適切な言語を選択してください。
     
    CRM Outlook クライアントへの修正プログラム適用時に再起動を防ぐ方法が Update Rollup 4 ブログ (英語) に記載されています。
     
    CRM サーバーに Update Rollup 21 を適用する前に Update Rollup 21 を CRM Outlook クライアントに展開することができます。
     
    Update Rollup 21 を自動更新で有効にするための手順は、Update Rollup 4 ブログ (英語) に記載されていますので、参考にしてください。
    手順のリンク(Link)とパッチID(Patch IDs) はサポート技術情報 2621054 で確認することができます。
     
    Update Rollup の中には、手動で設定を追加して有効にする必要がある修正プログラム(Hotfix)があります。
    このような Hotfix については、サポート技術情報 2621054 に手動で構成を行う必要のある Hotfix をリストした箇所があります。
    その他の修正についても サポート技術情報 2621054 に記載されています。適用前に一度ご覧ください。
     
    - Dynamics CRM サポート 斎藤 さち江

  • Japan Dynamics CRM Team Blog

    Microsoft Dynamics CRM 今後の展開 2012 年春版

    • 0 Comments

    みなさん、こんにちは。

    今回はプラグインのパフォーマンス分析を紹介する予定でしたが、つい先日
    Microsoft Dynamics CRM について新しい情報が公開されたため、本日は予定を
    変更し、急遽その情報について紹介したいと思います。

    Microsoft Dynamics CRM チームでは、半年ごとに今後の展開を示す Service Update を
    行い、そちらをドキュメントとして公開しています。このたび 2012 年春版が公開されました。

    Release Preview Guide : Q2 2012 Service Update (英語)

    主な内容は以下の通りです。
    ※以下内容は上記文書の一部のみを紹介しています。完全な情報は必ず原文を
    ご確認いただくようお願いいたします。

    [Q2 2012 サービスアップデートでの投資エリア]
    image

    Mobility

    既に外部でも情報が公開されていますが、今後モバイル端末におけるネイティブ
    アプリのサポートを予定してします。現在公開されている情報は以下の通りです。

    image
    ※ Windows Phone 用の Microsoft Dynamics CRM Mobile は、
    初期段階ではオフラインデータをサポートしない予定です。

    これらのアプリケーションでは、ダッシュボードなども含めた Microsoft Dynamics CRM の
    機能を同じアプリケーション内からアクセスできるようになる予定です。

    アプリケーションは 24 つのマーケットにおいて 10 ヶ国語をサポートする予定です。
    日本語も対象に含まれています。

    Browser Flexibility

    現在は弊社の Internet Explorer のみがサポートされる Microsoft Dynamics CRM ですが、
    今後は以下のプラットフォームとブラウザの組み合わせがサポートされる予定です。

    image

    Social

    Update Rollup 5 で公開されたアクティビティフィード機能を拡張する予定です。
    「いいね」 ボタンの実装や、投稿のフィルタリング機能などを提供予定で、これらの
    機能はモバイルアプリケーションからも利用可能になる予定です。

    Industry Templates

    Microsoft Dynamics CRM は既に様々な業界をご利用いただいておりますが、
    より業界のニーズに応えるべく、いくつかのテンプレートを提供する予定です。

    SQL Server 2012

    Microsoft Dynamics CRM は .NET Framework や Microsoft SQL Server 等の信頼され、
    また業界をリードする基盤の上に成り立つ製品です。弊社では、Microsoft SQL Server 2012
    のリリースを控えておりますが、Microsoft Dynamics CRM も Microft SQL Server 2012 に
    対応することで数多くの新機能や機能強化を利用できるようにしていく予定です。

    尚、Microsoft SQL Server 2012 に関する詳細はこちらでご確認ください。

    また以下のような Business Intelligence 機能もあわせて提供され���予定です。
    ※今回は設置型のみ提供予定。オンライン版は将来的に対応予定です。

    ‐ Power View レポート
    ‐ PowerPivot 用のテンプレート

    Certifications

    マイクロソフトはクラウドサービスに対して大きく注力しており、その一環として、第三者機関に
    よる証明書を取得しています。詳細は文書をご確認ください。

    上記の他にもいくつかの新機能も提供予定です。

    ‐ 読み取り専用フォーム
    ‐ Partner/Customer ポータルの機能拡張
    ‐ オンライン環境でのカスタムワークフローアクティビティのサポート、等

    まとめ

    今回のサービスアップデートでは、非常に楽しみな機能が数多く発表されました。
    それぞれの項目に関して、随時情報は更新してまいりますので、お楽しみに!

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

  • Japan Dynamics CRM Team Blog

    Dynamics CRM 2011 プラグインのベストプラクティス

    • 0 Comments

    みなさん、こんにちは。

    Microsoft Dynamics 製品の売りの 1 つに、柔軟な拡張性があります。Dynamics CRM の
    場合には、コーディングなしで拡張が実現できるカスタマイズやワークフロー、ダイアログや
    グラフツールなどの機能の他に、C# や VB.NET、JScript や Silverlight 開発を利用した拡張も
    サポートされています。

    今回はそれらの中でも利用頻度の高い、プラグインのベストプラクティスに関して情報を提供します。

    プラグイン開発の注意点

    プラグインが原因でパフォーマンスが低下する主な理由をいくつか紹介します。

    データ取得に関する問題

    プラグイン内では、様々なデータが処理に必要となります。例えば作成されたばかりの
    レコードの GUID や、関連レコードのデータなどです。しかしデータ読み取りの部分で
    パフォーマンスに問題をかかえるプラグインを良く見かけます。

    - InputParameters、OutputParameters を利用する
    プラグイン内では Context が利用でき、Context には InputParameter と OutputParameter
    が提供されます。処理に必要な情報がこちらに存在しないかまずは確認してください。

    - Image を利用する
    InputParameter と OutputParameter はメイン操作に必須の情報のみ格納していますが、
    Image を利用することで、付加情報をコンテキストの一部としてプラグインに渡すことが
    可能です。例えばレコードを更新する場合には、更新される列の情報しか InputParameter
    には含まれませんが、他の列の情報がプラグインで必要な場合、Image として取得できます。

    - RetrieveMultiple には注意
    複数のレコードから情報を得たい場合には、RetrieveMultiple メソッドを利用することに
    なります。ただし、RetrieveMultiple を利用する場合には、必ず必要最小限の列のみを
    指定することと、Condition を利用して、取得するレコード数も最小限にしてください。

    SDK 内のサンプルでは new ColumnSet(true); がよく利用されていますが、本番では
    利用しないように注意してください。RetrieveMultiple のパフォーマンスに関しては、
    後日別の記事で紹介します。

    組織サービスに関する問題

    プラグイン内では組織サービスを利用した操作を行うことが多くなります。その場合、
    以下の注意を守ってください。

    - 組織サービスはコンテキストより取得する
    プラグイン内で組織サービスを利用する場合は、必ずコンテキストよりサービスを
    取得してください。

    IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = factory.CreateOrganizationService(context.UserId);

    コンテキストより取得した組織サービスはパフォーマンスが最適化されています。

    - プラグイン内では同じ組織サービスを利用する
    プラグイン内の一連の流れて、組織サービスを何度か利用する場合には、都度
    組織サービスを生成せず、一番初めに生成した組織サービスを利用してください。

    登録するステップの問題

    プラグインは、Dynamics CRM サーバーが処理する様々なメッセージに対して登録できます。
    しかし、プラグインを登録するということは、その分の処理が増えるということになりますので、
    無駄な処理をさけるようにする必要があります。

    - Execute にはプラグインを登録しない
    他に手段がない場合を除いて、Execute にはプラグインの登録を行わず、Retrieve、 Update
    等より詳細なメッセージに登録することを強くお勧めします。

    - エンティティを指定する
    登録するメッセージを絞る同時に、対象となるエンティティもかならず指定してください。
    例えば特定のいくつかのエンティティに対して Update に対する処理を行いたい場合は、
    それぞれのエンティティごとにステップを登録してください。そうすることで他のエンティティ
    に対する Update 処理では、該当のプラグインが呼ばれなくなります。

    - サービスを作成する前に分岐処理をする
    プラグイン実行にあたり、コードの初めのほうに各種サービスに作成を行いますが、
    サービス作成した結果、なにも処理をしない場合は無駄になるため、分岐処理は極力
    前のほうで行い、無駄な処理が呼ばれないようにしてください。

    ‐ IPluginExecutionContext.Depth を利用する
    プラグインが呼ばれた際に、それがループになっていないか確認するための手段として
    IPluginExecutionContext.Depth があります。すでにループ対策として利用されていると
    思いますが、無駄な実行を避けるためにも Depth をチェックしてください。

    - Pre-Validation ステージの利用
    メイン操作の前に処理を行うプラグインが、データのチェックなどを行うだけでレコードの
    作成や更新を行わない場合には、メイン操作と同一トランザクションで処理を実行する
    必要はありません。この場合は Pre-Validation ステージを利用してください。そうする
    ことで、メイン操作のトランザクションが短くなります。

    事前バインドを利用する場合

    事前バインドを利用する場合、 CrmSvcUtil.exe を利用してコードを生成します。
    この際、プラグイン内で必要なエンティティの情報のみを出力するようにしてください。
    全ての情報を出力すると、それだけでファイルサイズが 5 - 10 MB 程度になります。

    詳細はこちらの記事をご覧ください。
    Dynamics CRM 2011 CrmSvcUtil ツールとその拡張方法 (フィルタリング)

    まとめ

    今回紹介した内容以外にも、パフォーマンスに関するベストプラクティスは数多く
    存在します。次回はプラグインを実際に実行した際のパフォーマンスを測定する
    方法を紹介します。

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

  • Japan Dynamics CRM Team Blog

    Dynamics CRM オンライン- Go Live チェックリスト

    • 0 Comments

    みなさん、こんにちは。

    今回は Dynamics CRM オンラインに関係するドキュメントの紹介です。

    以下のブログに、pdf 形式で Dynamics CRM オンライン利用時に参考となる
    情報が提供されています。

    Dynamics CRM 2011 Online - Go Live Checklist

    ※情報は公開時点のものとなります。Office 365 上で稼動する Dynamics
    CRM オンラインに関して信頼済みサイトに追加する必要のある URL 一覧は、
    後日改めてご案内します。

    概要

    資料は英語のみとなっているため、概要だけでも紹介します。

    Internet Explorer の構成

    Dynamics CRM オンラインを利用するにあたり、必要な構成やパフォーマンスの
    Tips が記載されています。

    Outlook クライアントの構成

    Outlook クライアントを Dynamics CRM オンラインで利用する場合に必要な構成
    やパフォーマンスの Tips が記載されています。

    その他の情報

    ファイヤーウォールで許可する必要のあるアドレスや、管理者が受信する可能性の
    あるメールアドレスの情報が提供されています。

    リソースの情報

    リソースセンターやブログ、コミュニティなどの情報が記載されています。
    すべて英��のサイトになりますので、日本語のサイト一覧は後日紹介いたします。

    まとめ

    資料は昨年 8 月時点のものですが、パフォーマンスに関する Tips 等、現在も
    引き続き有用な情報を得ることができる、重要なドキュメントです。これから
    Dynamics CRM オンラインを利用する、または利用中でパフォーマンスに懸念が
    ある場合などは、こちらの資料をご覧いただき、適切な設定になっているか
    ご確認ください。

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

  • Japan Dynamics CRM Team Blog

    Dynamics CRM 2011 ネットワークパフォーマンス考察 - WCF パケットの圧縮

    • 0 Comments

    みなさん、こんにちは。

    とても寒い日が続いていますが、いかがお過ごしでしょうか。気温が低く
    日照時間も短いため気分も落ち込みがちですが、せめてブログの記事だけでも
    エキサイティングな内容になるよう努めてまいります。

    今回は、US の Dynamics CRM プレミアフィールドエンジニアリングチームが
    公開しているブログより、パフォーマンスに関する記事を紹介します。
    パフォーマンスを聞くだけでエキサイティングですね!!

    元記事 : Enable WCF Compression to Improve CRM 2011 Network Performance

    今までに一度でもネットワークトラフィックを解析したことがある方は既にお気づきだと
    思いますが、Internet Information Service (IIS) は、画像や JScript ファイル、CSS や
    HTML ページなど、様々なコンテンツを圧縮してからネットワークに送信しています。

    圧縮を利用することで、データのサイズだけでなく全体の通信回数も削減できるため
    サーバー、クライアント間のネットワークパフォーマンスの向上が期待できます。

    Microsoft Office Outlook 用 Microsoft Dynamics CRM 2011 クライアントは、サーバー
    との通信を行い際、Windows Communication Foundation (WCF) を利用しますが、
    既定では IIS は WCF で利用する 'application/soap+xml;charset=utf-8' の mineType
    を圧縮しないため、Dynamics CRM 4.0 と比較してネットワークトラフィックの増加や
    パフォーマンスの低下が発生することがあります。

    一般的な利用環境では、圧縮を有効にすることでパケットサイズが 30 - 40 % 程度減少
    しますが、SSL を利用している環境では、80 - 90 % 程度パケットサイズが削減されることも
    あります。

    以下の表は IIS での圧縮を行う前と後の比較を行っています。このデータはカスタマイズを
    一切行っていない Dynamics CRM 2011 環境で、データもサンプルデータのみの場合です。
    こちらの結果より Outlook で複数のビューを参照した場合のパフォーマンスが向上している
    ことが確認できます。

    ビュー

    圧縮なし

    圧縮あり

    SSL 環境で圧縮あり

    活動

    Bytes Sent: 82,234

    Bytes Received: 971,139

    Bytes Sent: 82,234

    Bytes Received: 722,786

    Bytes Sent: 53,249

    Bytes Received: 36,658

    取引先企業

    Bytes Sent: 105,084

    Bytes Received: 219,102

    Bytes Sent: 105,084

    Bytes Received: 149,424

    Bytes Sent: 67,586

    Bytes Received: 25,837

    取引先担当者

    Bytes Sent: 78,286

    Bytes Received: 177,504

    Bytes Sent: 78,286

    Bytes Received: 122,090

    Bytes Sent: 50,283

    Bytes Received: 19,791

    潜在顧客

    Bytes Sent: 78,286

    Bytes Received: 202,589

    Bytes Sent: 78,286

    Bytes Received: 141,021

    Bytes Sent: 50,274

    Bytes Received: 19,769

    ※補足 : IIS で圧縮を有効にしているため、クライアントからの送信は圧縮の有り無しでは
    影響が見られません。SSL の場合には、非 SSL 環境より通信サイズが少ないのは、WCF で
    利用しているバインディングとデータの暗号化が影響しているためです。

    圧縮の設定方法

    圧縮の設定は、コマンドラインまたは config ファイルを修正することで変更可能です。

    注意: 圧縮を利用することでネットワーク帯域は節約できますが、CPU 使用率が上がります。
    必要に応じて CPU 利用率の監視をお勧めします。

    コマンドラインを利用した設定方法

    a. Dynamics CRM サーバー上でコマンドプロンプトを開きます。

    b. 以下のコマンドを実行します。Run the following command:

    %SYSTEMROOT%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/soap%u002bxml; charset=utf-8',enabled='true']" /commit:apphost

    c. IISRESET を実行します。

    ApplicationHost.Config を編集する方法

    a. Dynamics CRM サーバー上で、以下のファイルをメモ帳で開きます。
    C:\Windows\System32\Inetsrv\Config\applicationHost.config

    b. 次のセクションを探します : “<httpCompression directory=” 
    上記セクション配下に以下のような項目があります。
    <add mimeType="application/x-javascript" enabled="true" />

    c. 一番下に、以下の内容を付け足します。
    <add mimeType="application/soap+xml; charset=utf-8" enabled="true" />

    d. ファイルを保存して、IIRESET を実行します。

    参考: IIS を利用した HTTP 圧縮の追加情報は以下のリンクをご覧ください。
    http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx

    参考:英語のドキュメントですが、以下の文書でも、パフォーマンスの最適化に関する
    情報が提供されています。
    Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure

    まとめ

    IIS の圧縮を利用する場合、CPU 負荷とネットワーク負荷のバランスを
    取ることが重要にはなりますが、是非一度検証環境等でお試しください。

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

Page 1 of 1 (9 items)