Retrieving missing fields

If a field does not exist in the physical variable-length segment at retrieval time, the corresponding field in the application program's I/O area is filled with a value based on the data type specified in the DBD.

The figure below is an example of a missing field on a retrieve call based on the DBD and PSB examples that follow the figure.

Figure 1. Example of a missing field on a retrieve call Physical segment on disk has the fields LL, EMPNO, and EMPNAME. The I/O area after get call has EMPNAME, EMPNO, and ADDRESS. The ADDRESS field is blank.

The following code is an example DBD for field-level sensitivity with variable-length segments:

DBD
 
SEGM  NAME=EMPREC,BYTES=(102,7)
FIELD NAME=(EMPNO,SEQ),BYTES=5,START=3,TYPE=C
FIELD NAME=EMPNAME,BYTES=20,START=8,TYPE=C
FIELD NAME=BIRTHD,BYTES=6,START=28,TYPE=C
FIELD NAME=ADDRESS,BYTES=60,START=43,TYPE=C

The following code is an example PSB for field-level sensitivity with variable-length segments.

PSB

SENSEG  NAME=EMPREC,PROCOPT=A
SENFLD  NAME=EMPNAME,START=1,REPL=N
SENFLD  NAME=EMPNO,START=25
SENFLD  NAME=ADDRESS,START=35,REPLY=Y

The length field is not present in the I/O area. Also, the address field is filled with blanks, because TYPE=C is specified on the FIELD statement in the DBD.