SAP BTP Job Scheduling Service
Related Skills
- sap-dependency-security: Use for secure dependency and workflow hardening when your job scheduling microservices maintain npm/CLI dependency stacks
Table of Contents
Overview
SAP Job Scheduling Service is a runtime-agnostic platform service for defining and managing one-time and recurring jobs or Cloud Foundry tasks on SAP BTP. It operates across multiple hyperscalers (AWS, Azure, GCP) without requiring application modifications.
Documentation Source: https://help.sap.com/docs/job-scheduling
Last Verified: 2025-11-27
When to Use This Skill
Use this skill when:
- Setting up Job Scheduling Service on Cloud Foundry or Kyma runtime
- Creating and managing jobs via REST API or dashboard
- Configuring schedules using cron, date/time, or human-readable formats
- Implementing asynchronous job execution for long-running processes
- Securing action endpoints with OAuth 2.0 and XSUAA
- Integrating with SAP Cloud ALM or Alert Notification Service
- Developing multitenant applications with tenant-aware job scheduling
- Troubleshooting job execution issues and schedule failures
- Using the Node.js client library (@sap/jobs-client)
Quick Decision Tree
What Task?
Setup & Configuration
├─ Initial setup prerequisites → references/setup-guide.md
├─ Create service instance
│ ├─ BTP Cockpit → references/setup-guide.md#cockpit
│ ├─ CF CLI → references/setup-guide.md#cf-cli
│ └─ Kyma Dashboard → references/setup-guide.md#kyma
└─ Configure XSUAA scopes → references/security.md
Job Management
├─ Create jobs → references/rest-api.md#create-job
├─ Configure schedules → references/rest-api.md#schedules
├─ Run logs & monitoring → references/rest-api.md#run-logs
└─ Dashboard operations → references/operations.md#dashboard
Schedule Configuration
├─ One-time vs recurring → references/concepts.md#schedule-types
├─ Cron format → references/concepts.md#cron-format
├─ Date/time formats → references/concepts.md#date-formats
└─ Human-readable → references/concepts.md#human-readable
Asynchronous Execution
├─ Async mode flow → references/concepts.md#async-mode
├─ Callback implementation → references/rest-api.md#update-run-log
└─ CF tasks → references/concepts.md#cf-tasks
Security & Authentication
├─ OAuth 2.0 setup → references/security.md#oauth
├─ XSUAA configuration → references/security.md#xsuaa
└─ Credential rotation → references/security.md#rotation
Integrations
├─ SAP Cloud ALM → references/integrations.md#cloud-alm
└─ Alert Notification → references/integrations.md#alert-notification
Troubleshooting
├─ Common errors → references/troubleshooting.md#errors
├─ FAQ → references/troubleshooting.md#faq
└─ Support: BC-CP-CF-JBS
Version History & Updates
└─ What's New (2021-2025) → references/changelog.md
Core Concepts
Job
A collection of schedules with an action endpoint. Jobs invoke a configured URL at specified times synchronously (short operations) or asynchronously (long processes).
Schedule
A one-time or recurring entity within a job. Supports multiple formats (cron, date/time, human-readable) and has three lifecycle states: SCHEDULED → RUNNING → COMPLETED.
Action Endpoint
An HTTP/REST endpoint exposed by your application that the service invokes when schedules trigger. Must be OAuth 2.0 protected in production.
Cloud Foundry Task
An app or script that runs independently in its own container. Always executes asynchronously with configurable memory allocation.
Service Constraints
| Constraint |
Value |
| Minimum schedule interval |
5 minutes |
| Synchronous request timeout |
15 seconds |
| Asynchronous timeout (default) |
30 minutes (configurable up to 7 days) |
| POST request body limit |
100 KB |
| Run log retention |
15 days |
| Service SLA |
~20 minutes from scheduled time |
Quick Reference Tables
Schedule Formats
| Format |
Example |
Use Case |
| Cron |
* * * * 10:12 0,30 0 |
Every 30 min between 10:00-12:00 |
| Date/Time |
2025-10-20T04:30:00Z |
ISO-8601 one-time execution |
| Human-readable |
tomorrow at 4pm |
Natural language scheduling |
| repeatInterval |
2 hours, 5 minutes |
Recurring at fixed intervals |
| repeatAt |
4.40pm, 18:40 |
Daily at specific time |
Cron Format (7 fields)
Year Month Day DayOfWeek Hour Minute Second
* * * * * * *
| Field |
Values |
Special |
| Year |
4-digit (2025) |
* = any |
| Month |
1-12 |
*/a = every a-th |
| Day |
-31 to 31 |
negative = from end |
| DayOfWeek |
mon, tue, wed... |
a.y = a-th occurrence |
| Hour |
0-23 |
a:b = range |
| Minute |
0-59 |
a:b/c = step in range |
| Second |
0-59 |
a,b,c = multiple values |
Schedule Lifecycle States
| Phase |
States |
Description |
| SCHEDULED |
SCHEDULED |
Queued for future run |
| RUNNING |
TRIGGERED, ACK_RECVD, ACK_NOT_RECVD |
Executing |
| COMPLETED |
SUCCESS, ERROR, REQUEST_ERROR, UNKNOWN |
Finished |
HTTP Methods for Jobs
| Method |
Endpoint |
Purpose |
| POST |
/scheduler/jobs |
Create job |
| GET |
/scheduler/jobs |
List all jobs |
| GET |
/scheduler/jobs/{id} |
Get job details |
| PUT |
/scheduler/jobs/{id} |
Update job |
| DELETE |
/scheduler/jobs/{id} |
Delete job |
Best Practices
Scheduling Optimization
Avoid Peak Times:
- ❌ 0th or 30th second of any minute
- ❌ 0th, 30th, or multiples of 5 minutes
- ❌ Top of each hour
- ❌ Midnight UTC (busiest time)
Use Irregular Times:
- ✅
01:12:17 instead of 01:00:00
- ✅
01:38:37 instead of 01:30:00
Asynchronous Jobs
- Return 202 Accepted immediately - Don't block the request
- Store request headers -
x-sap-job-id, x-sap-job-schedule-id, x-sap-job-run-id, x-sap-scheduler-host
- Update run log on completion - Single API call with final status
- Handle timeouts - Default 30 min, configurable up to 7 days
One-Time Schedules
- Use only for testing/validation
- Auto-deactivate after execution
- Use
"time": "now" for immediate execution
Authentication Quick Start
Standard Plan (OAuth 2.0)
# Get access token
curl -X POST "<uaa_url>/oauth/token" \
-H "Authorization: Basic $(echo -n '<clientid>:<clientsecret>' | base64)" \
-d "grant_type=client_credentials"
# Use token in API calls
curl -X GET "https://jobscheduler-rest.<landscape>/scheduler/jobs" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json"
xs-security.json Configuration
{
"xsappname": "<app-name>",
"scopes": [{
"name": "$XSAPPNAME.JOBSCHEDULER",
"description": "Job Scheduler Scope",
"grant-as-authority-to-apps": ["$XSSERVICENAME(<jobscheduler-instance>)"]
}]
}
Create Job Example
POST /scheduler/jobs
{
"name": "myJob",
"description": "Process daily reports",
"action": "https://myapp.cfapps.eu10.hana.ondemand.com/api/process",
"active": true,
"httpMethod": "POST",
"schedules": [{
"active": true,
"description": "Daily at 6 AM",
"repeatAt": "6.00am",
"startTime": {"date": "2025-01-01", "format": "YYYY-MM-DD"}
}]
}
Node.js Client Library
Requirements: Node.js 14.x or later
npm install @sap/jobs-client@1.8.6
const JobSchedulerClient = require('@sap/jobs-client');
const scheduler = new JobSchedulerClient.Scheduler();
// Create job
scheduler.createJob({ url: vcapServices.jobscheduler[0].credentials.url }, {
name: 'myJob',
action: 'https://myapp.../process',
active: true,
httpMethod: 'GET',
schedules: [{ cron: '* * * * 0 0 0', active: true }]
}, (err, result) => { /* handle */ });
Rate Limits
| Limit Type |
Response Code |
Header |
| Client limit exceeded |
429 |
retry-after (seconds) |
| Absolute limit exceeded |
503 |
throttling (milliseconds) |
Limits stack - both can apply simultaneously.
Service Behavior
Outage Recovery
| Outage Duration |
Behavior |
| < 20 minutes |
All missed executions run immediately |
| >= 20 minutes |
Only last missed execution runs |
Auto-Deactivation Triggers
- One-time schedule executed
- No valid future dates exist
- Job/schedule endTime reached
- Action endpoint unreachable for 10+ days
Reference Files
Detailed Guides Available
- references/concepts.md - Schedule types, formats, lifecycle, async mode, multitenancy
- references/rest-api.md - Complete REST API reference with all endpoints
- references/setup-guide.md - Prerequisites, service instance creation
- references/security.md - OAuth 2.0, XSUAA scopes, credential rotation
- references/integrations.md - Cloud ALM, Alert Notification Service
- references/troubleshooting.md - FAQ, error scenarios, monitoring
- references/operations.md - Dashboard, backup/restore, service behavior
- references/changelog.md - Version history, feature updates (2021-2025)
Templates Available
- templates/job-creation.json - Job creation request template
- templates/xs-security.json - XSUAA configuration template
Common Pitfalls
Setup:
- ❌ Missing XSUAA binding before Job Scheduling binding
- ❌ Not granting scopes via
grant-as-authority-to-apps
- ❌ Using HTTP instead of HTTPS for action endpoints
Scheduling:
- ❌ Using Linux cron format (service uses SAP cron)
- ❌ Scheduling at peak times (00:00, 00:30, etc.)
- ❌ Forgetting UTC timezone (only supported timezone)
Async Jobs:
- ❌ Not returning 202 Accepted immediately
- ❌ Forgetting to call Update Run Log API
- ❌ Multiple status updates instead of single final update
Multitenancy:
- ❌ Using
tenantId filter with SaaS tenant tokens (returns 400)
- ❌ Missing Job Scheduling as application dependency
External Resources
SAP Documentation
Support
- Component: BC-CP-CF-JBS
- SAP Trust Center: Platform status verification
- Guided Answers: Self-service troubleshooting
Updates and Maintenance
Source: SAP BTP Job Scheduling Service Documentation
To Update This Skill:
- Check GitHub repository for documentation updates
- Review What's New section for changes
- Update affected reference files
- Update templates if configurations changed
- Update "Last Verified" date
Quarterly Review Recommended: Check for updates every 3 months
Next Review: 2026-02-27
Bundled Resources
Reference Files
- references/concepts.md - Schedule types, formats, lifecycle, async mode, multitenancy (12K lines)
- references/rest-api.md - Complete REST API reference with all endpoints (20K lines)
- references/setup-guide.md - Prerequisites, service instance creation (9K lines)
- references/security.md - OAuth 2.0, XSUAA scopes, credential rotation (11K lines)
- references/integrations.md - Cloud ALM, Alert Notification Service (8K lines)
- references/troubleshooting.md - FAQ, error scenarios, monitoring (9K lines)
- references/operations.md - Dashboard, backup/restore, service behavior (8K lines)
- references/changelog.md - Version history, feature updates (2021-2025) (9K lines)
Templates
- templates/job-creation.json - Job creation request template with examples
- templates/xs-security.json - XSUAA configuration template for OAuth scopes
License: GPL-3.0
Maintainer: Eduard Jiglau | hello@sap-ai-skills.com | sap-ai-skills.com | https://github.com/secondsky/sap-skills
1---2name: sap-btp-job-scheduling3description: This skill provides comprehensive guidance for SAP BTP Job Scheduling Service development, configuration, and operations. It should be used when creating, managing, or troubleshooting scheduled jobs on SAP Business Technology Platform. The skill covers service setup, REST API usage, schedule types and formats, OAuth 2.0 authentication, multitenancy, Cloud Foundry tasks, Kyma runtime integration, and monitoring with SAP Cloud ALM and Alert Notification Service. Keywords: SAP BTP, Job Scheduling, jobscheduler, cron, schedule, recurring jobs, one-time jobs, Cloud Foundry tasks, CF tasks, Kyma, OAuth 2.0, XSUAA, @sap/jobs-client, REST API, asynchronous jobs, action endpoint, run logs, SAP Cloud ALM, Alert Notification Service, multitenancy, tenant-aware, BC-CP-CF-JBS4license: GPL-3.05---6
7# SAP BTP Job Scheduling Service
8
9## Related Skills
10
11- **sap-dependency-security**: Use for secure dependency and workflow hardening when your job scheduling microservices maintain npm/CLI dependency stacks
12
13## Table of Contents
14
15- [Overview](#overview)
16- [When to Use This Skill](#when-to-use-this-skill)
17- [Quick Decision Tree](#quick-decision-tree)
18- [Core Concepts](#core-concepts)
19- [Service Constraints](#service-constraints)
20- [Quick Reference Tables](#quick-reference-tables)
21 - [Schedule Formats](#schedule-formats)
22 - [Cron Format (7 fields)](#cron-format-7-fields)
23 - [Schedule Lifecycle States](#schedule-lifecycle-states)
24 - [HTTP Methods for Jobs](#http-methods-for-jobs)
25- [Best Practices](#best-practices)
26 - [Scheduling Optimization](#scheduling-optimization)
27 - [Asynchronous Jobs](#asynchronous-jobs)
28 - [One-Time Schedules](#one-time-schedules)
29- [Authentication Quick Start](#authentication-quick-start)
30 - [Standard Plan (OAuth 2.0)](#standard-plan-oauth-20)
31 - [xs-security.json Configuration](#xs-securityjson-configuration)
32- [Create Job Example](#create-job-example)
33- [Node.js Client Library](#nodejs-client-library)
34- [Rate Limits](#rate-limits)
35- [Service Behavior](#service-behavior)
36 - [Outage Recovery](#outage-recovery)
37 - [Auto-Deactivation Triggers](#auto-deactivation-triggers)
38- [Bundled Resources](#bundled-resources)
39- [Common Pitfalls](#common-pitfalls)
40- [External Resources](#external-resources)
41- [Updates and Maintenance](#updates-and-maintenance)
42
43## Overview
44
45SAP Job Scheduling Service is a runtime-agnostic platform service for defining and managing one-time and recurring jobs or Cloud Foundry tasks on SAP BTP. It operates across multiple hyperscalers (AWS, Azure, GCP) without requiring application modifications.
46
47**Documentation Source**: [https://help.sap.com/docs/job-scheduling](https://help.sap.com/docs/job-scheduling)
48
49**Last Verified**: 2025-11-27
50
51## When to Use This Skill
52
53Use this skill when:
54
55- **Setting up Job Scheduling Service** on Cloud Foundry or Kyma runtime
56- **Creating and managing jobs** via REST API or dashboard
57- **Configuring schedules** using cron, date/time, or human-readable formats
58- **Implementing asynchronous job execution** for long-running processes
59- **Securing action endpoints** with OAuth 2.0 and XSUAA
60- **Integrating with SAP Cloud ALM** or Alert Notification Service
61- **Developing multitenant applications** with tenant-aware job scheduling
62- **Troubleshooting job execution issues** and schedule failures
63- **Using the Node.js client library** (@sap/jobs-client)
64
65## Quick Decision Tree
66
67### What Task?
68
69```
70Setup & Configuration
71├─ Initial setup prerequisites → references/setup-guide.md
72├─ Create service instance
73│ ├─ BTP Cockpit → references/setup-guide.md#cockpit
74│ ├─ CF CLI → references/setup-guide.md#cf-cli
75│ └─ Kyma Dashboard → references/setup-guide.md#kyma
76└─ Configure XSUAA scopes → references/security.md
77
78Job Management
79├─ Create jobs → references/rest-api.md#create-job
80├─ Configure schedules → references/rest-api.md#schedules
81├─ Run logs & monitoring → references/rest-api.md#run-logs
82└─ Dashboard operations → references/operations.md#dashboard
83
84Schedule Configuration
85├─ One-time vs recurring → references/concepts.md#schedule-types
86├─ Cron format → references/concepts.md#cron-format
87├─ Date/time formats → references/concepts.md#date-formats
88└─ Human-readable → references/concepts.md#human-readable
89
90Asynchronous Execution
91├─ Async mode flow → references/concepts.md#async-mode
92├─ Callback implementation → references/rest-api.md#update-run-log
93└─ CF tasks → references/concepts.md#cf-tasks
94
95Security & Authentication
96├─ OAuth 2.0 setup → references/security.md#oauth
97├─ XSUAA configuration → references/security.md#xsuaa
98└─ Credential rotation → references/security.md#rotation
99
100Integrations
101├─ SAP Cloud ALM → references/integrations.md#cloud-alm
102└─ Alert Notification → references/integrations.md#alert-notification
103
104Troubleshooting
105├─ Common errors → references/troubleshooting.md#errors
106├─ FAQ → references/troubleshooting.md#faq
107└─ Support: BC-CP-CF-JBS
108
109Version History & Updates
110└─ What's New (2021-2025) → references/changelog.md
111```
112
113## Core Concepts
114
115### Job
116A collection of schedules with an action endpoint. Jobs invoke a configured URL at specified times synchronously (short operations) or asynchronously (long processes).
117
118### Schedule
119A one-time or recurring entity within a job. Supports multiple formats (cron, date/time, human-readable) and has three lifecycle states: SCHEDULED → RUNNING → COMPLETED.
120
121### Action Endpoint
122An HTTP/REST endpoint exposed by your application that the service invokes when schedules trigger. Must be OAuth 2.0 protected in production.
123
124### Cloud Foundry Task
125An app or script that runs independently in its own container. Always executes asynchronously with configurable memory allocation.
126
127## Service Constraints
128
129| Constraint | Value |
130|------------|-------|
131| Minimum schedule interval | 5 minutes |
132| Synchronous request timeout | 15 seconds |
133| Asynchronous timeout (default) | 30 minutes (configurable up to 7 days) |
134| POST request body limit | 100 KB |
135| Run log retention | 15 days |
136| Service SLA | ~20 minutes from scheduled time |
137
138## Quick Reference Tables
139
140### Schedule Formats
141
142| Format | Example | Use Case |
143|--------|---------|----------|
144| Cron | `* * * * 10:12 0,30 0` | Every 30 min between 10:00-12:00 |
145| Date/Time | `2025-10-20T04:30:00Z` | ISO-8601 one-time execution |
146| Human-readable | `tomorrow at 4pm` | Natural language scheduling |
147| repeatInterval | `2 hours`, `5 minutes` | Recurring at fixed intervals |
148| repeatAt | `4.40pm`, `18:40` | Daily at specific time |
149
150### Cron Format (7 fields)
151
152```
153Year Month Day DayOfWeek Hour Minute Second
154* * * * * * *
155```
156
157| Field | Values | Special |
158|-------|--------|---------|
159| Year | 4-digit (2025) | * = any |
160| Month | 1-12 | */a = every a-th |
161| Day | -31 to 31 | negative = from end |
162| DayOfWeek | mon, tue, wed... | a.y = a-th occurrence |
163| Hour | 0-23 | a:b = range |
164| Minute | 0-59 | a:b/c = step in range |
165| Second | 0-59 | a,b,c = multiple values |
166
167### Schedule Lifecycle States
168
169| Phase | States | Description |
170|-------|--------|-------------|
171| SCHEDULED | SCHEDULED | Queued for future run |
172| RUNNING | TRIGGERED, ACK_RECVD, ACK_NOT_RECVD | Executing |
173| COMPLETED | SUCCESS, ERROR, REQUEST_ERROR, UNKNOWN | Finished |
174
175### HTTP Methods for Jobs
176
177| Method | Endpoint | Purpose |
178|--------|----------|---------|
179| POST | `/scheduler/jobs` | Create job |
180| GET | `/scheduler/jobs` | List all jobs |
181| GET | `/scheduler/jobs/{id}` | Get job details |
182| PUT | `/scheduler/jobs/{id}` | Update job |
183| DELETE | `/scheduler/jobs/{id}` | Delete job |
184
185## Best Practices
186
187### Scheduling Optimization
188
189**Avoid Peak Times:**
190- ❌ 0th or 30th second of any minute
191- ❌ 0th, 30th, or multiples of 5 minutes
192- ❌ Top of each hour
193- ❌ Midnight UTC (busiest time)
194
195**Use Irregular Times:**
196- ✅ `01:12:17` instead of `01:00:00`
197- ✅ `01:38:37` instead of `01:30:00`
198
199### Asynchronous Jobs
200
2011. **Return 202 Accepted immediately** - Don't block the request
2022. **Store request headers** - `x-sap-job-id`, `x-sap-job-schedule-id`, `x-sap-job-run-id`, `x-sap-scheduler-host`
2033. **Update run log on completion** - Single API call with final status
2044. **Handle timeouts** - Default 30 min, configurable up to 7 days
205
206### One-Time Schedules
207
208- Use only for testing/validation
209- Auto-deactivate after execution
210- Use `"time": "now"` for immediate execution
211
212## Authentication Quick Start
213
214### Standard Plan (OAuth 2.0)
215
216```bash
217# Get access token
218curl -X POST "<uaa_url>/oauth/token" \
219 -H "Authorization: Basic $(echo -n '<clientid>:<clientsecret>' | base64)" \
220 -d "grant_type=client_credentials"
221
222# Use token in API calls
223curl -X GET "https://jobscheduler-rest.<landscape>/scheduler/jobs" \
224 -H "Authorization: Bearer <access_token>" \
225 -H "Content-Type: application/json"
226```
227
228### xs-security.json Configuration
229
230```json
231{
232 "xsappname": "<app-name>",
233 "scopes": [{
234 "name": "$XSAPPNAME.JOBSCHEDULER",
235 "description": "Job Scheduler Scope",
236 "grant-as-authority-to-apps": ["$XSSERVICENAME(<jobscheduler-instance>)"]
237 }]
238}
239```
240
241## Create Job Example
242
243```json
244POST /scheduler/jobs
245{
246 "name": "myJob",
247 "description": "Process daily reports",
248 "action": "https://myapp.cfapps.eu10.hana.ondemand.com/api/process",
249 "active": true,
250 "httpMethod": "POST",
251 "schedules": [{
252 "active": true,
253 "description": "Daily at 6 AM",
254 "repeatAt": "6.00am",
255 "startTime": {"date": "2025-01-01", "format": "YYYY-MM-DD"}
256 }]
257}
258```
259
260## Node.js Client Library
261
262**Requirements**: Node.js 14.x or later
263
264```bash
265npm install @sap/jobs-client@1.8.6
266```
267
268```javascript
269const JobSchedulerClient = require('@sap/jobs-client');
270const scheduler = new JobSchedulerClient.Scheduler();
271
272// Create job
273scheduler.createJob({ url: vcapServices.jobscheduler[0].credentials.url }, {
274 name: 'myJob',
275 action: 'https://myapp.../process',
276 active: true,
277 httpMethod: 'GET',
278 schedules: [{ cron: '* * * * 0 0 0', active: true }]
279}, (err, result) => { /* handle */ });
280```
281
282## Rate Limits
283
284| Limit Type | Response Code | Header |
285|------------|---------------|--------|
286| Client limit exceeded | 429 | `retry-after` (seconds) |
287| Absolute limit exceeded | 503 | `throttling` (milliseconds) |
288
289Limits stack - both can apply simultaneously.
290
291## Service Behavior
292
293### Outage Recovery
294
295| Outage Duration | Behavior |
296|-----------------|----------|
297| < 20 minutes | All missed executions run immediately |
298| >= 20 minutes | Only last missed execution runs |
299
300### Auto-Deactivation Triggers
301
302- One-time schedule executed
303- No valid future dates exist
304- Job/schedule endTime reached
305- Action endpoint unreachable for 10+ days
306
307## Reference Files
308
309### Detailed Guides Available
310
3111. **references/concepts.md** - Schedule types, formats, lifecycle, async mode, multitenancy
3122. **references/rest-api.md** - Complete REST API reference with all endpoints
3133. **references/setup-guide.md** - Prerequisites, service instance creation
3144. **references/security.md** - OAuth 2.0, XSUAA scopes, credential rotation
3155. **references/integrations.md** - Cloud ALM, Alert Notification Service
3166. **references/troubleshooting.md** - FAQ, error scenarios, monitoring
3177. **references/operations.md** - Dashboard, backup/restore, service behavior
3188. **references/changelog.md** - Version history, feature updates (2021-2025)
319
320### Templates Available
321
3221. **templates/job-creation.json** - Job creation request template
3232. **templates/xs-security.json** - XSUAA configuration template
324
325## Common Pitfalls
326
327**Setup:**
328- ❌ Missing XSUAA binding before Job Scheduling binding
329- ❌ Not granting scopes via `grant-as-authority-to-apps`
330- ❌ Using HTTP instead of HTTPS for action endpoints
331
332**Scheduling:**
333- ❌ Using Linux cron format (service uses SAP cron)
334- ❌ Scheduling at peak times (00:00, 00:30, etc.)
335- ❌ Forgetting UTC timezone (only supported timezone)
336
337**Async Jobs:**
338- ❌ Not returning 202 Accepted immediately
339- ❌ Forgetting to call Update Run Log API
340- ❌ Multiple status updates instead of single final update
341
342**Multitenancy:**
343- ❌ Using `tenantId` filter with SaaS tenant tokens (returns 400)
344- ❌ Missing Job Scheduling as application dependency
345
346## External Resources
347
348### SAP Documentation
349- **SAP Help Portal**: [https://help.sap.com/docs/job-scheduling](https://help.sap.com/docs/job-scheduling)
350- **SAP Developer Center**: [https://developers.sap.com/](https://developers.sap.com/)
351
352### Support
353- **Component**: BC-CP-CF-JBS
354- **SAP Trust Center**: Platform status verification
355- **Guided Answers**: Self-service troubleshooting
356
357## Updates and Maintenance
358
359**Source**: SAP BTP Job Scheduling Service Documentation
360
361**To Update This Skill**:
3621. Check GitHub repository for documentation updates
3632. Review What's New section for changes
3643. Update affected reference files
3654. Update templates if configurations changed
3665. Update "Last Verified" date
367
368**Quarterly Review Recommended**: Check for updates every 3 months
369
370**Next Review**: 2026-02-27
371
372## Bundled Resources
373
374### Reference Files
3751. **references/concepts.md** - Schedule types, formats, lifecycle, async mode, multitenancy (12K lines)
3762. **references/rest-api.md** - Complete REST API reference with all endpoints (20K lines)
3773. **references/setup-guide.md** - Prerequisites, service instance creation (9K lines)
3784. **references/security.md** - OAuth 2.0, XSUAA scopes, credential rotation (11K lines)
3795. **references/integrations.md** - Cloud ALM, Alert Notification Service (8K lines)
3806. **references/troubleshooting.md** - FAQ, error scenarios, monitoring (9K lines)
3817. **references/operations.md** - Dashboard, backup/restore, service behavior (8K lines)
3828. **references/changelog.md** - Version history, feature updates (2021-2025) (9K lines)
383
384### Templates
3851. **templates/job-creation.json** - Job creation request template with examples
3862. **templates/xs-security.json** - XSUAA configuration template for OAuth scopes
387
388---
389
390**License**: GPL-3.0
391**Maintainer**: Eduard Jiglau | [hello@sap-ai-skills.com](mailto:hello@sap-ai-skills.com) | [sap-ai-skills.com](https://sap-ai-skills.com) | [https://github.com/secondsky/sap-skills](https://github.com/secondsky/sap-skills)