MicrosoftはDynamics AXを“ERPソリューション”として売り込んでいるが、その言葉はそれほど正確ではない。ほとんどのERP製品と同じように、Dynamics AXはややこしい初期設定なしで簡単に使えるような製品ではなく、Salesforceのような開発プラットフォームに近い。InfoQでは、Dynamics AXの変化がもたらす、開発者にとっての新たなチャンスや課題について追いかけた。
ただ、AX 2012の変更点一覧は209ページもの量なので、ここでは目玉となるいくつかのトピックにのみ焦点を当てた。
廃止されたプラットフォーム
クライアントサイドでは、Windows XPがサポートされなくなる。Vistaのこれまでのトラブルを考えると、クライアントをインストールしている企業のほとんどはWindows 7にアップグレードすることになるだろう。
サーバーサイドでは、Windows Server 2003とSQL Server 2005がサポートされなくなる。
Dynamics AXにはブラウザベースのクライアントもある。これはエンタープライズポータルサーバーで公開されるが、以下のブラウザはサポート対象外である。
- Internet Explorer 6、7
- FireFox 2.0、3.0
- Apple Safari (全てのバージョン)
エンタープライズポータルサーバーは64bit OSにのみインストールすることができる。また、Windows SharePoint Services 3.0やOffice SharePoint Server 2007との互換性はない。
プラグインや拡張機能の開発者は、.NET 4.0やC++ 2008 SP 1以前のバージョンのランタイムを使わない方がよいだろう。
データベースの変更
データベースにOracleを使うことができなくなる。Microsoftは、クロスプラットフォームにするよりも、特定のバージョンのSQL Serverに特化させることで、パフォーマンスを向上させることを狙っているらしく、Oracleに何らかの不満があるわけではないようだ。また、これによりSQL Server Reporting Servicesに依存させられるようにもなる。
以前のバージョンでは、テーブル間の関連は拡張データ型(Extended Data Type; ETD)に保存されていた。しかし、ETDを使うと、2つのテーブルが複数の関連を持っている場合や、関連が複合キーを必要とする場合に問題を引き起こしていた。Dynamics AX 2012では、関連は個々のテーブルのRelationノードにメタデータとして保存されるようになる。
テーブル間の関連として、新しく“テーブル継承”も追加される。テーブル継承はC++やC#のようなオブジェクト指向言語のクラス継承のように動作する。Microsoftはすでにこの機能を活用しており、それに応じてクエリを更新する必要があるので、この機能を無視することはできないだろう。この機能のメリットとして、X++ SQLでの明示的なジョインがより少なくて済む、という点が挙げられる。
非アクティブ化されたテーブルが永久削除されなくなる。これは多くのユーザーから歓迎されるだろう。非アクティブ化するとDynamics AXからはデータにアクセスできなくなるが、SQL Server経由で直接データにアクセスすることは可能である。
サービスやアプリケーションインテグレーションフレームワークの変更
サービスやアプリケーションインテグレーションフレームワーク(Application Integration Framework; AIF)は主にメッセージベースのインテグレーションに使われる。これまでは、Dynamics AXの全てのインポート/エクスポート処理は、特定のXMLフォーマットを使うことが想定されていた。しかし、Dynamics AX 2012では、開発者が非XMLフォーマットをサポートできるようになる。これはデータをXMLに変換/逆変換する.NETのバイナリを使うことで実現できる。
また、MicrosoftはWindows Communication Foundationの利用に注力しており、MSMQやBizTalk用の特殊な用途のアダプタが“ネイティブのWCFの機能”によって置き換えられる。
セキュリティ
Dynamics AXのセキュリティモデルは、明示的なパーミッションを使うスタイル(Windowsのユーザーやグループを使ったセキュリティモデルをイメージして欲しい)から、ロールベースに変更される。管理しやすくなる一方、開発者から見れば大きな変更をもたらすことはないだろう。はるかに興味深いのが、データセキュリティの改善である。
以前のバージョンのデータセキュリティモデルはまやかしのようなものであり、制限されている情報も一旦クライアントに送信され、画面上に表示されないようにクライアント上でフィルタリングされているだけであった。新しいデータセキュリティモデルでは、サーバー側でフィルタリングしてからデータが送信されるようになる。
また、データフィルタリングがより柔軟になり、データフィルタリングルールで複数のテーブルに含まれるデータを考慮できるようになる。
レポーティング
レポーティングモデルの変更なしにメジャーアップグレードできるERPプラットフォームはなく、それはDynamics AXにも当てはまるようだ。Dynamics AX 2012では内部のレポーティングサービスからSQL Server Reporting Servicesに切り替えられる予定だ。ビルトインレポートのほとんどは変換されるが、カスタムレポートはアップグレードされないだろう。X++レポートの地位の低下も気になるところだ。今はまだX++レポートを使えるようだが、MicrosoftはSQL Server Reporting Servicesのレポートで置き換えることを推奨している。理由として、X++レポートフレームワークにチャートがないことや、レポートのデータソースに非Dynamics AXデータを使えないことが挙げられる。
X++自体が廃止されるわけではなく、それはカスタムレポートにデータを投入するためのReport Data Providerクラスとして使うことができる。また、レポートを配置するために使われていた“Reporting Project Deployment tool”がPowerShellで置き換えられるため、レポート実装者はX++とSQL Server Reporting Servicesに加えて、PowerShellとの連携方法についても学ぶ必要があるだろう。
“Reporting Tools and Microsoft Dynamics AX Enterprise Portal Tools”は廃止され、“Microsoft Visual Studio Tools”に置き換えられる。
X++開発
X++のビルトインエディタはVisual Studio 2010に置き換えられる。エディタスクリプトエクステンションはまだサポートされるが、以前のエディタUIのための拡張機能はサポートされない。
SourceSafeはまだ削除されてはいないが、非推奨となった。これからはTeam Foundation Serverを使うことになるだろう。
X++のワークフローAPIは新たなマネージドワークフローで置き換えられる。本記事の執筆時点では、我々は新たなワークフローモデルや、.NETのWindows Workflow Foundationベースなのかどうかといった点についての、より詳しい情報を得ることができなかった。
モジュール固有の変更
あいにくだが、ここで述べるには多くの変更があり過ぎる。事実上、各モジュールは大きく変更されているか、非推奨となっているか、もしくは完全に削除されているため、開発者は再テストやコードの修正が必要になるだろう。要するに、アップグレードは簡単ではない。