Dynamic 365 Business Central SaaSのExtensible Propertyについて

Dynamics 365 Business Central

皆様、こんにちは!
ご存知かと思いますが、Business Centralの開発中で既存のTable (テーブル)、Page (ページ)、Enum (列挙型)タイプのオブジェクトを拡張したい際に、TableExtension、PageExtension、EnumExtensionを利用することができます。
だが、Business Central 2019 release wave 2 (BC15)からExtensibleというプロパティが追加されました。
このプロパティでTable、Page、またはEnumを拡張できるかどうかを示す値を設定します。 値がtrueの場合だけ拡張できます。
既定値
Table:True
Page:True
Enum:False

標準のソースコードを見てみましょう。
Table:
Sales Header (36)
特に設定されていませんので、既定値Trueになります。拡張可能です。

Page:
Sales Order (42, Document)
特に設定されていませんので、既定値Trueになります。拡張可能です。

Enum:
Sales Line Type (enum 37)
trueに設定されていますので、拡張可能です。

上記のようにBusiness Central内のほとんどのTable、Page、またはEnumタイプのオブジェクトは拡張できますが、ExtensibleをFalseに設定されているオブジェクトも存在しています。
例えばtable 5557 “Permission Conflicts”
Extensibleはfalseです。

Visual Studio Codeで拡張すると、エラーメッセージが表示されます。
「The object Table ‘Permission Conflicts’ is not extensible」

以上述べたところをまとめると、自分で開発したエクステンションの一部のTable、Page、またはEnumを他の開発者が拡張させたくない場合は、Extensible属性を使用して制御できます。

追記:
Userなどのシステムテーブル (2000000000番台のテーブル)と仮想テーブルはExtensible属性が設定されていませんが、拡張できないことに注意してください。
User (2000000120)

Visual Studio Codeで拡張するとエラーが発生します。
エラー:「The system or virtual table ‘User’ cannot be extended.」

以上
お読みいただきありがとうございました。

コメント

Copied title and URL