AL言語による Dynamics 365 Business Central の拡張開発
By Mirko Peters ·
Dynamics 365 開発の進化 ― 古い Dynamics NAV のバージョンで使われていたレガシーな C/AL 環境から最新の AL 言語への移行は、クラウド優先のアーキテクチャへの大きな転換を意味します。。
Automatically translated with AI from the original post. Read the English original
Dynamics 365 開発の進化
古い Dynamics NAV のバージョンで使われていたレガシーな C/AL 環境から、最新の AL 言語への移行は、クラウド優先のアーキテクチャへの大きな転換を意味します。C/AL では開発者がコアシステムを直接変更する必要がありましたが、現在のモデルでは、ベースアプリケーションから分離された自己完結型の拡張機能を使用します。これにより、アップグレードによってカスタムのビジネスロジックが壊れることを防げます。
この進化は、単なる新しい構文の導入にとどまりません。Business Central を Microsoft 365 エコシステム全体に統合するものです。Visual Studio Code などの標準ツールを使うことで、アーキテクトは ERP データを Power Platform、Azure、Teams に直接接続できるようになりました。M365 FM Podcast では、この接続性によって開発者が静的なテーブルの枠を超えた自動ワークフローを構築できる仕組みについて、よく取り上げています。
エンタープライズの開発者は、モノリシックな変更に伴う技術的負債を抱えることなく複雑なタスクを自動化するために、この道を選んでいます。AppSourceCop が品質基準を適用し、モジュール型の拡張モデルが安定性を担保することで、企業は業務を迅速にモダナイズできます。これらのプラクティスに沿うことで、カスタムソリューションはスケーラブルかつ安全で、今後のクラウドネイティブな機能にも対応できる状態を保てます。
Business Central AL 開発を始める
モダンなクラウドアーキテクトにとっての価値
今日 Microsoft Dynamics 365 Business Central の開発スキルを学ぶ価値はあるのでしょうか。答えは「もちろんあります」です。このプラットフォームで開発できるようになると、従来の ERP 管理と、AI を活用した最新の Microsoft クラウドとの橋渡しができます。組織が複雑な財務・業務ワークフローの自動化を Business Central に依存するようになるにつれ、AL 言語と Power Platform の両方を扱える開発者の需要が高まっています。
Microsoft はプラットフォーム内でエージェント型 AI と Copilot の統合に多額の投資を行っています。そのため、次世代のインテリジェントなビジネスアプリを構築するうえで、皆さんの専門知識が不可欠になります。M365 FM Podcast は、技術者がクラウドの急速な変化を毎日チェックできる場であり、従来型のトレーニングの負担をかけずに、アーキテクトがレガシーなプロセスを置き換え、自動化を強化するための知見を提供しています。Business Central は、モノリシックでサイロ化された ERP 環境とは異なり、幅広い M365 スタックおよび Azure とネイティブに統合されるため、開発の成果が統一された、エンタープライズ対応のエコシステムの一部であり続けます。
モジュール型で拡張機能ベースの開発への移行には考え方の転換が必要ですが、大規模な現代のビジネス環境に求められるスケーラビリティを提供します。現在のベストプラクティスでは、オブジェクトの適切な構造化とイベントベースのプログラミングによるクリーンなコードが重視されており、古くカスタマイズされたレガシーシステムに伴う技術的負債を避けられます。この分野の専門性を身につけることで、財務、業務、インテリジェンスを橋渡しする実際のビジネス成果を、汎用的な開発では実現できない形で提供できるようになります。
AL 言語の基本的な仕組み
Business Central の拡張において AL プログラミング言語はどのような役割を果たしますか? AL(Application Language)は、Microsoft Dynamics 365 Business Central で拡張機能を開発するための基本的なプログラミング言語です。ベースアプリケーションのコードを変更することなく、機能をカスタマイズできます。Visual Studio Code の AL Language 拡張機能を使うと、構文の強調表示、統合デバッグ、Microsoft クラウドへの直接コンパイルなどを備えたツールキットを利用できます。このフレームワークでは、カスタムのテーブル、ページ、複雑なビジネスロジックを作成でき、変更箇所をモジュール化して保守しやすい状態に保てます。標準的な開発に加え、AL を使うとアーキテクトは外部サービスと連携したりワークフローを自動化したりでき、プラットフォームを拡張する重要なツールとなります。CI/CD パイプラインで作業する場合は、.NET ベースの開発ツールを通じて AL ツールを利用し、ローカルエディターの外でパッケージ化とデプロイを効率化することもできます。
オブジェクト指向アーキテクチャによる開発
このシステムの中核には、各コンポーネントが明確な役割を持つオブジェクト指向アーキテクチャがあります。テーブルオブジェクトでデータスキーマを定義し、ページオブジェクトでユーザーエクスペリエンスを構築し、コードユニットで複雑なビジネスロジックをカプセル化し、レポートオブジェクトでデータの表示を管理します。テーブル拡張とページ拡張を使えば、コアアプリケーションのコードに直接手を加えることなく、フィールドを追加したり機能を上書きしたりできます。これにより変更箇所は独立した状態を保ち、今後のプラットフォーム更新とも完全な互換性を維持できます。
イベントベースプログラミングの威力
現代の開発では、モノリシックな変更から離れ、イベントベースのプログラミングモデルを活用します。ロジックをハードコーディングするのではなく、標準のシステムイベントにサブスクライブし、アプリケーションのライフサイクルの特定のタイミングでロジックを実行します。この非侵入型のアプローチにより、カスタマイズはメインアプリケーションから分離された状態を保ち、より円滑なアップグレードと、環境全体でのより安定したパフォーマンスにつながります。
パッケージ化とマニフェストの管理
コードの準備が整うと、システムはオブジェクトを 1 つの .app ファイルにまとめてデプロイできる状態にします。このパッケージは app.json マニフェストファイルに依存しており、このファイルには発行元、バージョン、依存関係の要件が記述され、拡張機能の識別情報となります。特に 1 つのテナント内で複数の機能拡張が連携する複雑なソリューションでは、このメタデータを正しく維持することが極めて重要です。
Visual Studio Code を使い始める

