AL コードをセグメント化し、名前空間との名前の競合を削減する
重要
このコンテンツはアーカイブされており、更新されていません。 最新のドキュメントについては、「Business Central の新機能および変更された機能」を参照してください。 最新のリリース計画については、「Dynamics 365、Power Platform、Cloud for Industry のリリース計画」を参照してください。
有効対象 | パブリック プレビュー | 一般提供 |
---|---|---|
管理者、作成者、マーケティング担当者、またはアナリスト向けで、自動的に有効化される | 2023年8月17日 | 2023年10月2日 |
ビジネス バリュー
他のコード言語と同様に、Business Central 用の AL が名前空間に対応するようになりました。 名前空間は、オブジェクトとコードを論理的に整理し、階層化するのに役立ちます。 名前空間を使用すると、異なる拡張機能間の名前の競合を回避できるため、異なるオブジェクト間のリレーションシップなど、拡張機能の保守と把握が容易になります。
機能の詳細
AL ファイルの先頭で名前空間を定義できるようになりました。これは、コード ファイル内のすべてのオブジェクトに適用されます。 特定のオブジェクトは 1 つの名前空間にのみ所属できますが、同じ名前空間を複数の AL ファイルやオブジェクトに使用できます。
オブジェクトが解決されると、最も近いスコープが最初に使用されます。 したがって、依存拡張機能内の同様の名前のオブジェクトに解決するには、参照で完全修飾名を使用する必要があります。 または、外部名前空間を含めるように using
ディレクティブを定義し、それによって名前の完全修飾を省略できます。
名前空間は拡張機能の論理的なセグメント化に役立つため、AL Explorer ではオブジェクトの名前も表示され、名前空間ごとにオブジェクトをグループ化できます。これにより、関連オブジェクトの発見、アプリのサブエリアへのフォーカス、新しいオブジェクト追加時の不一致の特定が容易になります。
入れ子になった名前空間を使用すると、30 文字のオブジェクト名で完全な構造を表現するよりも、オブジェクトに適切な名前を付けることができます。 ただし、既存のオブジェクトの名前変更は破壊的変更であるため、この機能は主に、既存のオブジェクトや今後の新しい名前の論理的な構成に役立ちます。
開発者が既存のソースに名前空間を追加するのに役立つコード アクションを利用できるようになります。
以下にいくつかの例を示します。まず、コード内で名前空間を定義します。
次に、他の名前空間内のオブジェクトをスコープに含めて使用する方法を示します。
最後に、名前空間ごとにグループ化された基本アプリ オブジェクトの例を示します。Customer テーブルは Microsoft.Sales.Customer (Microsoft.営業.顧客) 名前空間に存在します。 このように名前空間ごとにオブジェクトをグループ化すると、関連するオブジェクトに焦点を当てて検索することが容易になります。
関連項目
AL における名前空間 (ドキュメント)