The REQUIRED clause is used in COBOL screen handling to specify that a field must be filled before the user can proceed. This enforces input validation and ensures data completeness in interactive applications.
REQUIRED clause enforces input validation for data completeness.
The REQUIRED clause follows specific syntax patterns within screen definitions and ACCEPT statements.
12345678910111213141516171819202122232425* Basic REQUIRED clause syntax SCREEN SECTION. 01 INPUT-SCREEN. 05 LINE 5 COLUMN 10 VALUE "Customer ID:". 05 LINE 5 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED. * With multiple attributes 01 LOGIN-SCREEN. 05 LINE 3 COLUMN 10 VALUE "Username:". 05 LINE 3 COLUMN 25 PIC X(20) TO USERNAME REQUIRED AUTO-SKIP. 05 LINE 5 COLUMN 10 VALUE "Password:". 05 LINE 5 COLUMN 25 PIC X(20) TO PASSWORD REQUIRED SECURE. * In ACCEPT statement ACCEPT CUSTOMER-ID AT LINE 5 COLUMN 25 REQUIRED. * With error handling ACCEPT ORDER-AMOUNT AT LINE 10 COLUMN 25 REQUIRED ON EXCEPTION DISPLAY "Amount is required!" AT LINE 20 COLUMN 10.
REQUIRED clause enforces input validation in screen handling.
Aspect | REQUIRED | SECURE |
---|---|---|
Purpose | Input validation | Data privacy |
Behavior | Prevents empty fields | Hides input characters |
Usage | Mandatory fields | Password fields |
Visual effect | Validation indicator | Hidden characters |
Combination | Can be combined | Can be combined |
1234567891011121314151617181920212223242526272829* Complete SCREEN SECTION with REQUIRED DATA DIVISION. SCREEN SECTION. 01 CUSTOMER-ENTRY-SCREEN. 05 LINE 1 COLUMN 1 VALUE "CUSTOMER DATA ENTRY". 05 LINE 3 COLUMN 10 VALUE "Customer ID:". 05 LINE 3 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED HIGHLIGHT. 05 LINE 5 COLUMN 10 VALUE "Customer Name:". 05 LINE 5 COLUMN 25 PIC X(30) TO CUSTOMER-NAME REQUIRED. 05 LINE 7 COLUMN 10 VALUE "Phone Number:". 05 LINE 7 COLUMN 25 PIC X(15) TO PHONE-NUMBER REQUIRED. 05 LINE 9 COLUMN 10 VALUE "Email:". 05 LINE 9 COLUMN 25 PIC X(40) TO EMAIL-ADDRESS. 05 LINE 11 COLUMN 10 VALUE "Press ENTER to continue". WORKING-STORAGE SECTION. 01 CUSTOMER-DATA. 05 CUSTOMER-ID PIC X(10). 05 CUSTOMER-NAME PIC X(30). 05 PHONE-NUMBER PIC X(15). 05 EMAIL-ADDRESS PIC X(40). PROCEDURE DIVISION. DISPLAY-CUSTOMER-SCREEN. DISPLAY CUSTOMER-ENTRY-SCREEN ACCEPT CUSTOMER-ENTRY-SCREEN.
REQUIRED clause is used within SCREEN SECTION definitions.
These examples demonstrate how to use the REQUIRED clause effectively in different screen handling scenarios.
1234567891011121314151617181920212223242526272829303132333435363738394041424344IDENTIFICATION DIVISION. PROGRAM-ID. CUSTOMER-REGISTRATION. DATA DIVISION. SCREEN SECTION. 01 REGISTRATION-SCREEN. 05 LINE 1 COLUMN 1 VALUE "CUSTOMER REGISTRATION FORM". 05 LINE 3 COLUMN 10 VALUE "First Name:". 05 LINE 3 COLUMN 25 PIC X(20) TO FIRST-NAME REQUIRED HIGHLIGHT. 05 LINE 5 COLUMN 10 VALUE "Last Name:". 05 LINE 5 COLUMN 25 PIC X(20) TO LAST-NAME REQUIRED HIGHLIGHT. 05 LINE 7 COLUMN 10 VALUE "Email:". 05 LINE 7 COLUMN 25 PIC X(40) TO EMAIL-ADDRESS REQUIRED. 05 LINE 9 COLUMN 10 VALUE "Phone:". 05 LINE 9 COLUMN 25 PIC X(15) TO PHONE-NUMBER REQUIRED. 05 LINE 11 COLUMN 10 VALUE "Address:". 05 LINE 11 COLUMN 25 PIC X(50) TO ADDRESS. 05 LINE 13 COLUMN 10 VALUE "Press ENTER to submit". WORKING-STORAGE SECTION. 01 CUSTOMER-INFO. 05 FIRST-NAME PIC X(20). 05 LAST-NAME PIC X(20). 05 EMAIL-ADDRESS PIC X(40). 05 PHONE-NUMBER PIC X(15). 05 ADDRESS PIC X(50). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM DISPLAY-REGISTRATION-FORM PERFORM VALIDATE-AND-SAVE STOP RUN. DISPLAY-REGISTRATION-FORM. DISPLAY REGISTRATION-SCREEN ACCEPT REGISTRATION-SCREEN. VALIDATE-AND-SAVE. * Additional validation logic here DISPLAY "Customer registered successfully!" AT LINE 15 COLUMN 10.
REQUIRED clause ensures all mandatory customer information is provided.
123456789101112131415161718192021222324252627282930313233* Secure login screen with REQUIRED fields SCREEN SECTION. 01 LOGIN-SCREEN. 05 LINE 1 COLUMN 1 VALUE "SYSTEM LOGIN". 05 LINE 3 COLUMN 10 VALUE "Username:". 05 LINE 3 COLUMN 25 PIC X(20) TO USERNAME REQUIRED AUTO-SKIP. 05 LINE 5 COLUMN 10 VALUE "Password:". 05 LINE 5 COLUMN 25 PIC X(20) TO PASSWORD REQUIRED SECURE. 05 LINE 7 COLUMN 10 VALUE "Press ENTER to login". WORKING-STORAGE SECTION. 01 LOGIN-CREDENTIALS. 05 USERNAME PIC X(20). 05 PASSWORD PIC X(20). PROCEDURE DIVISION. LOGIN-PROCESS. PERFORM UNTIL LOGIN-SUCCESSFUL DISPLAY LOGIN-SCREEN ACCEPT LOGIN-SCREEN PERFORM VALIDATE-LOGIN END-PERFORM. VALIDATE-LOGIN. * Login validation logic here IF USERNAME = "ADMIN" AND PASSWORD = "SECRET" MOVE "Y" TO LOGIN-SUCCESSFUL DISPLAY "Login successful!" AT LINE 10 COLUMN 10 ELSE DISPLAY "Invalid credentials!" AT LINE 10 COLUMN 10 END-IF.
REQUIRED clause combined with SECURE for secure login validation.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051* Order entry with required fields SCREEN SECTION. 01 ORDER-ENTRY-SCREEN. 05 LINE 1 COLUMN 1 VALUE "ORDER ENTRY FORM". 05 LINE 3 COLUMN 10 VALUE "Order Number:". 05 LINE 3 COLUMN 25 PIC 9(8) TO ORDER-NUMBER REQUIRED. 05 LINE 5 COLUMN 10 VALUE "Customer ID:". 05 LINE 5 COLUMN 25 PIC 9(6) TO CUSTOMER-ID REQUIRED. 05 LINE 7 COLUMN 10 VALUE "Product Code:". 05 LINE 7 COLUMN 25 PIC X(10) TO PRODUCT-CODE REQUIRED. 05 LINE 9 COLUMN 10 VALUE "Quantity:". 05 LINE 9 COLUMN 25 PIC 9(4) TO QUANTITY REQUIRED. 05 LINE 11 COLUMN 10 VALUE "Unit Price:". 05 LINE 11 COLUMN 25 PIC 9(5)V99 TO UNIT-PRICE REQUIRED. 05 LINE 13 COLUMN 10 VALUE "Order Date:". 05 LINE 13 COLUMN 25 PIC 9(8) TO ORDER-DATE REQUIRED. 05 LINE 15 COLUMN 10 VALUE "Press ENTER to save order". WORKING-STORAGE SECTION. 01 ORDER-DATA. 05 ORDER-NUMBER PIC 9(8). 05 CUSTOMER-ID PIC 9(6). 05 PRODUCT-CODE PIC X(10). 05 QUANTITY PIC 9(4). 05 UNIT-PRICE PIC 9(5)V99. 05 ORDER-DATE PIC 9(8). PROCEDURE DIVISION. PROCESS-ORDER. PERFORM DISPLAY-ORDER-FORM PERFORM VALIDATE-ORDER-DATA PERFORM SAVE-ORDER STOP RUN. DISPLAY-ORDER-FORM. DISPLAY ORDER-ENTRY-SCREEN ACCEPT ORDER-ENTRY-SCREEN. VALIDATE-ORDER-DATA. * Additional validation logic here IF QUANTITY > 0 AND UNIT-PRICE > 0 DISPLAY "Order data valid!" AT LINE 17 COLUMN 10 ELSE DISPLAY "Invalid order data!" AT LINE 17 COLUMN 10 END-IF.
REQUIRED clause ensures all essential order information is captured.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354* Employee data entry with conditional required fields SCREEN SECTION. 01 EMPLOYEE-SCREEN. 05 LINE 1 COLUMN 1 VALUE "EMPLOYEE DATA ENTRY". 05 LINE 3 COLUMN 10 VALUE "Employee ID:". 05 LINE 3 COLUMN 25 PIC 9(6) TO EMPLOYEE-ID REQUIRED. 05 LINE 5 COLUMN 10 VALUE "First Name:". 05 LINE 5 COLUMN 25 PIC X(20) TO FIRST-NAME REQUIRED. 05 LINE 7 COLUMN 10 VALUE "Last Name:". 05 LINE 7 COLUMN 25 PIC X(20) TO LAST-NAME REQUIRED. 05 LINE 9 COLUMN 10 VALUE "Department:". 05 LINE 9 COLUMN 25 PIC X(15) TO DEPARTMENT REQUIRED. 05 LINE 11 COLUMN 10 VALUE "Manager ID:". 05 LINE 11 COLUMN 25 PIC 9(6) TO MANAGER-ID. 05 LINE 13 COLUMN 10 VALUE "Salary:". 05 LINE 13 COLUMN 25 PIC 9(7)V99 TO SALARY REQUIRED. 05 LINE 15 COLUMN 10 VALUE "Hire Date:". 05 LINE 15 COLUMN 25 PIC 9(8) TO HIRE-DATE REQUIRED. 05 LINE 17 COLUMN 10 VALUE "Press ENTER to save employee". WORKING-STORAGE SECTION. 01 EMPLOYEE-INFO. 05 EMPLOYEE-ID PIC 9(6). 05 FIRST-NAME PIC X(20). 05 LAST-NAME PIC X(20). 05 DEPARTMENT PIC X(15). 05 MANAGER-ID PIC 9(6). 05 SALARY PIC 9(7)V99. 05 HIRE-DATE PIC 9(8). PROCEDURE DIVISION. EMPLOYEE-ENTRY. PERFORM DISPLAY-EMPLOYEE-FORM PERFORM VALIDATE-EMPLOYEE-DATA PERFORM SAVE-EMPLOYEE STOP RUN. DISPLAY-EMPLOYEE-FORM. DISPLAY EMPLOYEE-SCREEN ACCEPT EMPLOYEE-SCREEN. VALIDATE-EMPLOYEE-DATA. * Validation logic here IF EMPLOYEE-ID > 0 AND SALARY > 0 DISPLAY "Employee data valid!" AT LINE 19 COLUMN 10 ELSE DISPLAY "Invalid employee data!" AT LINE 19 COLUMN 10 END-IF.
REQUIRED clause ensures essential employee information is provided.
Following these best practices ensures effective use of the REQUIRED clause in COBOL applications.
Pitfall | Problem | Solution |
---|---|---|
Too many required fields | Poor user experience | Only require essential fields |
No visual indicators | User confusion | Use HIGHLIGHT or asterisks |
Poor error messages | User frustration | Provide clear feedback |
Inconsistent validation | Data integrity issues | Apply consistent rules |
No escape mechanism | User trapped in form | Provide cancel options |
Scenario | Use REQUIRED | Use Other Methods |
---|---|---|
Mandatory input fields | Yes | No |
Data validation | Yes | No |
Form completion | Yes | No |
Complex validation logic | No | Yes (procedures) |
Data transformation | No | Yes (data manipulation) |
Usage | Syntax | Purpose |
---|---|---|
Basic required field | REQUIRED | Enforce mandatory input |
With visual indicator | REQUIRED HIGHLIGHT | Highlight required fields |
With auto-skip | REQUIRED AUTO-SKIP | Skip to next field when filled |
With security | REQUIRED SECURE | Hide input characters |
Multiple attributes | REQUIRED HIGHLIGHT AUTO-SKIP | Combine multiple features |
1. What is the primary purpose of the REQUIRED clause in COBOL?
2. In which context is the REQUIRED clause most commonly used?
3. What happens when a REQUIRED clause is executed?
4. What is the relationship between REQUIRED and ACCEPT statements?
5. Which of the following is a valid REQUIRED clause usage?