|
SOL - Sort OnLine
Sort-On-Line (SOL)
is an online sorting facility for the IDMS-DC/UCF environment.
SOL provides a significant
extension to traditional transaction processing by enabling online
application programs to efficiently sort data in any order. End-users
can obtain online answers to their queries in their required order,
rather than being constrained by what others think they ought
to have.
Many times, the order of data in the database
does not meet the demands of the end-users and the applications.
Without an online sort facility, there are a few options:
Acquire the sorted report by running a batch job.
Such an alternative is time-consuming, and the report is therefore
not as up-to-date and not immediately available to view.
Program specialized internal sortsin the application
programs. This alternative requires highly professional programmers,
is time-consuming and creates maintenance problems.
Define alternate indexes to maintain the data
in the desired order. This alternative is very costly and has
many complications. It takes time (to create the indexes), disk
space (for the indexes), I/O and CPU time (for updating the index).
Also, the operational complexity rises because the additional
indexes need to be maintained, backed-up and restored.
The process, starting with the user's requests
and ending with their implementation or rejection, is long and
inefficient with any of the above alternatives.
SOL provides
another alternative - online sort.
When sorting online a single access to the database
can generate many of the desired reports. System performance is
enhanced - no need for updating and maintaining all those indexes;
required disk space is reduced; new sorted screens can easily
be added or modified without changing the database structure.
Furthermore, through its user-request option,
SOL allows end-users to dynamically
define their required sort order at program run time. This eliminates
the need to code all the possible sort sequences in advance, saving
time and work, and adding flexibility.
SOL also helps
in creating a site standard for performing sorts and displaying
field selection lists.
The data to be sorted can reside in IDMS-DC/UCF
scratch/queue files, or as tables in virtual storage.
SOL is capable
of sorting scratch/queue files containing records arranged in
either of the following ways:
- Record - each scratch/queue record includes
one sort entry.
- Page - each scratch/queue record is defined
as a one-dimensional array of sort entries. In general, each
page comprises a collection of records consecutively input and
consecutively displayed to end users.
When the sort operation is completed, data is
stored in the desired order, in the same scratch/queue file, or
in a new scratch/queue file, as specified in the SOL
command.
SOL is also
capable of sorting tables in memory. A table is defined as a record
whose first field, on the highest level, is an occurs field, and
no other field exists on that level. Table record structure is
identical to that of a page record. After completing the sort
operation, table entries are arranged in the desired order.
SOL enables
definition of sort keys for file/table sorting in either of the
following ways:
- Pre-defined specification of sort keys and
order: the keys and order are specified as part of the SOL
command in the application program.
- User-request definition: the keys and
order are defined by the user at run time. When SOL is
invoked, the user is displayed a menu of all field names (OLQ
header or symbolic name) valid as potential sort keys. After
the end-user selects the desired sort keys and order, sorting
is carried out as requested. In that way, the sort parameters
can be dynamically set by the user as needed.
In either case, up to 15 sort keys may be defined,
each in ascending or descending order.
SOL may be
invoked by applications written in ADS/OnLine, COBOL or PL/I.
In order to do so effectively and be easy-to-use, SOL
supplies a SOL command that
can be embedded in the host language and an online facility (SOLG)
for the translation of IDD source modules containing SOL
command(s). The result of this translation process is a source
module, in the host language, which contains the commands needed
to invoke SOL.
|