Features of the IDMS interface
Here
are some of the features of the ULTIM language that apply to the
processing of IDMS databases. Some are shown in the example below.
- Ability to automatically convert parts or the whole ULTIM IDD dictionary.
- Relationships between records or between records and indices described in the generated or coded PARENTS statements.
- Automatic management of the link protocols to the databases.
- Additional
keywords of the PROCESS statement to resume reading a type
of records from a particular occurrence, forward or backward
(FIRST, LAST, FOLLOWING or PRIOR).
- Ability
to process according to the order of one of the sets described for a type of
records (WITHIN parameter), including the SPF indices and the
integrated indices.
- Reading
of the secondary records automatically done according to the set that links
them to the parent record already read. Therefore, in the example,
only the RECNAME secondary records belonging to the
RECCUST master record will be read.
- Ability to retrieve the parent records (PARENT OF) according to the different sets described in the dictionary.
- Ability to directly access a master or a secondary record by its CALC key or its DB-KEY.
- Access to the DB-KEY of the processed record, as well as to the return code of the operation.
Example of dictionary coded in ULTIM or automatically generated from the IDD dictionary
./
OPTIONS DB-NAME=PROD
; Production database
./*
Information about the divisions
./ IDMS DIVISION, SCHDIV, AREAGEN, RECDIV, 102, DIVKEY
VALUE (79, N, 8.2, 10,
@ED:$)
./*
Basic customer information
./ IDMS CUSTOMER, SCHBASE, AREAINFO, RECCUST, 102,
CUSTKEY
./
PARENTS RECDIV(SETDIV), RECDIV(SETSECT,SECTOR)
ACCOUNT-NBR
(16, N, 7)
DIV
(73, A, 6)
BALANCE (79, N, 8.2, 10,
@ED:$) LAST-PAYMENT (87, N,
8, 10, @ED:@DATE)
./*
Name and address of the customer ./ IDMS NAMEADDR , SCHBASE, AREAINFO, REC NAME, 105, CUSTNAME
./
PARENTS RECCUST (SETCUST)
./ COBOL
./ COPY DESC (CUSTNAME)
./* COBOL fields from CUSTNAME translated into ULTIM
* NAME (1,A,15) * ADDR-1 (16,A,30) * ADDR-2 (46,A,30) * CODE (76,N,7)
Example
of
program
BEGIN
DEMO.
* Reading of the data
PROCESS
EACH CUSTOMER WHERE LAST-PAYMENT < 20150301 AND BALANCE > 0.
PROCESS GET DIVISION PARENT OF CUSTOMER WITHIN SETSECT.
CRITERIA VALUE < 125000.
; Process if the value is lower than 125000
PROCESS GET NAMEADDR. ; Name and address corresponding to CUSTOMER only
* Report to be produced
OPTIONS
HEADING=AUTO, SPACING = 5.
REPORT
CUSTOMER:DIV('DIVISION'), NAME, ACCOUNT-NBR, BALANCE(12,TOTAL), LAST-PAYMENT.
TITLE ACCOUNTS OUTSTANDING FOR MORE THAN 2 MONTHS AS OF MAY 1, 2015
CONTROL
SUBTOTALS=1.
END
Tabulated report produced by REPORT, TITLE and CONTROL statements
MAY 6, 2015 PAGE 1
ACCOUNTS OUTSTANDING FOR MORE THAN 2 MONTHS AS OF MAY
1, 2015
DIVISION ------NAME----- ACCOUNT
NBR BALANCE LAST PAYMENT
N-EAST LLOYD &
SONS
2369108
$34.94 2015/02/21
THE LAMP
SHOP
3246538
$199.00 2014/12/15
THE
LIGHTHOUSE
1071638
$2,189.10 2015/01/06
........................................... $2,423.04
N-WEST MVC
INC.
1387
$4,189.95 2015/01/28
PLANT
LIGHTING
9066489
$1,450.49 2015/02/12
QUALITY
SWITCH
9193257
$469.20 2015/02/16
ZEUSS
DISCOUNT
1479380
$964.99 2015/02/01
ZIGGER'S
2102981
$2,849.59 2014/11/01
........................................... $9,924.22
S-EAST ACME LITE
LTD.
843896
$360.47 2015/02/11
ELECTRIC
SHOP
2225751
$194.90 2014/12/21
LIGHTNING
LAMP
3178456
$475.20 2014/12/05
RUSSELL &
SONS 386660
$895.45 2015/01/12
TOP
SERVICES
3143486
$10.00 2015/02/01
........................................... $1,936.02 ........................................... $14,283.28
|