Uniface repository is always stored in a database - stating with Dbase III for Uniface 5 and 6, to SOLID for Uniface 7 and in Uniface 10 maybe you are storing the repository in SQLite. But UD6 stores your source
code in easy to read XML files, in a 'directory tree'. This is a database, but the database is made up of readable text files. If you change the XML text file using a plain text editor, then you change the Uniface repository database instantly.
This is not an Import/Export format, and does not require any change to how you work within the IDF.
Here is the basic directory structure, by default most directories contain 1 file per Uniface object, however this can be altered. For more detail please see details further down this page.
- sources
- applications.dir
- components.dir
- model-name1.dir
- model-name2.dir
- dtd.dir
- globals.dir
- control-panels.dir
- device-tables.dir
- include-procs.dir
- messages.dir
- global-procs.dir
- translation-tables.dir
- glyphs.dir
- menus.dir
- other.dir
- registers.dir
- relationships.dir
- schemas.dir
- subsystems.dir
- templates.dir
- entity-interface.dir
- field-interface.dir
- field-layout.dir
- field-syntax.dir
- field.dir
- component.dir
- entity
- type-libraries.dir
- model-name.dir
...
|
- Container Directory
- Start-up Shell's.
- Forms, Services, Reports, and Templates.
- Tables, SubTypes, Fields of this model1.
- Tables, SubTypes, Fields of this model2.
- DTD Definition (Uniface 7.2.06).
-
- Control Panels1.
|
What is stored in each directory
Uniface sources are grouped together with like objects, and then 'split' into logical elements.
For example a Forms and Component Varaiables (registers) go together, and are divided up by 'form name'.
The following sections describe the two most common ways of clustering the Uniface sources, followed by a detailed description of the mapping between the Uniface Relational Repository model and the UD6 Directory structure. Most of these settings can be altered using the UD6 configuration files.
One file per object
Global objects such as messages, and include procs can be stored individually or as a single file per library.
This example shows one file per message:
- sources
- globals.dir
- control-panels.dir
- device-tables.dir
- include-procs.dir
- messages.dir
- TRUST-F_AFA_SATZ_LINE-D.XML
- TRUST-F_AFA_VALUTA-D.XML
- TRUST-F_AGIO-D.XML
- TRUST-F_ANREDEBRIEF-D.XML
- TRUST-F_ANREDE-D.XML
- .
- .
- .
One file per library/language
Global objects such as messages, and include procs can be stored individually or as a single file per library.
This example shows one file per library:
- sources
- globals.dir
- control-panels.dir
- device-tables.dir
- include-procs.dir
- messages.dir
- TRUST-D.XML
- TRUST-USA.XML
- .
- .
- .
Mapping between repository model and UD6 Directory Structure
The UD6 configuration file JOINS is a text file that controls how entities are mapped to files. Customers can change this, however it is recommended you discuss your changes with the support team.
The one exception to this is the global objects: include procs, global procs, global variables/global registers, messages, keyboard translation tables etc. Prior to Uniface 10, these are all
stored in one table: USOURCE, and so one UD6 rule applies to all records - however you can enable 'newglobals' setting to use a fixed alternative clustering for USOURCE. In Uniface 10 this works
a bit differently since the clustering is primarily controlled by the JOINS configuration file.
NEWGLOBALS V2, NEWMSG
include procs |
one file per include proc |
global procs |
one file per global proc |
messages |
one file per library & language |
keyboard translation table |
one file per keyboard translation table |
device table |
one file per device table |
control panel |
one file per control panel |
NEWGLOBALS
include procs |
one file per library |
global procs |
one file per proc |
messages |
one file per library per language |
keyboard translation table |
one file per keyboard translation table |
device table |
one file per device table |
control panel |
one file per control panel |
Read more
about Uniface Version Control