Fortra

Fortra Automate Schedule → Apache Airflow

Fortra Automate Schedule (formerly Skybot) was the cross-platform answer to mainframe-class scheduling. BatchFoundry now makes Airflow the natural next step — without losing the agent footprint or the job equivalence you depend on.

Fortra Automate Schedule (formerly HelpSystems Skybot Scheduler) is a cross-platform workload automation product with agents spanning AIX, Solaris, Windows, Linux, and IBM i. Customers running both JAMS and Automate Schedule under the Fortra umbrella often find they can consolidate to one orchestrator; Airflow is the natural landing zone. BatchFoundry's conversion programme maps reactive triggers, cross-platform agents, and Event Handler logic to Airflow patterns with zero loss of job equivalence.

Concept Mapping

Scheduling groupDAG
JobTask / Operator
Agent (AIX, Linux, Win)Airflow Connection (SSH / WinRM)
IBM i agentSSHOperator (IBM i over SSH)
File arrival triggerFileSensor
Prerequisite job triggerExternalTaskSensor
Custom event triggerDataset-driven schedule
Last Successful Run refXCom lookup pattern
Event Handler (notify)on_failure_callback / on_success_callback
Event Handler (follow-on)TriggerDagRunOperator
Retry policyretries + retry_delay in default_args

The Hard Parts We Handle

  • Reactive triggers (file, prerequisite, custom event) mapped to Sensor, Dataset, or webhook-wake patterns — chosen to avoid sensor-pool exhaustion
  • Last Successful Run reference preserved as an Airflow XCom lookup, enabling rerun-from-checkpoint
  • Cross-platform agents (AIX, Solaris, Windows, Linux, IBM i) mapped to Airflow Connections with per-agent compatibility report
  • Event Handlers (notify + follow-on) become on_failure_callback, on_success_callback, and TriggerRule policies
  • Pilot 5% of workload for 30-day side-by-side run before expanding to 100% over 90 days
  • Customers with both JAMS and Automate Schedule consolidated to a single Airflow deployment

Automate Schedule reactive job to DAG

Before

# Automate Schedule reactive job
JOB:    INVOICE_BATCH
AGENT:  AIX_PROD_01
TRIGGER: FILE_ARRIVED /landing/invoices/*.csv
CMD:    /apps/billing/process_invoices.ksh
RESTART_FROM: LAST_SUCCESSFUL_STEP

After (Airflow)

# Airflow DAG: invoice_batch
from airflow.decorators import dag
from airflow.sensors.filesystem import FileSensor
from airflow.providers.ssh.operators.ssh import SSHOperator
from pendulum import datetime

@dag(schedule=None, start_date=datetime(2025, 1, 1), catchup=False)
def invoice_batch():
    wait_for_file = FileSensor(
        task_id="wait_for_invoices",
        fs_conn_id="aix_prod_01",
        filepath="/landing/invoices/*.csv",
        poke_interval=60,
        timeout=3600,
    )
    process = SSHOperator(
        task_id="process_invoices",
        ssh_conn_id="aix_prod_01",
        command="/apps/billing/process_invoices.ksh",
    )
    wait_for_file >> process

invoice_batch()

Ready to migrate from Fortra Automate Schedule?

Talk to a BatchFoundry engineer about your workload estate.

Talk to an Engineer

Related Migrations