Learn about EMPTY-CHECK in COBOL, including its usage in data validation, field verification, and handling of empty or null values.
EMPTY-CHECK is a crucial feature in COBOL for validating data fields and ensuring they contain meaningful values. It helps maintain data integrity by identifying empty or null fields before they cause processing errors.
1234567891011WORKING-STORAGE SECTION. 01 WS-CUSTOMER-RECORD. 05 WS-CUSTOMER-NAME PIC X(30). 05 WS-CUSTOMER-ID PIC X(10). 01 WS-VALID-FLAG PIC X VALUE 'Y'. PROCEDURE DIVISION. IF WS-CUSTOMER-NAME = SPACES MOVE 'N' TO WS-VALID-FLAG DISPLAY "Error: Customer name is empty" END-IF
123456IF WS-CUSTOMER-NAME = SPACES OR WS-CUSTOMER-NAME = LOW-VALUES MOVE 'N' TO WS-VALID-FLAG DISPLAY "Error: Invalid customer name" PERFORM HANDLE-EMPTY-FIELD END-IF
12345678910111213141516171819202122232425262728WORKING-STORAGE SECTION. 01 WS-ERROR-COUNT PIC 9(2) VALUE ZERO. 01 WS-ERROR-MESSAGE PIC X(50). PROCEDURE DIVISION. PERFORM CHECK-REQUIRED-FIELDS IF WS-ERROR-COUNT > 0 PERFORM DISPLAY-ERROR-SUMMARY ELSE PERFORM PROCESS-RECORD END-IF. CHECK-REQUIRED-FIELDS. IF WS-CUSTOMER-NAME = SPACES ADD 1 TO WS-ERROR-COUNT STRING "Customer name required" DELIMITED BY SIZE INTO WS-ERROR-MESSAGE PERFORM DISPLAY-ERROR END-IF IF WS-CUSTOMER-ID = SPACES ADD 1 TO WS-ERROR-COUNT STRING "Customer ID required" DELIMITED BY SIZE INTO WS-ERROR-MESSAGE PERFORM DISPLAY-ERROR END-IF
Special handling for numeric fields that might be empty:
123456789101112131415WORKING-STORAGE SECTION. 01 WS-AMOUNT PIC 9(7)V99. 01 WS-AMOUNT-X REDEFINES WS-AMOUNT PIC X(9). PROCEDURE DIVISION. IF WS-AMOUNT-X = SPACES MOVE ZEROS TO WS-AMOUNT PERFORM HANDLE-EMPTY-AMOUNT ELSE IF WS-AMOUNT = ZEROS PERFORM HANDLE-ZERO-AMOUNT ELSE PERFORM PROCESS-AMOUNT END-IF END-IF
123456789101112EVALUATE TRUE WHEN WS-FIELD = SPACES PERFORM HANDLE-SPACES WHEN WS-FIELD = LOW-VALUES PERFORM HANDLE-LOW-VALUES WHEN WS-FIELD = HIGH-VALUES PERFORM HANDLE-HIGH-VALUES WHEN WS-FIELD = ZEROS PERFORM HANDLE-ZEROS WHEN OTHER PERFORM PROCESS-VALID-FIELD END-EVALUATE
1234567891011121314151617181920212223WORKING-STORAGE SECTION. 01 WS-ERROR-TABLE. 05 WS-ERROR-ENTRY OCCURS 10 TIMES. 10 WS-ERROR-FIELD PIC X(20). 10 WS-ERROR-DESC PIC X(50). 01 WS-ERROR-IDX PIC 99 VALUE 1. PROCEDURE DIVISION. PERFORM VALIDATE-FIELDS IF WS-ERROR-IDX > 1 PERFORM DISPLAY-ERRORS PERFORM HANDLE-VALIDATION-FAILURE ELSE PERFORM PROCESS-VALID-RECORD END-IF. VALIDATE-FIELDS. IF WS-CUSTOMER-NAME = SPACES MOVE "CUSTOMER-NAME" TO WS-ERROR-FIELD(WS-ERROR-IDX) MOVE "Required field is empty" TO WS-ERROR-DESC(WS-ERROR-IDX) ADD 1 TO WS-ERROR-IDX END-IF