Dynamics CRM 2013 : 開発した JavaScript コードがアップグレード可能か確認する

みなさん、こんにちは。

今日は開発者の方向けの情報として、北米 CRM サポートブログより、現在
利用中の JavaScriptコードが Microsoft Dynamics CRM 2013 にアップグレード
可能か確認するという記事を紹介します。

情報元 : Check your JavaScript code to prepare for your upgrade

=====================================================================
新しいバージョンの Microsoft Dynamics CRM の新機能を利用するためにも、
現在利用中の JavaScript コードがアップグレードに向けて準備できているか
確認する必要があります。以下に確認ポイントを紹介します。

Microsoft Dynamics CRM 2013 Custom Code Validation Tool のダウンロード

なぜ既存のスクリプトを確認する必要があるか

開発されたスクリプトは現バージョンで動作するものですが、アップグレード
した場合にはいくつかの要件が変わる場合があるため、アップグレード後も
引き続き動作させるためには準備が必要な場合があります。

何が変わるのか

いくつかの内容が変更される予定です。
設置型を利用しており、Update Rollup 12 をまだ適応していない場合は、以下
変更があります。

クロスブラウザサポート
Update Rollup 12 までは、Internet Explorer のみがサポートされていましたが、
Update Rollup 12 以降では複数のブラウザをサポートします。よって Internet
Explorer 用に記述したコードが他のブラウザで動作しない可能性があります。

ページの変更
複数のブラウザをサポートするにあたり、Microsoft Dynamics CRM の各種
ページでも Document Object Model (DOM) の変更が多くあります。DOM の
直接操作は以前よりサポート対象外ですが、カスタムコードで DOM を直接
操作している場合は、自己責任にて動作確認を行ってください。

内部コードの変更
DOM だけでなく、いくつかの内部コードも変更されています。内部コードの
再利用は以前よりサポート対象外ですが、カスタムコードでそれらの API を
利用している場合は、自己責任にて動作確認を行ってください。

Microsoft Dynamics CRM 2013 での変更の詳細はこちら

Microsoft Dynamics CRM 4.0 サービスエンドポイントの廃止
Microsoft Dynamics CRM 2011 がリリースされた時点で、Microsoft Dynamics
CRM 4.0 のサービスエンドポイントが時期バージョンでサポートされない旨
アナウンスを行いました。よって現在 CRM 4.0 (2007) サービスエンドポイントを
利用しているコードはすべて動作しなくなります。

Microsoft Dynamics CRM 4.0 スクリプトオブジェクトモデルの廃止
Microsoft Dynamics CRM 2013 では Xrm.Page オブジェクトモデルのみサポート
します。Microsoft Dynamics CRM 4.0 のスクリプトオブジェクトモデルは今後
動作しなくなります。

どのようにコードを確認できるか

問題があるスクリプトを確認するために、Microsoft Dynamics CRM 2013 カスタム
コード検証ツールを提供します。ツールはこちらよりダウンロード可能です。

2012 年 12 月サービスアップデートの時にも同様のツールを提供していますが、
今回はさらに Microsoft Dynamics CRM 2013 へのアップグレードに関連した検証
が行えるようになっています。

ツールはマネージドソリューションとして提供されますので、検証したい組織に
インポートして利用し、不要になれば削除が可能です。

※ただしこちらのツールで全ての問題を検出できるとは限りません。ツールでは
特定の文字列などを確認し、それらをハイライト表示することで、開発者に対して
注意を促すことが出来ます。また検知されたとしても問題ない場合もあります。

問題ない場合の例としては以下のものがあります。

・カスタム HTML Web リソース内の DOM を直接操作している場合
・複数ブラウザに対して機能確認を行うためのテストコード
・コメントアウトされているコード

ツールでは検出できない問題もあり得るため、アップグレードプロセスの一環と
して、かならずテストを含めてください。

どのようにコードを修正するか

コードが外部から提供されたソリューションに含まれる場合
ソリューションの提供元に連絡し、Microsoft Dynamics CRM 2013 対応状況を
確認する必要があります。

コードがパートナーによって開発された場合
パートナーに連絡を取り、今後の対応について確認する必要があります。

コードが自分の組織で開発された場合
まずはカスタムコードが実行するロジックを理解する必要があります。Microsoft
Dynamics CRM API の利用方法を理解している JavaScritp 開発者とプロセスを
理解しているビジネスアナリストと一緒に、どのコードを修正するか検討する
必要があります。

以下に問題とその対応方法をまとめました

問題: CRM 4.0 サービスエンドポイントを利用している。
対応: CRM 2011 サービスエンドポイントを利用するように改修。用途によって
REST エンドポイントを利用するか SOAP エンドポイントを利用するか検討。
参考情報: https://msdn.microsoft.com/ja-jp/library/gg490659.aspx

問題: CRM 4.0 スクリプトオブジェクトモデルを利用している。
対応: Xrm.Page オブジェクトモデルを利用するように改修。
参考情報: https://msdn.microsoft.com/ja-jp/library/gg328261.aspx
https://msdn.microsoft.com/ja-jp/library/gg509046.aspx#BKMK_UsingCrmForm

問題: コードが Internet Explorer 以外のブラウザに対応していない。
対応: 複数のブラウザで動作するようコードを改修。
参考情報: https://msdn.microsoft.com/ja-jp/library/hh771584.aspx#BKMK_WriteJavaScriptForMutlipleBrowsers

問題: 非サポートの API を利用している。
対応: 新しいバージョンにおいてサポートされた方法で実現できないか
確認し改修。

全てのコードを改修する必要があるか

状況によって回答が異なります。アップグレード先の要件に合わせた改修
を行ってください。

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

まとめ

元の記事では、Microsoft Dynamics CRM 2013 へのアップグレードのみに
限定しない、アップデート/アップグレード時に確認すべき内容を紹介して
いますが、今回のタイミングでは Microsoft Dynamics CRM 2013 へのアップ
グレードがメインになると思われるため、一部意訳してあります。

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