If you are joining more than two files, and you specify the JDFTVAL keyword, the default value supplied by the system for a join field missing from a secondary file is used to join to other secondary files. If the DFT keyword is specified in the secondary file, the value specified for the DFT keyword is used in the logical file.
The DDS for the files is as follows:
JLF
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A JDFTVAL
A R JRCD JFILE(PF1 PF2 PF3)
A J JOIN(PF1 PF2)
A JFLD(NAME NAME)
A J JOIN(PF2 PF3)
A JFLD(TELEPHONE TELEPHONE)
A NAME JREF(PF1)
A ADDR
A TELEPHONE JREF(PF2)
A LOC
A
PF1
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A R RCD1
A NAME 20
A ADDR 40
A COUNTRY 40
A
PF2
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A R RCD2
A NAME 20
A TELEPHONE 8 DFT('999-9999')
A
PF3
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A R RCD3
A TELEPHONE 8
A LOC 30 DFT('No location assigned')
A
Assume that PF1, PF2, and PF3 have the following records:

With JDFTVAL specified in the join logical file, the program reads the
following logical file records:

In this example, complete data is found for Anne and Doug. However, part of the data is missing for Mark and Sue.