Business logic in COBOL represents the core application logic that implements business rules, decision-making processes, and workflow control. It defines how the application processes data, makes decisions, and enforces business requirements throughout the program execution.
Business logic encompasses all the rules, calculations, validations, and decision-making processes that define how a COBOL application behaves. It separates business requirements from technical implementation details, making applications maintainable and adaptable to changing business needs.
Business rules define the constraints, calculations, and decision criteria that govern how the application processes data and makes decisions.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061IDENTIFICATION DIVISION. PROGRAM-ID. BUSINESS-RULES. DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-DATA. 05 CUSTOMER-ID PIC 9(6). 05 CUSTOMER-NAME PIC X(30). 05 ACCOUNT-BALANCE PIC 9(8)V99. 05 CREDIT-LIMIT PIC 9(8)V99. 05 CUSTOMER-TYPE PIC X(1). 88 PREMIUM-CUSTOMER VALUE 'P'. 88 STANDARD-CUSTOMER VALUE 'S'. 88 BASIC-CUSTOMER VALUE 'B'. 01 BUSINESS-RULES. 05 MINIMUM-BALANCE PIC 9(8)V99 VALUE 1000. 05 OVERDRAFT-FEE PIC 9(4)V99 VALUE 25.00. 05 INTEREST-RATE PIC 9(3)V9999 VALUE 0.0525. 05 SERVICE-FEE PIC 9(4)V99 VALUE 5.00. 01 CALCULATION-RESULTS. 05 NEW-BALANCE PIC 9(8)V99. 05 INTEREST-AMOUNT PIC 9(8)V99. 05 SERVICE-CHARGE PIC 9(8)V99. 05 TOTAL-FEES PIC 9(8)V99. PROCEDURE DIVISION. MAIN-BUSINESS-LOGIC. PERFORM INITIALIZE-BUSINESS-RULES PERFORM PROCESS-CUSTOMER-TRANSACTION PERFORM APPLY-BUSINESS-RULES PERFORM CALCULATE-FEES-AND-INTEREST PERFORM UPDATE-CUSTOMER-BALANCE STOP RUN. APPLY-BUSINESS-RULES. EVALUATE CUSTOMER-TYPE WHEN 'P' PERFORM PREMIUM-CUSTOMER-RULES WHEN 'S' PERFORM STANDARD-CUSTOMER-RULES WHEN 'B' PERFORM BASIC-CUSTOMER-RULES WHEN OTHER PERFORM DEFAULT-CUSTOMER-RULES END-EVALUATE. PREMIUM-CUSTOMER-RULES. MOVE 0.035 TO INTEREST-RATE MOVE 0 TO SERVICE-FEE MOVE 5000 TO MINIMUM-BALANCE. STANDARD-CUSTOMER-RULES. MOVE 0.045 TO INTEREST-RATE MOVE 2.50 TO SERVICE-FEE MOVE 2000 TO MINIMUM-BALANCE. BASIC-CUSTOMER-RULES. MOVE 0.0525 TO INTEREST-RATE MOVE 5.00 TO SERVICE-FEE MOVE 1000 TO MINIMUM-BALANCE.
Decision-making logic implements complex business decisions using conditional statements, decision tables, and rule-based processing.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667WORKING-STORAGE SECTION. 01 TRANSACTION-DATA. 05 TRANSACTION-TYPE PIC X(1). 88 DEPOSIT VALUE 'D'. 88 WITHDRAWAL VALUE 'W'. 88 TRANSFER VALUE 'T'. 88 PAYMENT VALUE 'P'. 05 TRANSACTION-AMOUNT PIC 9(8)V99. 05 TRANSACTION-DATE PIC X(10). 05 ACCOUNT-TYPE PIC X(1). 88 CHECKING VALUE 'C'. 88 SAVINGS VALUE 'S'. 88 BUSINESS VALUE 'B'. 01 DECISION-CRITERIA. 05 DAILY-LIMIT PIC 9(8)V99. 05 MONTHLY-LIMIT PIC 9(8)V99. 05 TRANSACTION-FEE PIC 9(4)V99. 05 APPROVAL-REQUIRED PIC X(1). 88 APPROVAL-NEEDED VALUE 'Y'. 88 NO-APPROVAL VALUE 'N'. PROCEDURE DIVISION. DECISION-MAKING-LOGIC. PERFORM EVALUATE-TRANSACTION-TYPE PERFORM CHECK-TRANSACTION-LIMITS PERFORM DETERMINE-APPROVAL-REQUIREMENT PERFORM APPLY-TRANSACTION-FEES PERFORM FINALIZE-TRANSACTION-DECISION. EVALUATE-TRANSACTION-TYPE. EVALUATE TRANSACTION-TYPE WHEN 'D' PERFORM PROCESS-DEPOSIT-LOGIC WHEN 'W' PERFORM PROCESS-WITHDRAWAL-LOGIC WHEN 'T' PERFORM PROCESS-TRANSFER-LOGIC WHEN 'P' PERFORM PROCESS-PAYMENT-LOGIC WHEN OTHER PERFORM INVALID-TRANSACTION-LOGIC END-EVALUATE. PROCESS-WITHDRAWAL-LOGIC. EVALUATE ACCOUNT-TYPE WHEN 'C' MOVE 1000 TO DAILY-LIMIT MOVE 10000 TO MONTHLY-LIMIT MOVE 2.50 TO TRANSACTION-FEE WHEN 'S' MOVE 500 TO DAILY-LIMIT MOVE 5000 TO MONTHLY-LIMIT MOVE 1.50 TO TRANSACTION-FEE WHEN 'B' MOVE 5000 TO DAILY-LIMIT MOVE 50000 TO MONTHLY-LIMIT MOVE 5.00 TO TRANSACTION-FEE END-EVALUATE. CHECK-TRANSACTION-LIMITS. IF TRANSACTION-AMOUNT > DAILY-LIMIT MOVE 'Y' TO APPROVAL-REQUIRED PERFORM LOG-HIGH-VALUE-TRANSACTION ELSE MOVE 'N' TO APPROVAL-REQUIRED END-IF.
Workflow control logic manages the sequence of business processes, ensuring proper execution order and handling of business scenarios.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566WORKING-STORAGE SECTION. 01 WORKFLOW-CONTROL. 05 CURRENT-STEP PIC 9(2). 05 TOTAL-STEPS PIC 9(2) VALUE 8. 05 WORKFLOW-STATUS PIC X(1). 88 WORKFLOW-ACTIVE VALUE 'A'. 88 WORKFLOW-PAUSED VALUE 'P'. 88 WORKFLOW-COMPLETE VALUE 'C'. 88 WORKFLOW-ERROR VALUE 'E'. 05 STEP-RESULT PIC X(1). 88 STEP-SUCCESS VALUE 'S'. 88 STEP-FAILURE VALUE 'F'. 88 STEP-SKIP VALUE 'K'. 01 BUSINESS-WORKFLOW. 05 STEP-1-NAME PIC X(20) VALUE 'VALIDATE-INPUT'. 05 STEP-2-NAME PIC X(20) VALUE 'CHECK-BALANCE'. 05 STEP-3-NAME PIC X(20) VALUE 'VERIFY-LIMITS'. 05 STEP-4-NAME PIC X(20) VALUE 'PROCESS-TRANSACTION'. 05 STEP-5-NAME PIC X(20) VALUE 'UPDATE-RECORDS'. 05 STEP-6-NAME PIC X(20) VALUE 'CALCULATE-FEES'. 05 STEP-7-NAME PIC X(20) VALUE 'GENERATE-RECEIPT'. 05 STEP-8-NAME PIC X(20) VALUE 'LOG-TRANSACTION'. PROCEDURE DIVISION. BUSINESS-WORKFLOW-CONTROL. MOVE 1 TO CURRENT-STEP MOVE 'A' TO WORKFLOW-STATUS PERFORM UNTIL WORKFLOW-STATUS = 'C' OR 'E' PERFORM EXECUTE-CURRENT-STEP PERFORM EVALUATE-STEP-RESULT PERFORM DETERMINE-NEXT-STEP END-PERFORM. EXECUTE-CURRENT-STEP. EVALUATE CURRENT-STEP WHEN 1 PERFORM VALIDATE-INPUT-DATA WHEN 2 PERFORM CHECK-ACCOUNT-BALANCE WHEN 3 PERFORM VERIFY-TRANSACTION-LIMITS WHEN 4 PERFORM PROCESS-TRANSACTION-LOGIC WHEN 5 PERFORM UPDATE-ACCOUNT-RECORDS WHEN 6 PERFORM CALCULATE-TRANSACTION-FEES WHEN 7 PERFORM GENERATE-TRANSACTION-RECEIPT WHEN 8 PERFORM LOG-TRANSACTION-DETAILS END-EVALUATE. EVALUATE-STEP-RESULT. IF STEP-RESULT = 'F' MOVE 'E' TO WORKFLOW-STATUS PERFORM HANDLE-WORKFLOW-ERROR ELSE IF CURRENT-STEP = TOTAL-STEPS MOVE 'C' TO WORKFLOW-STATUS ELSE ADD 1 TO CURRENT-STEP END-IF END-IF.
Validation logic ensures data integrity and enforces business constraints throughout the application processing.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566WORKING-STORAGE SECTION. 01 VALIDATION-RULES. 05 MIN-ACCOUNT-BALANCE PIC 9(8)V99 VALUE 0. 05 MAX-TRANSACTION-AMT PIC 9(8)V99 VALUE 999999.99. 05 VALID-CUSTOMER-TYPES PIC X(3) VALUE 'PSB'. 05 VALID-TRANSACTION-TYPES PIC X(4) VALUE 'DWTP'. 01 VALIDATION-RESULTS. 05 VALIDATION-ERRORS PIC 9(2) VALUE 0. 05 ERROR-MESSAGES OCCURS 10 TIMES. 10 ERROR-CODE PIC 9(3). 10 ERROR-MESSAGE PIC X(50). 01 VALIDATION-FLAGS. 05 INPUT-VALID PIC X(1). 88 INPUT-IS-VALID VALUE 'Y'. 88 INPUT-INVALID VALUE 'N'. 05 BALANCE-VALID PIC X(1). 05 AMOUNT-VALID PIC X(1). 05 TYPE-VALID PIC X(1). PROCEDURE DIVISION. VALIDATION-LOGIC. PERFORM VALIDATE-INPUT-DATA PERFORM VALIDATE-BUSINESS-RULES PERFORM VALIDATE-TRANSACTION-CONSTRAINTS PERFORM FINALIZE-VALIDATION. VALIDATE-INPUT-DATA. MOVE 'Y' TO INPUT-VALID MOVE 0 TO VALIDATION-ERRORS PERFORM VALIDATE-CUSTOMER-ID PERFORM VALIDATE-TRANSACTION-AMOUNT PERFORM VALIDATE-CUSTOMER-TYPE PERFORM VALIDATE-TRANSACTION-TYPE. VALIDATE-CUSTOMER-ID. IF CUSTOMER-ID = ZERO OR CUSTOMER-ID > 999999 ADD 1 TO VALIDATION-ERRORS MOVE 001 TO ERROR-CODE(VALIDATION-ERRORS) MOVE 'INVALID CUSTOMER ID' TO ERROR-MESSAGE(VALIDATION-ERRORS) MOVE 'N' TO INPUT-VALID END-IF. VALIDATE-TRANSACTION-AMOUNT. IF TRANSACTION-AMOUNT <= 0 OR TRANSACTION-AMOUNT > MAX-TRANSACTION-AMT ADD 1 TO VALIDATION-ERRORS MOVE 002 TO ERROR-CODE(VALIDATION-ERRORS) MOVE 'INVALID TRANSACTION AMOUNT' TO ERROR-MESSAGE(VALIDATION-ERRORS) MOVE 'N' TO INPUT-VALID END-IF. VALIDATE-BUSINESS-RULES. IF INPUT-VALID = 'Y' PERFORM CHECK-MINIMUM-BALANCE-RULE PERFORM CHECK-CREDIT-LIMIT-RULE PERFORM CHECK-TRANSACTION-LIMIT-RULE END-IF. CHECK-MINIMUM-BALANCE-RULE. IF ACCOUNT-BALANCE < MINIMUM-BALANCE ADD 1 TO VALIDATION-ERRORS MOVE 101 TO ERROR-CODE(VALIDATION-ERRORS) MOVE 'ACCOUNT BELOW MINIMUM BALANCE' TO ERROR-MESSAGE(VALIDATION-ERRORS) END-IF.
Implement business rules using structured conditional logic and rule tables for maintainable and flexible business logic.
Use state machines to manage complex business processes with multiple states and transitions.
Implement complex business calculations with proper error handling and validation.