Since we have a GeneXus KB in the development environment (where we use GeneXus) and in the production environment (where we use GXquery), transferring information between these environments is a simple procedure. All communication is done using the Import/Export feature in GeneXus and the only products involved are GeneXus and GXquery.
The types of objects transferred are as follows:
- Objects that define the database structure (transactions, data views and subtype groups) in one direction, from GeneXus to GXquery. Initially, this is done to start the metadata. Later on, this is done as many times as necessary to update the metadata structure with the changes to the structure made in the development environment.
- Queries in both directions. They include queries created by the developer to start the metadata and queries made in GXquery which are to be incorporated to the development KB.
Some Scenarios of this Methodology
The basic situation involves starting or loading the metadata, when the GeneXus developer creates the KB using GeneXus. Optionally, he creates a set of queries over the tables of said KB.
For the GXquery user to be able to use them (and create new queries) the GXquery metadata has to be loaded with the database structure information. This includes Transactions, Data Views and Subtype groups. Only the parts of these objects related to the database are copied so the forms, procedural code and rules are excluded.
1. Start up: Loading GeneXus Metadata to GXquery
- It is entirely done from GeneXus, if you have a direct connection to the server where GXquery is installed.
- In two steps, exporting from GeneXus and importing from GXquery if there is no connection.
These operations can be performed from an option in the GeneXus Tools menu.
Once the metadata has been loaded and the GXquery users are making queries, the changes made to the database structure defined by the development KB can impact the metadata (as well as the user queries).
In this case, you only have to export the new version of the objects that define the structure from GeneXus and import them in the GXquery metadata.
Certain queries that were originally defined by GXquery users can be useful and general enough so as to be included in the GeneXus application.
This scenario also includes the case when one of the queries, originally defined in the development environment, is modified by a user and the changes go back to the development KB.
This scenario involves an application that includes some default queries, but which is also populated with queries defined by the users in GXquery. These queries are accessed with services.