EMPTY-CHECK in COBOL

Learn about EMPTY-CHECK in COBOL, including its usage in data validation, field verification, and handling of empty or null values.

Understanding EMPTY-CHECK

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.

Key Characteristics

  • Validates field contents
  • Identifies truly empty fields
  • Works with various data types
  • Supports data quality control

Basic EMPTY-CHECK Usage

Simple Field Validation

cobol
1
2
3
4
5
6
7
8
9
10
11
WORKING-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

Comprehensive Empty Check

cobol
1
2
3
4
5
6
IF 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

Advanced Validation Techniques

Multiple Field Validation

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
WORKING-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

Numeric Field Validation

Special handling for numeric fields that might be empty:

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WORKING-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

Handling Multiple Empty Conditions

Comprehensive Empty Check

cobol
1
2
3
4
5
6
7
8
9
10
11
12
EVALUATE 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

Best Practices

  • Check for multiple empty conditions
  • Validate before processing
  • Maintain error logs
  • Use appropriate data types
  • Consider field requirements

Error Handling Patterns

Structured Error Handling

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
WORKING-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

Performance Considerations

  • Optimize validation order
  • Batch similar checks
  • Use efficient comparisons
  • Consider field sizes
  • Minimize redundant checks

Frequently Asked Questions

Related Pages