MainframeMaster

COBOL Tutorial

COBOL REQUIRED Clause - Quick Reference

Progress0 of 0 lessons

Overview

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.

Purpose and Usage

  • Input validation - Ensure mandatory fields are filled
  • Data completeness - Prevent empty or null values
  • User guidance - Guide users through required data entry
  • Error prevention - Reduce data entry errors
  • Business rules - Enforce application-specific requirements

REQUIRED vs SECURE Concept

REQUIRED: [Input Validation] → [Must Be Filled]
SECURE: [Data Privacy] → [Hidden Input]
REQUIRED ensures completion, SECURE ensures privacy

REQUIRED clause enforces input validation for data completeness.

Syntax

The REQUIRED clause follows specific syntax patterns within screen definitions and ACCEPT statements.

Basic Syntax

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
* 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.

REQUIRED vs SECURE Comparison

AspectREQUIREDSECURE
PurposeInput validationData privacy
BehaviorPrevents empty fieldsHides input characters
UsageMandatory fieldsPassword fields
Visual effectValidation indicatorHidden characters
CombinationCan be combinedCan be combined

SCREEN SECTION Structure

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
29
* 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.

Practical Examples

These examples demonstrate how to use the REQUIRED clause effectively in different screen handling scenarios.

Customer Registration Form

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
IDENTIFICATION 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.

Login Screen with Security

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
29
30
31
32
33
* 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.

Order Entry Form

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
* 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.

Employee Data Entry

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
* 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.

Best Practices and Tips

Following these best practices ensures effective use of the REQUIRED clause in COBOL applications.

REQUIRED Best Practices

  • Use visual indicators - Combine with HIGHLIGHT or other visual cues
  • Provide clear labels - Make it obvious which fields are required
  • Implement error messages - Give helpful feedback when validation fails
  • Test user experience - Ensure the flow is intuitive
  • Combine with other attributes - Use AUTO-SKIP for better UX
  • Document requirements - Clearly document which fields are mandatory

Common Pitfalls to Avoid

PitfallProblemSolution
Too many required fieldsPoor user experienceOnly require essential fields
No visual indicatorsUser confusionUse HIGHLIGHT or asterisks
Poor error messagesUser frustrationProvide clear feedback
Inconsistent validationData integrity issuesApply consistent rules
No escape mechanismUser trapped in formProvide cancel options

Performance Considerations

  • Validation overhead - REQUIRED adds minimal processing overhead
  • User experience - Prevents incomplete data submission
  • Error handling - Reduces downstream processing errors
  • Data quality - Improves overall data integrity
  • Processing efficiency - Reduces need for error recovery

When to Use REQUIRED vs Other Methods

ScenarioUse REQUIREDUse Other Methods
Mandatory input fieldsYesNo
Data validationYesNo
Form completionYesNo
Complex validation logicNoYes (procedures)
Data transformationNoYes (data manipulation)

REQUIRED Clause Quick Reference

UsageSyntaxPurpose
Basic required fieldREQUIREDEnforce mandatory input
With visual indicatorREQUIRED HIGHLIGHTHighlight required fields
With auto-skipREQUIRED AUTO-SKIPSkip to next field when filled
With securityREQUIRED SECUREHide input characters
Multiple attributesREQUIRED HIGHLIGHT AUTO-SKIPCombine multiple features

Test Your Knowledge

1. What is the primary purpose of the REQUIRED clause in COBOL?

  • To create required files
  • To specify mandatory input fields in screen handling
  • To generate required reports
  • To create program documentation

2. In which context is the REQUIRED clause most commonly used?

  • FILE SECTION
  • SCREEN SECTION
  • WORKING-STORAGE SECTION
  • PROCEDURE DIVISION

3. What happens when a REQUIRED clause is executed?

  • A field is automatically filled
  • Input validation is enforced
  • A required file is created
  • Required data is processed

4. What is the relationship between REQUIRED and ACCEPT statements?

  • They are the same thing
  • REQUIRED controls validation, ACCEPT handles input
  • REQUIRED is faster than ACCEPT
  • They cannot be used together

5. Which of the following is a valid REQUIRED clause usage?

  • REQUIRED ON
  • REQUIRED OFF
  • REQUIRED FIELD
  • All of the above

Frequently Asked Questions