Broadcom
CA-7 Workload Automation → Apache Airflow
Migrate Broadcom CA-7 job streams, triggers, and schedules to Apache Airflow DAGs.
CA-7 (now Broadcom Workload Automation CA-7) is a mainframe-heritage scheduler with a strong JCL and batch lineage. Its job networks, triggers, and requirement lists define workload dependencies that span decades of enterprise batch history. BatchFoundry translates CA-7 job networks and schedule definitions into Airflow DAGs, handling the nuances of mainframe-era scheduling patterns.
Concept Mapping
JobTask / Operator
Job Network (JNTWK)DAG
Requirement (RQ)Upstream task dependency
Trigger (TRGJOB)ExternalTaskSensor / TriggerDagRunOperator
Schedule (SCHD)schedule_interval / timetable
Due-out timeexecution_timeout / SLA
CPU ID / stationAirflow worker queue
ARF (alert)on_failure_callback / SLA miss callback
User variable (USERJOB)Airflow Variable / Param
PROSE documentationDAG / task doc_md
The Hard Parts We Handle
- Extracting job network definitions from CA-7 database
- Mapping CA-7 requirement lists to Airflow dependencies
- Trigger job chains → ExternalTaskSensor
- CA-7 calendar and workday schedule translation
- Mainframe JCL steps embedded in CA-7 jobs
- Due-out SLA mapping to Airflow SLA misses
CA-7 job network to DAG
Before
/* CA-7 Job Network (simplified) */ JOB NAME=EXTRACT SCHD=DAILY-WD JCLLIB=PROD.JCL(EXTRACTP) JOB NAME=LOAD SCHD=DAILY-WD JCLLIB=PROD.JCL(LOADP) RQ=EXTRACT,RC=0
After (Airflow)
# Apache Airflow DAG
from airflow.decorators import dag
from airflow.operators.bash import BashOperator
from pendulum import datetime
@dag(schedule="0 1 * * 1-5", start_date=datetime(2025,1,1), catchup=False)
def daily_etl():
extract = BashOperator(task_id="extract", bash_command="/opt/replatformed/extractp.sh")
load = BashOperator(task_id="load", bash_command="/opt/replatformed/loadp.sh")
extract >> load
daily_etl()Ready to migrate from CA-7 Workload Automation?
Talk to a BatchFoundry engineer about your workload estate.
Talk to an Engineer