Some application forms may not be extended with Custom Objects functionality, due to architectural design decisions regarding the page. In such a case, the page should be explicitly excluded from Custom Objects logic so that a user will not be misguided.
FndExcludeCustomFieldContainerAttribute
is a
Decoration class that register the given top level page or one of its child controls in the Custom Fields exclude list.
A decorated page will show up in the runtime dictionary as excluded from Custom Fields logic, meaning that no Custom Fields can be attached to the page. This should be used by the applications when the design of a page is made in a way that Custom Fields framework cannot support the design.
The decoration shows that the problem caused by the design is intended and that framework functions like menu items can show UI affordance to the administrator at an early stage.
A class without the attribute is by default included.
Excluding a main form will automatically exclude any child containers; e.g.; child tables.
In the situation where the main container should be excluded but a child container should not. Then the child container needs to be explicitly set as not excluded.
[FndExcludeCustomFieldContainerAttribute(true)] public class X { //In none derived classes the attribute can be attached directly to the member field. [FndExcludeCustomFieldContainerAttribute(false)] private cChildTable childTable1; }
For a more robust implementation it is always recommended to use above annotations for child containers where the annotation is attached directly to the member field declaration. However in rare situations where an inherited container needs to be controlled and where the member field is not accessible. Then it is possible to annotate the main container class with an explicit annotation.
Eg: In derived classes it is possible when needed, to reference a child container by name.
[FndExcludeCustomFieldContainerAttribute("childTable1", false)] public class Y : X { }