💻 COBOL
COBOL Data Validation Techniques
Intermediate 🕑 15 min read
👁 0 views
COBOL Data Validation Techniques
Validate input data to prevent runtime errors and ensure data quality.
Numeric Validation
```cobol IF WS-INPUT IS NUMERIC MOVE WS-INPUT TO WS-NUMBER ELSE SET INVALID-DATA TO TRUE END-IF. ```
Class Tests
```cobol IF data-item IS ALPHABETIC IF data-item IS ALPHABETIC-LOWER IF data-item IS ALPHABETIC-UPPER IF data-item IS NUMERIC ```
INSPECT for Characters
```cobol INSPECT WS-DATA TALLYING WS-COUNT FOR ALL ' ' BEFORE INITIAL '.'. ```
Range Validation
```cobol IF WS-MONTH >= 1 AND WS-MONTH <= 12 SET VALID-MONTH TO TRUE END-IF. ```
Pattern Validation
```cobol IF WS-SSN(1:3) IS NUMERIC AND WS-SSN(4:1) = '-' AND WS-SSN(5:2) IS NUMERIC... ```
Best Practices
- Validate at system boundaries
- Use meaningful error messages
- Log invalid data
- Provide default handling
Code Example
IDENTIFICATION DIVISION.
PROGRAM-ID. VALIDATE-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-INPUT PIC X(20).
01 WS-NUMBER PIC 9(10).
01 WS-DATE PIC X(10).
01 WS-COUNT PIC 99.
01 WS-VALID PIC X VALUE 'N'.
88 IS-VALID VALUE 'Y'.
PROCEDURE DIVISION.
* Numeric validation
MOVE '12345' TO WS-INPUT
IF WS-INPUT IS NUMERIC
MOVE WS-INPUT TO WS-NUMBER
SET IS-VALID TO TRUE
ELSE
DISPLAY 'Invalid numeric'
END-IF
* Character count
MOVE 0 TO WS-COUNT
INSPECT WS-INPUT TALLYING WS-COUNT FOR ALL ' '
* Date format check
MOVE '12/25/2024' TO WS-DATE
IF WS-DATE(3:1) = '/' AND WS-DATE(6:1) = '/'
IF WS-DATE(1:2) IS NUMERIC
AND WS-DATE(4:2) IS NUMERIC
AND WS-DATE(7:4) IS NUMERIC
DISPLAY 'Valid date format'
END-IF
END-IF
STOP RUN.