A sample z/OS banking application demonstrating modern mainframe development practices with COBOL, BMS, and IBM Dependency Based Build (DBB).
Bank of Z is a CICS-based banking application that showcases:
- COBOL Programs - Core banking business logic for account management, customer operations, and transactions
- BMS Maps - Screen definitions for CICS terminal interactions
- Copybooks - Shared data structures and definitions
- IBM DBB Integration - Modern build automation for z/OS applications
- Pipeline Simulation - Automated build and deployment workflows
The application provides typical banking operations:
- Account Management - Create, update, delete, and inquire on accounts
- Customer Management - Manage customer information and profiles
- Transaction Processing - Handle debits, credits, and fund transfers
- Menu Navigation - User-friendly CICS interface for banking operations
Bank-of-Z/
├── src/ # Application source code
│ └── base/
│ ├── cobol/ # COBOL programs
│ ├── bms/ # BMS map definitions
│ └── copy/ # Copybooks
├── .setup/ # Pipeline setup automation
│ ├── config.yaml # Environment configuration
│ ├── setup.sh # Setup script
│ ├── run_pipeline.sh # Pipeline execution script
│ ├── pipeline_simulation.sh # Pipeline simulation script
│ └── build/ # zBuilder framework
├── .vscode/
│ └── tasks.json # VS Code custom tasks
├── docs/
│ └── SETUP_GUIDE.md # Detailed setup instructions
└── dbb-app.yaml # DBB application configuration
Local Machine:
- Node.js and npm
- Zowe CLI:
npm install -g @zowe/cli - Zowe RSE API Plugin:
zowe plugins install @zowe/rse-api-for-zowe-cli - Configured Zowe profile with z/OS connection details
z/OS System:
- Git installed and available in PATH on USS
- CICS region for application deployment
- IBM DBB installed (typically at
/usr/lpp/dbb) - Appropriate permissions for USS directories and dataset creation
The easiest way to get started is using the built-in VS Code tasks:
-
Configure Your Environment
Edit
.setup/config.yamlwith your z/OS details:pipeline: workspace: /u/$USER/sandbox tmphlq: YOUR_HLQ
-
Run Setup Task
- Press
Cmd+Shift+P(macOS) orCtrl+Shift+P(Windows/Linux) - Type "Tasks: Run Task"
- Select "Setup Pipeline Environment"
This will:
- Create workspace directories on USS
- Clone IBM DBB repository
- Upload zBuilder framework
- Press
-
Run Pipeline Simulation
- Press
Cmd+Shift+P(macOS) orCtrl+Shift+P(Windows/Linux) - Type "Tasks: Run Task"
- Select "Run Pipeline Simulation"
- Enter git repository URL and branch when prompted
The pipeline will:
- Clone your application repository
- Build all COBOL programs and BMS maps
- Create load modules
- Generate build reports
- Press
- Setup Guide - Comprehensive setup instructions, troubleshooting, and customization
- Setup Directory README - Details on setup scripts and configuration
- Source Code README - Application source code structure
Located in src/base/cobol/:
- BNKMENU - Main menu program
- BNK1CAC, BNK1CCA, BNK1CCS - Account creation and management
- BNK1DAC, BNK1DCS - Account deletion
- BNK1UAC - Account updates
- BNK1TFN - Fund transfers
- CREACC, CRECUST - Create account/customer
- INQACC, INQCUST - Inquiry programs
- UPDACC, UPDCUST - Update programs
- DELACC, DELCUS - Delete programs
Located in src/base/bms/:
- BNK1MAI - Main menu map
- BNK1ACC - Account screen
- BNK1CAM, BNK1CCM, BNK1CDM - Account management maps
- BNK1UAM, BNK1DAM, BNK1DCM - Update/delete maps
- BNK1TFM - Transfer map
dbb-app.yaml- DBB application configuration with impact analysis patterns.setup/build/- zBuilder framework with language-specific build rules
- Make Changes - Edit COBOL programs, BMS maps, or copybooks
- Commit Changes - Push to your git repository
- Run Pipeline - Execute via VS Code task or command line
- Review Results - Check build output and load modules
- Deploy - Use generated artifacts for CICS deployment
The project uses IBM Dependency Based Build (DBB) with the zBuilder framework:
- Incremental Builds - Only changed programs are recompiled
- Impact Analysis - Automatically detects affected programs
- Dependency Management - Tracks copybook and BMS map dependencies
- Language Support - COBOL, BMS, and link cards
The pipeline simulation script uses these configurable variables:
PIPELINE_WORKSPACE- Build workspace directoryDBB_REPO- Path to DBB repositoryDBB_BUILD_PATH- Path to zBuilder frameworkDBB_BUILD- DBB build directoryTMPHLQ- Temporary dataset high-level qualifier
All values are pulled from .setup/config.yaml and passed as environment variables.
Dataset allocations are defined in .setup/build/languages/Languages.yaml:
variables:
- name: MACLIB
value: SYS1.MACLIB
- name: SCEELKED
value: CEE.SCEELKEDCommon issues and solutions:
- Zowe CLI not found - Install with
npm install -g @zowe/cli - Connection failed - Verify Zowe profile:
zowe zosmf check status - Git not available on z/OS - Contact system administrator to install git
- Permission denied - Check USS directory permissions and dataset access
See the Setup Guide for detailed troubleshooting steps.
This is a sample application for demonstration purposes. Feel free to:
- Fork the repository
- Customize for your environment
- Add new features or programs
- Share improvements
- IBM DBB Documentation
- IBM DBB GitHub Repository
- Zowe CLI Documentation
- COBOL Programming Guide
- CICS Documentation
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Getting Started: Follow the Setup Guide to configure your environment and run your first build.