Business Entity Designer Plugins

The Business Entity Designer supports plugins to add (custom) functionality to the tools design time or code generation. Plugins can access the ProDataset of the Business Entity Designer, containing the model details, the controller class and the Form and the Toolbar (Ribbon) of the tool. This allows plugin to add UI controls (e.g. Buttons in the Ribbon) or subscribe to Events of the Controller (e.g. code generation).

Sample Ribbon Buttons added by Plugins

Plugins are registered in “Options” dialog of the Business Entity Designer by their class name. The plugin settings are stored like all other options in the .BusinessEntityDesignerSettings.xml file. Class Names prefixed with a “#” sign are not loaded (allowing developers to deactivate plugins temporarily).

Options Dialog for Business Entity Designer Plugins

The Business Entity Designer loads those plugins during the startup of the tool. Plugins need to implement the Consultingwerk.BusinessEntityDesigner.IBusinessEntityDesignerPlugin interface.

The most important method of the Interface is the “Startup” method. Using this method the Business Entity Designer provides access to the core resources of the tool:

/*------------------------------------------------------------------------------
    Purpose: Initializes the plugin                                                                      
    Notes:                      
    @param dsBusinessEntity Business Entity with the Design dataset, called with the BIND keyword
    @param poController The BusinessEntityDatasetController
    @param poForm The main Form of the BusinessEntityDesigner
    @param poToolbar The reference to the UltraToolbarsManager used by the BusinessEntityDesigner                                                                     
------------------------------------------------------------------------------*/
METHOD PUBLIC VOID Startup (DATASET FOR dsBusinessEntity BIND, 
                            poController AS BusinessEntityDatasetController, 
                            poForm AS BusinessEntityDesignerForm, 
                            poToolbar AS UltraToolbarsManager)
Parameter NameDescription
dsBusinessEntityThe Business Entity Designer dataset containing the current model, from Consultingwerk/BusinessEntityDesigner/Services/dsBusinessEntity.i
poControllerThe reference to the Consultingwerk.BusinessEntityDesigner.Services.BusinessEntityDatasetController
poFormThe reference to the Consultingwerk.BusinessEntityDesigner.UI.BusinessEntityDesignerForm
poToolbarThe reference to the Infragistics UltraToolbarsManager component rendering the Control’s Ribbon

Overview of Business Entity Designer Plugins

Batch Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.BatchGeneratorPlugin

Plugin that supports automated generation of Business Entities for a Batch of Database Tables (one Business Entity per Database Table).

Adds a "Batch Generator" button in the Ribbon of the Business Entity Designer

Class Annotation Generator Plugin

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.ClassAnnotationGeneratorPlugin

Plugin to create class annotations for the current Business Entity.

Adds a "Extract Class Annotations" button in the Business Entity Designer. See the Annotation based Type Descriptor and Business Entity Descriptor for details

C# Generator Plugin

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.CsharpGeneratorPlugin

Business Entity Designer Plugin to create C# classes from the dataset design using the xsd.exe utility.

Adds a "C# Classes" button in the Business Entity Designer. Allows to generate C# typed dataset or  value classes based on the Business Entity ProDataset structure.

DataSource Extended Info Plugin

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.DataSourceExtendedInfoPlugin

Plugin that creates code which provides runtime-queryable (using DYNAMIC-PROPERTY) info about data-source buffers and field mappings.

Plugin manipulates the generated Data Access class after code has been generated or regenerated.

Requires annotations in the DataAccess Class and Templates:

 

@DefineDataSourceInformationStart.
@DefineDataSourceInformationEnd.

Sample generated code in a Data Access class:

@DefineDataSourceInformationStart.
DEFINE PROTECTED PROPERTY SourceTables_eSalesrep AS CHARACTER NO-UNDO INIT "Salesrep":U GET .
DEFINE PROTECTED PROPERTY SourceBufferNames_eSalesrep AS CHARACTER NO-UNDO INIT "Salesrep":U GET .
DEFINE PROTECTED PROPERTY SourceFieldMapping_eSalesrep AS CHARACTER NO-UNDO INIT "Salesrep,Salesrep.SalesRep,Repname,Salesrep.RepName,Region,Salesrep.Region,Monthquota_01,Salesrep.MonthQuota[1],Monthquota_02,Salesrep.MonthQuota[2],Monthquota_03,Salesrep.MonthQuota[3],Monthquota_04,Salesrep.MonthQuota[4],Monthquota_05,Salesrep.MonthQuota[5],Monthquota_06,Salesrep.MonthQuota[6],Monthquota_07,Salesrep.MonthQuota[7],Monthquota_08,Salesrep.MonthQuota[8],Monthquota_09,Salesrep.MonthQuota[9],Monthquota_10,Salesrep.MonthQuota[10],Monthquota_11,Salesrep.MonthQuota[11],Monthquota_12,Salesrep.MonthQuota[12],Email,Salesrep.Email":U GET .
@DefineDataSourceInformationEnd.

Entity Class Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.EntityClassGeneratorPlugin

Plugin that integrates the Generator for ORM value classes.

The Plugin generates Entity classes and related code whenever the Business Entity is generated or regenerated. Entity class code generation can be suspended by setting the "EntityClassGenerator.Disabled" custom property to "false".

