SMA Technologies

SMA OpCon → Apache Airflow

OpCon dominates batch in mid-market banking and credit unions. BatchFoundry preserves the audit trail, role-based controls, and core-banking interfaces while moving the schedule plane to Apache Airflow.

SMA OpCon is deeply embedded in banking, credit union, and financial-services batch operations. Its Job Masters, named Frequencies, Self-Service buttons, and tight core-banking integrations represent years of institutional knowledge and audit history. A migration to Airflow must match OpCon's compliance posture — SOX-ready audit logs, role-based access, and a parallel-run period that spans at least one month-end and one year-end cycle. BatchFoundry has run this programme for banking clients and knows where the edge cases hide.

Concept Mapping

ScheduleDAG
Job MasterTaskGroup factory / reusable task template
Frequency (MONTHLY_END)Custom Airflow timetable
Self-Service buttonAirflow trigger_dag REST + thin React form
PrerequisiteUpstream task dependency (>>)
ThresholdAirflow Pool limit
Exit code mappingTriggerRule / on_failure_callback
Notification groupemail_on_failure + on_failure_callback
MAS (z/OS agent)Mainframe Rehost + SSHOperator
OpCon audit logExtended Airflow audit log (user, role, IP, DAG hash)

The Hard Parts We Handle

  • Job Masters with named Frequencies become Airflow Jinja-templated DAGs with shared timetables
  • Self-Service 'click to run' actions wrapped in a thin React form backed by Airflow trigger_dag REST API
  • SOX/audit-log extension: user, role, source IP, DAG version hash — matching what bank auditors expect from OpCon
  • MAS (Mainframe Agent for SMA) customers paired with Mainframe Rehost solution
  • Parallel run must cover a full month-end AND a full year-end cycle before decommission
  • Background user permissions and CISO sign-off on the audit-log compatibility report

OpCon Job Master to Airflow DAG

Before

# OpCon Job Master
JOB:    MONTH_END_GL
SCHED:  MONTHLY_LAST_BUS_DAY
AGENT:  CORE_BANKING_LINUX
CMD:    /opt/coreb/jobs/month_end_gl.sh
RESTART: ON_FAIL_FROM_LAST_OK

After (Airflow)

# Airflow DAG: month_end_gl
from airflow.decorators import dag
from airflow.providers.ssh.operators.ssh import SSHOperator
from pendulum import datetime

@dag(
    schedule="0 22 L * *",          # last calendar day; timetable handles business-day offset
    start_date=datetime(2025, 1, 1),
    catchup=False,
    default_args={"retries": 2},
)
def month_end_gl():
    run = SSHOperator(
        task_id="month_end_gl",
        ssh_conn_id="core_banking_linux",
        command="/opt/coreb/jobs/month_end_gl.sh",
    )

month_end_gl()

Ready to migrate from SMA OpCon?

Talk to a BatchFoundry engineer about your workload estate.

Talk to an Engineer

Related Migrations