Business Central 向けの AL 開発を始めるには、まず Visual Studio Code と、Marketplace から公式の AL Language 拡張機能をインストールします。セットアップが完了したら、Ctrl+Shift+P(Mac の場合は Cmd+Shift+P)でコマンド パレットを開き、AL: Go! コマンドを実行します。このコマンドでは、必須の app.json と launch.json の構成ファイルを含むプロジェクト構造が作成されます。対象環境(通常は Business Central のサンドボックス)を選択し、要求されたら資格情報で認証します。このコマンドではサンプル プロジェクトも自動生成されるため、Ctrl+F5 を押すと、拡張機能をすぐにビルドしてデプロイし、テナントで動作を確認できます。より詳細な構成や高度な開発ワークフローについては、Microsoft Learn の包括的なドキュメントをいつでも参照できます。
開発環境の構成
この環境で成功するには、サンドボックスへの安定した接続を確立することが前提となります。機能するコードを書く前に、AL: Download Symbols コマンドを実行して、特定の Business Central インスタンスから必要なオブジェクト参照を取得する必要があります。これにより、ローカル環境に IntelliSense とコンパイラーの検証に必要なコンテキストが備わります。
- app.json マニフェストを使用して、発行元、バージョン、依存関係などの拡張機能の ID を定義します。
- launch.json ファイルを更新し、環境固有のサンドボックス URL とテナント ID を設定すると、スムーズにデプロイできます。
- コード内で Ctrl+Space を使うと、インテリジェントなコード補完が利用できます。組み込みのコンパイラー診断を使えば、エラーを早期に検出できます。
- 1 ファイルに 1 オブジェクトという構造でコードを整理すると、プロジェクトの規模が大きくなっても保守しやすい状態を保てます。
従来の NAV 環境の硬直したモノリシックな構造とは異なり、この最新のワークフローでは素早く反復開発できます。命名規則やインデントに関する AL コードのベスト プラクティスに従っておくと、最終的に本番環境へ反映する際、技術的負債を大幅に減らせます。
スケーラブルな拡張機能のためのベスト プラクティス
Business Central 環境をスケーラブルで保守しやすい状態に保つため、機能を独立した個別の拡張機能に分割するモジュラー アーキテクチャを採用しましょう。モノリシックな構成は避けてください。コードを業務領域ごとに整理すると、たとえば専門的な税務ロジックを標準の販売プロセスから切り離すことができ、保守性とデプロイの管理の両方が向上します。
長期的な相互運用性を確保するため、AL コードの公式ベスト プラクティスに従って開発ライフサイクルを標準化しましょう。明確な命名規則を使用することも含まれます。たとえば、ページ拡張には 'PageExt'、ロジック中心のオブジェクトには 'Codeunit' を使います。また、1 ファイルに 1 オブジェクトという構造を厳守します。変数とフィールドには常に PascalCase を使い、インデントと中かっこの配置はチーム全体で統一してください。
依存関係とファイル構造の管理
大規模なソリューションでは、適切なプロジェクト構造が不可欠です。ファイルは \src や \test などの論理的なサブフォルダーに整理し、app.json マニフェストで機能アプリ間の依存関係を明確に定義します。依存関係を明示的に定義しておけば、競合を防げるだけでなく、プラットフォームの進化に伴って複数の拡張機能の統合をシステムがスムーズに管理できるようになります。
- ビジネス ロジックを、UI の多いページやテーブルのオブジェクトから分離するには、ユーティリティ用のコードユニットを使用します。
- 可読性を高めるため、ID ではなく一意の名前でオブジェクトを参照します。
- カスタム テーブルではなく、機密データには 'IsolatedStorage' を実装して、セキュリティを強化します。
- バージョン管理で複雑なプロジェクトを効率的に管理するには、Git を活用しましょう。
AI と Copilot エージェントの統合
Dynamics 365 Business Central には AI 機能が統合されていますか?はい、Dynamics 365 Business Central には、Copilot や自律型エージェントを含む AI 機能が完全に統合されています。これらは業務の流れを効率化し、定型作業を自動化するために設計されています。Copilot は共同作業のアシスタントとして機能し、自然言語チャットによるデータ検索、リストデータを変換するための分析支援、ユーザーがすばやく行動できるようにする레코드の自動要約などの機能を提供します。
標準の Copilot 機能に加えて、自律型エージェントをデプロイし、請求書処理や受注データの生成などの継続的なプロセスを自律的に処理させることができます。これらの AI ツールは追加料金なしで利用でき、Microsoft クラウド内で動作するため、既存のデータアクセス許可、セキュリティ、プライバシーのコンプライアンスが維持されます。他のプラットフォームでは、こうした機能を実現するために複雑なサードパーティ製アドオンが必要になることが多いのに対し、このネイティブな統合により、データはテナントの境界内で安全に保たれます。
管理者は完全な制御権を保持しており、Business Central 環境内で特定の AI 機能の監査、構成、無効化を直接行うことができます。Copilot を統合した独自のソリューションを構築する場合、開発者は Visual Studio Code で Alt+A と Alt+P のショートカットを使用して、専用のプロジェクトテンプレートにアクセスできます。このワークフローにより、独自のエージェントも標準の AL 拡張機能と同じ厳格なベストプラクティスに従い、組織全体でシステムの安定性が維持されます。
資格取得と専門性の向上
開発者としてキャリアを伸ばすには、実践的なコーディングだけでは不十分です。Microsoft は、環境構築から複雑な拡張機能のデプロイまでを段階的に学べる構造化された学習パスを提供しています。これらのリソースは、AL とプラットフォーム統合を習得するための基盤となります。
Business Central の開発者資格取得に推奨されるリソースにはどのようなものがありますか?
Dynamics 365 Business Central Developer Associate の資格取得を目指すなら、まず Microsoft Learn の構造化された学習パスを活用することから始めましょう。AL 開発、環境構築、プラットフォーム統合に関する専用モジュールが用意されています。この自習に加えて、公式のインストラクター主導型トレーニングを受講すると、教室環境で実践的な経験を積むことができます。試験を予約する前に、Microsoft Learn の練習用アセスメントを使って準備状況を確認し、知識の不足部分を特定しておきましょう。また、Exam Sandbox を確認して、画面の操作方法や問題形式に慣れておくことtambién推奨します。最後に、Dynamics 365 コミュニティに参加して、仲間とつながり、製品の最新の変更点や技術的なベストプラクティスを把握し続けましょう。
認定試験以外にも、長期的なキャリアの成長には高いコード品質の維持が欠かせません。AppSourceCop ツールを使用して、プロジェクトがマーケットプレースの基準に適合しているかを検証しましょう。AI を活用したコーディングエージェントを試している場合は、BC-Bench を使用して、実際のタスクにおけるパフォーマンスを客観的に測定できます。こうしたコミュニティ主導のユーティリティを使いこなすことは、拡張性と堅牢性に優れたプロフェッショナルなアプリケーションの構築に対する強いコミットメントを示すものです。
ビジネスアプリの未来を構築する
モノリシックなレガシーシステムから、モジュール化されたALソリューションへの移行は、どのITプロフェッショナルにとっても大きな転換点です。このアーキテクチャを採用する際には、成長にはコミュニティへの積極的な参加と継続的な学習が欠かせないことを忘れないでください。
ベストプラクティスを取り入れ、進化し続けるツールセットに好奇心を持ち続けることで、Microsoftクラウドエコシステムのなかで主導的な立場を築けます。ビジネスアプリケーションの未来は、あなた自身の手の中にあります。