The OFF
keyword in COBOL is used in various contexts to indicate a disabled, inactive, or false state. It's commonly used with switches, debugging controls, special names definitions, and conditional statements. The OFF keyword provides a standard way to represent the negative or inactive state in boolean and control operations.
Setting switches to inactive state
Disabling debugging features
Defining switch states and condition names
Representing false or inactive conditions
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. UPSI-0 ON STATUS IS DEBUG-MODE OFF STATUS IS PRODUCTION-MODE UPSI-1 ON STATUS IS TRACE-ENABLED OFF STATUS IS TRACE-DISABLED UPSI-2 ON STATUS IS VERBOSE-OUTPUT OFF STATUS IS QUIET-OUTPUT UPSI-3 ON STATUS IS VALIDATION-STRICT OFF STATUS IS VALIDATION-LENIENT. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-PROCESSING-FLAGS. 05 WS-DEBUG-FLAG PIC X VALUE 'N'. 05 WS-TRACE-FLAG PIC X VALUE 'N'. 05 WS-OUTPUT-FLAG PIC X VALUE 'N'. PROCEDURE DIVISION. CHECK-SYSTEM-SWITCHES. IF DEBUG-MODE MOVE 'Y' TO WS-DEBUG-FLAG DISPLAY "DEBUG MODE ENABLED" ELSE IF PRODUCTION-MODE MOVE 'N' TO WS-DEBUG-FLAG DISPLAY "PRODUCTION MODE ACTIVE" END-IF. IF TRACE-ENABLED MOVE 'Y' TO WS-TRACE-FLAG DISPLAY "TRACING ENABLED" ELSE IF TRACE-DISABLED MOVE 'N' TO WS-TRACE-FLAG DISPLAY "TRACING DISABLED" END-IF.
Using OFF status in SPECIAL-NAMES for switch control.
WORKING-STORAGE SECTION. 01 WS-APPLICATION-SWITCHES. 05 WS-AUTO-COMMIT PIC X VALUE 'Y'. 88 AUTO-COMMIT-ON VALUE 'Y'. 88 AUTO-COMMIT-OFF VALUE 'N'. 05 WS-ERROR-LOGGING PIC X VALUE 'Y'. 88 ERROR-LOG-ON VALUE 'Y'. 88 ERROR-LOG-OFF VALUE 'N'. 05 WS-BACKUP-MODE PIC X VALUE 'N'. 88 BACKUP-ON VALUE 'Y'. 88 BACKUP-OFF VALUE 'N'. PROCEDURE DIVISION. CONFIGURE-APPLICATION. *> Turn OFF auto-commit for batch processing SET AUTO-COMMIT-OFF TO TRUE. *> Turn OFF error logging for performance SET ERROR-LOG-OFF TO TRUE. *> Keep backup OFF for test environment SET BACKUP-OFF TO TRUE. DISPLAY "APPLICATION CONFIGURATION:" IF AUTO-COMMIT-OFF DISPLAY " AUTO-COMMIT: OFF" END-IF. IF ERROR-LOG-OFF DISPLAY " ERROR LOGGING: OFF" END-IF. IF BACKUP-OFF DISPLAY " BACKUP MODE: OFF" END-IF.
Setting application features to OFF state.
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-PC WITH DEBUGGING MODE. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-DEBUG-CONTROLS. 05 WS-DEBUG-LEVEL PIC 9 VALUE 0. 88 DEBUG-OFF VALUE 0. 88 DEBUG-BASIC VALUE 1. 88 DEBUG-DETAILED VALUE 2. 88 DEBUG-VERBOSE VALUE 3. PROCEDURE DIVISION. MAIN-PROCESSING. *> Check if debugging is OFF IF DEBUG-OFF DISPLAY "DEBUGGING IS OFF - PRODUCTION MODE" PERFORM PRODUCTION-PROCESSING ELSE DISPLAY "DEBUG LEVEL: " WS-DEBUG-LEVEL PERFORM DEBUG-PROCESSING END-IF. PRODUCTION-PROCESSING. D DISPLAY "DEBUG: This line only executes when debugging is ON". DISPLAY "EXECUTING PRODUCTION LOGIC" PERFORM PROCESS-TRANSACTIONS. DEBUG-PROCESSING. DISPLAY "DEBUG MODE ACTIVE" IF DEBUG-BASIC DISPLAY " BASIC DEBUGGING ENABLED" ELSE IF DEBUG-DETAILED DISPLAY " DETAILED DEBUGGING ENABLED" ELSE IF DEBUG-VERBOSE DISPLAY " VERBOSE DEBUGGING ENABLED" END-IF.
Controlling debug features with OFF status.
DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-FEATURE-FLAGS. 05 WS-NEW-ALGORITHM PIC X VALUE 'N'. 88 NEW-ALGO-ON VALUE 'Y'. 88 NEW-ALGO-OFF VALUE 'N'. 05 WS-ADVANCED-VALIDATION PIC X VALUE 'N'. 88 ADV-VALID-ON VALUE 'Y'. 88 ADV-VALID-OFF VALUE 'N'. 05 WS-PERFORMANCE-MODE PIC X VALUE 'Y'. 88 PERF-MODE-ON VALUE 'Y'. 88 PERF-MODE-OFF VALUE 'N'. PROCEDURE DIVISION. PROCESS-CUSTOMER-DATA. *> Use different processing based on feature flags IF NEW-ALGO-OFF DISPLAY "USING LEGACY ALGORITHM" PERFORM LEGACY-PROCESSING ELSE DISPLAY "USING NEW ALGORITHM" PERFORM ENHANCED-PROCESSING END-IF. *> Skip advanced validation if OFF IF ADV-VALID-OFF DISPLAY "ADVANCED VALIDATION: OFF" PERFORM BASIC-VALIDATION ELSE DISPLAY "ADVANCED VALIDATION: ON" PERFORM COMPREHENSIVE-VALIDATION END-IF. *> Performance mode affects logging IF PERF-MODE-ON *> Minimal logging when performance mode is ON DISPLAY "PERFORMANCE MODE: ON - MINIMAL LOGGING" ELSE *> Full logging when performance mode is OFF DISPLAY "PERFORMANCE MODE: OFF - FULL LOGGING" PERFORM DETAILED-LOGGING END-IF.
Using OFF state for feature toggles and conditional processing.
01 WS-SYSTEM-STATUS. 05 WS-MAINTENANCE-MODE PIC X VALUE 'N'. 88 MAINTENANCE-ON VALUE 'Y'. 88 MAINTENANCE-OFF VALUE 'N'. 05 WS-ONLINE-PROCESSING PIC X VALUE 'Y'. 88 ONLINE-ON VALUE 'Y'. 88 ONLINE-OFF VALUE 'N'. 05 WS-BATCH-ALLOWED PIC X VALUE 'Y'. 88 BATCH-ON VALUE 'Y'. 88 BATCH-OFF VALUE 'N'. PROCEDURE DIVISION. CHECK-SYSTEM-AVAILABILITY. *> Check if system is in maintenance mode IF MAINTENANCE-ON DISPLAY "SYSTEM IN MAINTENANCE MODE" SET ONLINE-OFF TO TRUE SET BATCH-OFF TO TRUE PERFORM MAINTENANCE-PROCEDURES EXIT PARAGRAPH END-IF. *> Normal operations when maintenance is OFF IF MAINTENANCE-OFF DISPLAY "SYSTEM AVAILABLE FOR PROCESSING" IF ONLINE-OFF DISPLAY "ONLINE PROCESSING: OFF" DISPLAY "SYSTEM RUNNING IN BATCH-ONLY MODE" ELSE DISPLAY "ONLINE PROCESSING: ON" END-IF IF BATCH-OFF DISPLAY "BATCH PROCESSING: OFF" DISPLAY "ONLINE-ONLY MODE ACTIVE" ELSE DISPLAY "BATCH PROCESSING: ON" END-IF END-IF. SYSTEM-SHUTDOWN-SEQUENCE. DISPLAY "INITIATING SYSTEM SHUTDOWN" *> Turn OFF online processing first SET ONLINE-OFF TO TRUE DISPLAY "ONLINE PROCESSING: OFF" PERFORM COMPLETE-ONLINE-TRANSACTIONS *> Turn OFF batch processing SET BATCH-OFF TO TRUE DISPLAY "BATCH PROCESSING: OFF" PERFORM COMPLETE-BATCH-JOBS *> Enable maintenance mode SET MAINTENANCE-ON TO TRUE DISPLAY "MAINTENANCE MODE: ON" DISPLAY "SYSTEM READY FOR MAINTENANCE".
Managing system states with OFF conditions.
01 WS-FILE-CONTROLS. 05 WS-AUTO-BACKUP PIC X VALUE 'Y'. 88 BACKUP-ON VALUE 'Y'. 88 BACKUP-OFF VALUE 'N'. 05 WS-COMPRESSION PIC X VALUE 'N'. 88 COMPRESS-ON VALUE 'Y'. 88 COMPRESS-OFF VALUE 'N'. 05 WS-ENCRYPTION PIC X VALUE 'Y'. 88 ENCRYPT-ON VALUE 'Y'. 88 ENCRYPT-OFF VALUE 'N'. PROCEDURE DIVISION. SETUP-FILE-PROCESSING. DISPLAY "FILE PROCESSING CONFIGURATION:" IF BACKUP-OFF DISPLAY " AUTOMATIC BACKUP: OFF" DISPLAY " Manual backup required" ELSE DISPLAY " AUTOMATIC BACKUP: ON" END-IF. IF COMPRESS-OFF DISPLAY " COMPRESSION: OFF" DISPLAY " Files will not be compressed" ELSE DISPLAY " COMPRESSION: ON" END-IF. IF ENCRYPT-OFF DISPLAY " ENCRYPTION: OFF" DISPLAY " WARNING: Files will be stored unencrypted" ELSE DISPLAY " ENCRYPTION: ON" END-IF. PROCESS-FILE-WITH-OPTIONS. OPEN OUTPUT DATA-FILE. PERFORM WRITE-FILE-DATA. *> Post-processing based on flags IF BACKUP-ON PERFORM CREATE-BACKUP-COPY END-IF. IF COMPRESS-ON PERFORM COMPRESS-FILE END-IF. IF ENCRYPT-ON PERFORM ENCRYPT-FILE END-IF. CLOSE DATA-FILE.
File processing options using OFF states.
01 WS-LOGGING-CONTROLS. 05 WS-ERROR-LOGGING PIC X VALUE 'Y'. 88 ERROR-LOG-ON VALUE 'Y'. 88 ERROR-LOG-OFF VALUE 'N'. 05 WS-DEBUG-LOGGING PIC X VALUE 'N'. 88 DEBUG-LOG-ON VALUE 'Y'. 88 DEBUG-LOG-OFF VALUE 'N'. 05 WS-AUDIT-LOGGING PIC X VALUE 'Y'. 88 AUDIT-LOG-ON VALUE 'Y'. 88 AUDIT-LOG-OFF VALUE 'N'. 05 WS-TRACE-LOGGING PIC X VALUE 'N'. 88 TRACE-LOG-ON VALUE 'Y'. 88 TRACE-LOG-OFF VALUE 'N'. PROCEDURE DIVISION. LOG-MESSAGE. *> Error logging (usually always ON in production) IF ERROR-LOG-ON PERFORM WRITE-ERROR-LOG END-IF. *> Debug logging (usually OFF in production) IF DEBUG-LOG-OFF *> Skip debug logging for performance CONTINUE ELSE PERFORM WRITE-DEBUG-LOG END-IF. *> Audit logging (required for compliance) IF AUDIT-LOG-OFF DISPLAY "WARNING: AUDIT LOGGING IS OFF" DISPLAY "THIS MAY VIOLATE COMPLIANCE REQUIREMENTS" ELSE PERFORM WRITE-AUDIT-LOG END-IF. *> Trace logging (very verbose, usually OFF) IF TRACE-LOG-OFF CONTINUE ELSE PERFORM WRITE-TRACE-LOG END-IF. CONFIGURE-PRODUCTION-LOGGING. *> Production logging configuration SET ERROR-LOG-ON TO TRUE *> Always log errors SET DEBUG-LOG-OFF TO TRUE *> Turn OFF debug for performance SET AUDIT-LOG-ON TO TRUE *> Required for compliance SET TRACE-LOG-OFF TO TRUE *> Turn OFF trace for performance DISPLAY "PRODUCTION LOGGING CONFIGURED:" DISPLAY " ERROR LOGGING: ON" DISPLAY " DEBUG LOGGING: OFF" DISPLAY " AUDIT LOGGING: ON" DISPLAY " TRACE LOGGING: OFF".
Controlling different logging levels with OFF settings.
01 WS-PERFORMANCE-FLAGS. 05 WS-DETAILED-VALIDATION PIC X VALUE 'N'. 88 DETAIL-VALID-ON VALUE 'Y'. 88 DETAIL-VALID-OFF VALUE 'N'. 05 WS-STATISTICS-CALC PIC X VALUE 'N'. 88 STATS-CALC-ON VALUE 'Y'. 88 STATS-CALC-OFF VALUE 'N'. 05 WS-REAL-TIME-UPDATES PIC X VALUE 'N'. 88 REALTIME-ON VALUE 'Y'. 88 REALTIME-OFF VALUE 'N'. PROCEDURE DIVISION. PROCESS-TRANSACTION-FAST. *> Core transaction processing (always done) PERFORM VALIDATE-BASIC-TRANSACTION. PERFORM UPDATE-ACCOUNT-BALANCE. *> Optional expensive operations IF DETAIL-VALID-OFF *> Skip detailed validation for speed DISPLAY "DETAILED VALIDATION: OFF (FAST MODE)" ELSE PERFORM DETAILED-TRANSACTION-VALIDATION END-IF. IF STATS-CALC-OFF *> Skip statistics calculation for speed DISPLAY "STATISTICS CALCULATION: OFF (FAST MODE)" ELSE PERFORM CALCULATE-TRANSACTION-STATISTICS END-IF. IF REALTIME-OFF *> Batch update mode for better performance DISPLAY "REAL-TIME UPDATES: OFF (BATCH MODE)" PERFORM QUEUE-FOR-BATCH-UPDATE ELSE PERFORM IMMEDIATE-DATABASE-UPDATE END-IF. ENABLE-FAST-MODE. *> Configure for maximum performance SET DETAIL-VALID-OFF TO TRUE SET STATS-CALC-OFF TO TRUE SET REALTIME-OFF TO TRUE DISPLAY "FAST MODE ENABLED:" DISPLAY " DETAILED VALIDATION: OFF" DISPLAY " STATISTICS CALCULATION: OFF" DISPLAY " REAL-TIME UPDATES: OFF" DISPLAY " PERFORMANCE OPTIMIZED FOR HIGH VOLUME".
Using OFF settings for performance optimization.
01 WS-ENVIRONMENT-CONFIG. 05 WS-ENVIRONMENT PIC X(10) VALUE "PRODUCTION". 05 WS-CONFIG-FLAGS. 10 WS-VERBOSE-MODE PIC X VALUE 'N'. 88 VERBOSE-ON VALUE 'Y'. 88 VERBOSE-OFF VALUE 'N'. 10 WS-TEST-MODE PIC X VALUE 'N'. 88 TEST-ON VALUE 'Y'. 88 TEST-OFF VALUE 'N'. 10 WS-MOCK-SERVICES PIC X VALUE 'N'. 88 MOCK-ON VALUE 'Y'. 88 MOCK-OFF VALUE 'N'. PROCEDURE DIVISION. CONFIGURE-BY-ENVIRONMENT. EVALUATE WS-ENVIRONMENT WHEN "DEVELOPMENT" SET VERBOSE-ON TO TRUE SET TEST-ON TO TRUE SET MOCK-ON TO TRUE WHEN "TESTING" SET VERBOSE-ON TO TRUE SET TEST-ON TO TRUE SET MOCK-OFF TO TRUE WHEN "STAGING" SET VERBOSE-OFF TO TRUE SET TEST-OFF TO TRUE SET MOCK-OFF TO TRUE WHEN "PRODUCTION" SET VERBOSE-OFF TO TRUE SET TEST-OFF TO TRUE SET MOCK-OFF TO TRUE WHEN OTHER DISPLAY "UNKNOWN ENVIRONMENT: " WS-ENVIRONMENT DISPLAY "USING SAFE DEFAULTS" SET VERBOSE-OFF TO TRUE SET TEST-OFF TO TRUE SET MOCK-OFF TO TRUE END-EVALUATE. DISPLAY "ENVIRONMENT: " WS-ENVIRONMENT IF VERBOSE-OFF DISPLAY " VERBOSE MODE: OFF" END-IF IF TEST-OFF DISPLAY " TEST MODE: OFF" END-IF IF MOCK-OFF DISPLAY " MOCK SERVICES: OFF" END-IF.
Environment-specific configuration using OFF states.
Pattern | Use Case | Example |
---|---|---|
Feature Toggle | Enable/disable functionality | 88 FEATURE-OFF VALUE 'N' |
Debug Control | Control debugging output | 88 DEBUG-OFF VALUE '0' |
Performance Mode | Optimize for speed | 88 VALIDATION-OFF VALUE 'N' |
System State | Control system availability | 88 MAINTENANCE-OFF VALUE 'N' |
Complementary keyword for active states
Environment section for switch definitions
88-level items for boolean logic
Setting condition names to ON or OFF