Now (may 2019), in GeneXus Beta, you can package and distribute modules that access the database. So now you can create an API that can be integrated directly into another KB using the functionality of Modules Distribution in GeneXus.
The following assumptions apply
- The database is being maintained by the KB that defines the API
The following draft shows a KB that generates programs and database of an ERP. It contains a module with objects that have the Object Visibility property set to 'Public', which define the API that is packaged.
After installing the module in the other KB, there it is included as a referenced module. Other objects defined in this 2nd KB may define a new data model or not, anyway this new data model will have no references to the one defined and maintained by the ERP, so the programs generated by this KB will access their own tables. When deploying this 2nd KB, the packaged programs of the referenced module will be included automatically if required.
- A module that references a transaction that is in another module that is not part of it (or of its descendants) cannot be packaged
- Referenced transactions must not be part of the module's interface
- A module that references procedures or data providers that reference Business Components in his parm or output
- If the module references another module that is not part of it (or of its descendants), that other module must be packaged first