Job scheduling

Running something later, or on a cadence, without keeping a process alive to do it — a nightly job, a retry in an hour, a report on the first of the month — and knowing afterwards whether it ran.

Overview

InBTP/BAIPassessed
SAP SHIPS

The Job Scheduling service calls an application's endpoint on a schedule or once at a time, keeps a log of every run, and offers a free and a standard plan. The application supplies the endpoint and nothing else.

THE COMMUNITY ADDS

No community artifact is documented here.

InCAPassessed
SAP SHIPS
Node.js →

@sap/cds Schedules a service's events as tasks with srv.schedule(): once, after a delay, or repeatedly on an interval or a cron expression, persisted in the event queue and cancelled with srv.unschedule().

Not covered: Tasks run in the application's own processes from its own database, so a stopped application runs none; the SAP Job Scheduling service is the one that calls in from outside. .every() counts from the end of the last successful run, not from a fixed clock.

THE COMMUNITY ADDS

@cap-js-community/event-queue declares periodic events in its own YAML configuration and spreads them across application instances over Redis.

InABAPassessed

On the ABAP door the system schedules the job itself: abap-platform-application-jobs starts one from a RAP action and shows its status and application log in a Fiori elements app.

SAP SHIPS

Application Jobs: an ABAP report or class registered as a job catalog entry gets a selection screen, a job template refers to the entry, and the job runs in the background from the Application Jobs app or from code through the released API CL_APJ_RT_API.

Not covered: A RAP business object can call the scheduling API only in the additional save phase, so the job name and count are not known during the interaction phase. Code running as an application job cannot be stepped through in the debugger; SAP's sample runs the same class interactively for that.

The one repository here is an SAP sample. It demonstrates the framework and does not count as a provider, so core-only reads what the ABAP platform ships.

THE COMMUNITY ADDS

No community artifact is documented here.

Artifacts3

Group by3 of 3 artifacts
ArtifactSignals
CDS plugins1
@cap-js-community/event-queueTransactional processing of asynchronous and periodic CAP events
Signals
Functional boundary
Packages1
@sap/cdsCAP Node.js runtime
Signals
none
Services1
SAP Job Scheduling serviceCalls an application endpoint on a schedule and logs each run
Signals
none

Content7

Group by
Piece, what it offers
Scheduling a Background Job for the BDC Session Method Using RSBDCSUB
SAP Community, Saikrishna_reddy, Blog
Automate Recurring Data Updates in SAP HANA Cloud
SAP Community, Joni, Blog
How to Create an Application Job (APJ) in SAP S/4HANA ABAP — With Single Values & Select Options
SAP Community, PM_iiits, Blog
Show 4 more
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Spec
SAP Community, DenisDuev, Blog
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.js
SAP Community, DenisDuev, Blog
SAP S/4HANA Cloud: Scheduling Background Jobs Using Application Job Templates
SAP Community, TalluriSudheerKumar, Blog
SAP BTP Cloud foundry Job Scheduling for CAP based project
SAP Community, sunojmichael1, Blog
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Spec
SAP Community, DenisDuev, Blog
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.js
SAP Community, DenisDuev, Blog

Seen working1

ArtifactSignals
Samples1
SAP-samples/abap-platform-application-jobsRAP sample scheduling a class as a background application job
none

Details

What changed — and what it makes stale2
CAP Java 5.0.0, CAP, Java

CAP Java gained the scheduling API in the June 2026 release, which also brought @sap/cds 10: Schedule.create() with .after(), .every() and .cron(), and named tasks that can be cancelled. In both runtimes a named task runs once when the application is scaled horizontally.

Makes stale:

Advice that CAP Java has no scheduling of its own.

@sap/cds 9.9.0, CAP, Node.js

Before this, the Node.js scheduling API that arrived as alpha in the May 2025 release offered .after() and .every() with a delay or an interval. 9.9.0 added cron expressions to .every(), and srv.schedule.task() and srv.unschedule.task() to create and remove singleton tasks.

Makes stale:

Advice that CAP's own scheduling takes intervals only, and that a cron cadence needs a plugin or an external scheduler.

Coverage
statecore only, BTP/BAIP
assessed
state in CAPcore and community, assessed
state in ABAPcore only, assessed
also inCAP, ABAP
For your agent
Ref
capability:job-scheduling
JSON
/capabilities/job-scheduling.json
MCP
Connecting an agent