Extend functionality using plugins
- Last UpdatedApr 24, 2025
- 3 minute read
Plugins are used to enhance the Advanced Database Editor (ADE) and provide additional functions—such as logic and validations—that the base version of ADE can not perform. With plugins, you can input data and then either have the values passed back to the calling form for saving, or open a form independent of the calling form. When the system calls a plugin, ADE passes the record from the calling form to the plugin.
There are three types of plugins:
-
FieldPlugIn Plugins
A FieldPlugIn plugin applies to specific fields or columns as defined within the Field element. The plugins defined for the fields apply to the Row Edit and Table Edit dialog forms if the ApplyFieldRules attribute in the XSD file is set to true.

-
RowEditFormPlugIn Plugins
A RowEditFormPlugIn Plugin applies to both Row Edit and Row Details forms. It shows only one record from the table. If you set the ApplyFieldRules attribute in the XSD file to false, the RowEditFormPlugIn plugin only applies to the Row Edit form and not to the Table Edit form. You can use the RowEditFormPlugIn plugin to define logic specific to the Row Edit form, but not to the Table Edit form. For example, the analog Row Details or Row Edit form shows the value for the 0analog point.


-
TableEditFormPlugIn Plugins
A TableEditFormPlugIn plugin applies to the Table Edit form. Table Edit dialog boxes are used to display rows (records) belonging to the table. The plugin applies to all the records opened in the form. If the ApplyFieldRules attribute is set to false, the logic only applies to the Table Edit form. If the ApplyFieldRules attribute in the XSD file is set to true, the RowEdit and Field plugins also apply. For example, the analog Table Edit form generally displays a large number of records.

The baseline plugins are defined in XML files located in the %DNAInstallRoot%\ADE\config\ADE\PlugIns directory. Each XML file contains a series of plugins with the following attributes:
-
Name is the name of the plugin (case-sensitive).
-
Assembly is the name of the .dll file built by a Windows .NET Framework library.
-
Class is a class name to invoke in the assembly.
-
Method is the method to invoke within the class.
-
PlugInType is an indicator as to the form on which this plugin can be used.
-
ApplyFieldRules indicates if this plugin should apply the rules defined for the field or column.
For example, in the ADEPlugIns.xml file, the RemoveEnumsField plugin lists the class and method provided by the OASySDNA.ADE.PlugIns.dll file. The OASySDNA.ADE.PlugIns.dll file contains the RemoveEnums class, which functions to remove enumeration from various structures. The RemoveEnumsField plugin calls the RemoveEnums class's RemoveEnumsField method. The plugin can only apply to the Field element. The ApplyFieldRules attribute indicates that the field rule must apply to the field column.
<PlugIn Name="RemoveEnumsField"
Assembly="OASySDNA.ADE.PlugIns"
Class="RemoveEnums"
Method="RemoveEnumsField"
PlugInType="Field"
ApplyFieldRules="true" />
In another example, the RemovEnumsTableEdit plugin calls the same assembly and class as the RemoveEnumsField plugin, but a different method: RemoveEnumsTableEdit. The RemovEnumsTableEdit plugin—and the rules defined in the plugin's fields—apply only to the Table Edit form because the ApplyFieldRule attribute is set to false.
<PlugIn Name="RemoveEnumsTableEdit"
Assembly="OASySDNA.ADE.PlugIns"
Class="RemoveEnums"
Method="RemoveEnumsTableEdit"
PlugInType="TableEditForm"
ApplyFieldRules="false" />