Fortra
Fortra ActiveBatch → Apache Airflow
Migrate Fortra ActiveBatch job plans, workflows, and triggers to Apache Airflow DAGs.
Fortra ActiveBatch is a hybrid workload automation platform covering on-prem and cloud workloads with a workflow-centric job plan model. Its rich trigger library, policy-based scheduling, and step dependencies translate well to Airflow. BatchFoundry extracts ActiveBatch job plans and converts them to Airflow DAGs, including cloud integration steps and file trigger conditions.
Concept Mapping
Job planDAG
Job / StepTask / Operator
Step dependencyTask dependency (>>)
Trigger (time / file / event)schedule_interval / Sensor
Policy (retry / alerting)default_args retries / callbacks
VariableAirflow Variable / Param
Execution queueAirflow worker queue
Condition (success/failure/skip)TriggerRule / BranchPythonOperator
Email notificationemail_on_failure / on_failure_callback
Cloud job step (AWS / Azure)Cloud provider operator
The Hard Parts We Handle
- ActiveBatch trigger library → Sensor mapping
- Policy inheritance across job plans
- Cloud step translation to AWS/GCP/Azure Airflow providers
- File trigger conditions → FileSensor / S3KeySensor
- Variable and parameter scoping
- ActiveBatch REST API extraction
ActiveBatch job plan to DAG
Before
/* ActiveBatch job plan (simplified) */
JobPlan: DAILY_ETL
Trigger: Schedule MON-FRI 01:00
Step: EXTRACT
Type: Script
Command: /opt/etl/extract.sh
Step: LOAD
Type: Script
Command: /opt/etl/load.sh
DependsOn: EXTRACT (Success)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/etl/extract.sh")
load = BashOperator(task_id="load", bash_command="/opt/etl/load.sh")
extract >> load
daily_etl()Ready to migrate from Fortra ActiveBatch?
Talk to a BatchFoundry engineer about your workload estate.
Talk to an Engineer