by Mayda Kurdian and Pablo Musso, from ARTech development
team
Building applications that can be customized to different
realities is essential for software development. In this way, it is possible to
adapt quickly to the changes that take place in organizations and reuse an
application in a wide variety of realities.
That's why you develop generic applications that are then
adapted at the time of execution - or at least at the time of installation -
using for example, the OAV development pattern (object, attribute,
value).
Although the development of generic applications has many
advantages, the use of this type of applications and the queries made on them
can be confusing for the end user. This happens basically because of the loss of
"semantics" and "expressivity" by the data bases of these applications since
they model a broader, generic reality which can be customized to different
clients.
To facilitate the use of data over the generic application
attribute metadatas, the possibility of defining Attributes in runtime has been
included in GXquery 2.0 Upgrade 1 and in the query mode of GXplorer 5.0. This
enables reintegration of the semantics lost in the model, hiding the complexity
of generic applications and giving the end user the possibility of making simple
queries.
For example, if the "Product Color" attribute is not
represented in the data base as an attribute with its own name (Product color)
but it is included in a generic table of product characteristics (product OAV),
in the GXquery it will be possible to define the "Product Color" attribute and
to specify where it is stored. From then on, the end user will query in GXquery
the Product Color attribute just like with any other attribute.
The development of generic applications increases the
complexity of the application; however, this complexity must not be transferred
to the end user who can query those data bases in a friendlier and more
transparent way with GXquery.
More technical information:
http://www.gxtechnical.com/gxdlsp/pub/gxquery/docum/releasenotes/20/oav.htm