皆様、こんにちは!
ご存知かと思いますが、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.」
以上
お読みいただきありがとうございました。
コメント