Kendo UI Grid Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.KendoUiGridGeneratorPlugin

Plugin to generate html pages including Kendo UI Grid.

Adds a "Generate Kendo UI Grid" button to the Ribbon of the Business Entity Designer. Allows wizard and template based generation of HTML pages containing a Kendo UI Grid and JSDO.

Model Class Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.ModelClassGeneratorPlugin

Plugin that integrates the Generator for Dataset/TableModel classes (DatasetModel, TableModel, TableFilter).

The Plugin generates DatasetModel classes and related code whenever the Business Entity is generated or regenerated. DatasetModel code generation can be suspended by setting the "ModelClassGenerator.Disabled" custom property to "false".

Open Access for OpenEdge SDK Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.OpenAccessSdkGeneratorPlugin

Plugin to create OpenAccess SDK proxy procedure and Catalog file.

Adds a "DataDirect OpenAccess" button to the Ribbon of the Business Entity Designer Ribbon. This button allows to generate proxy procedure and catalog descriptions that allow the use of Business Entities as ODBC data sources using DataDirect OpenAccess for OpenEdge.

Plugin that allows to generate Proxy Classes for Business Entities. These proxy classes allow to expose Business  Entities using the REST Adapter to OpenEdge mobile or compatible clients.

Adds an "Include Files" and "Service Interface" buttons to the Ribbon of the Business Entity Designer. Those buttons allow to generate include files (excluding any XML specific properties in the source code) and REST Service Interface classes that can be added to a REST service.

The use of the code generated by this plugin is no longer recommended. We recommend customers to export Business Entities dynamically using the Generic Service Interface.

Rollbase Importer

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.RollbaseImporterPlugin

Plugin that supports importing Rollbase Objects.

Adds an "Import Rollbase Object" button to the Ribbon of the Business Entity Designer. This plugin allows to import the structure of an object (class) in Rollbase as a temp-table as part of the Business Entity.

Save Image Plugin

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SaveImagePlugin

Saves an Image (PNG) of the Business Entity Design whenever the .bedgm file is saved

Stores the Image of the Design Canvas in the same folder that contains the .bedgm file of the Business Entity

SmartDataObject Importer

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SmartDataObjectImporterPlugin

Business Entity Designer Plugin that supports to import an ADM2 SmartDataObject into the Business Entity.

Creates an "Import SDO" button to the Ribbon of the Business Entity Designer. Using this Button developers can import an SDO onto the Design Canvas. The import process imports the fields of the SDO and the Data Source information (query, source tables).

SmartFramework Support

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SmartFrameworkSupportPlugin

Plugin that allows creation of SmartFramework Support fields on the Business Entity Table.

Provides functionality to create the SmartFramework default fields to business entity temp-tables. Imports the field definition from the XML file Consultingwerk/BusinessEntityDesigner/Plugins/SmartFrameworkDefaultFields.template

  • SmartAttachments (LOGICAL)
  • SmartComments (LOGICAL)
  • SmartRecordKey (CHARACTER)
  • SmartCopiedFrom (CHARACTER)

Smart Tab Page Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SmartTabPageControlPlugin

Plugin to generate SmartTabPageControl inherited user controls.

Adds a "Generate TabPage" button to the Ribbon of the Business Entity Designer that allows to access a wizard that supports generating a SmartTabFolderPage derived user control.

Smart Viewer Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SmartViewerGeneratorPlugin

Plugin to generate SmartViewerControl inherited user controls.

Adds a "Generate Viewer" button to the Ribbon of the Business Entity Designer that allows to access a wizard that supports generating a SmartViewerControl derived user control.

Smart Window Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.SmartWindowGeneratorPlugin

Plugin to generate SmartWindowForm inherited form.

Adds a "Generate Window" button to the Ribbon of the Business Entity Designer that allows to access a wizard that supports generating a SmartWindowForm derived form.

Table and Field Constants Generator

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.TableAndFieldConstantsGeneratorPlugin

Plugin that supports the generation of include files with Constants for ProDataset Buffer and Field Names.

Creates an include file with the name "<dataset name>_Constants.i". This include contains GLOBAL-DEFINE compile time variables that can be used in dynamic code to avoid typos when building dynamic queries. Generates the include file whenever the Business Entity is generated of regenerated.

Sample source code generated in those include files:

&GLOBAL-DEFINE eSmartObjectType "eSmartObjectType"
&GLOBAL-DEFINE eSmartObjectType.ObjectTypeGuid "eSmartObjectType.ObjectTypeGuid"
&GLOBAL-DEFINE eSmartObjectType.ObjectTypeName "eSmartObjectType.ObjectTypeName"
&GLOBAL-DEFINE eSmartObjectType.ObjectTypeDescription "eSmartObjectType.ObjectTypeDescription"
&GLOBAL-DEFINE eSmartObjectType.StoreInstances "eSmartObjectType.StoreInstances"

Telerik Mobile

Plugin Class Name: Consultingwerk.BusinessEntityDesigner.Plugins.TelerikMobilePlugin

Plugin to generate fragments of html mobile views used in the Telerik Platform

Adds a "Generate Detail View" button to the Business Entity Designer Ribbon that allows generating a wizard for a detail view that can be copied and pasted into the Telerik AppBuilder (Telerik Platform). Does further add a button that opens the Telerik Platform in the web browser.