9.7 KiB
SAP BTP Job Scheduling Service - Setup Guide
Source: https://github.com/SAP-docs/sap-btp-job-scheduling-service/tree/main/docs Last Updated: 2025-11-22
Table of Contents
- Prerequisites
- Service Plans
- Create Service Instance - BTP Cockpit
- Create Service Instance - CF CLI
- Create Service Instance - Kyma Dashboard
- XSUAA Configuration
- Complete Setup Workflow
Prerequisites
Account Requirements
| Requirement | Description |
|---|---|
| Global Account | SAP BTP global account |
| Subaccount | At least one subaccount with CF or Kyma enabled |
| Administrator Role | Global account administrator |
| Quota | Purchased quota for Job Scheduling and XSUAA services |
Service Entitlements
| Service | Plan | Purpose |
|---|---|---|
| SAP Job Scheduling Service | standard | Job scheduling functionality |
| SAP Authorization and Trust Management (XSUAA) | application | OAuth 2.0 authentication |
Cloud Foundry Requirements
- Created a Cloud Foundry space
- Assigned as Space Developer in your space
- Application deployed with exposed action endpoint
- Application and service in the same CF space (co-location required)
Kyma Requirements
- Kyma environment enabled in subaccount
- Namespace created
- One of these roles:
SAP_Job_Scheduling_Service_AdminSAP_Job_Scheduling_Service_Viewer
Service Plans
Standard Plan
The only available plan for SAP Job Scheduling Service.
| Feature | Value |
|---|---|
| Authentication | OAuth 2.0 |
| Service Name | jobscheduler |
| Plan Name | standard |
| Custom Parameters | None required (see below) |
Note (November 2024 Update): The enable-xsuaa-support property now defaults to enabled. No additional parameters are required during service instance creation. Previously, this had to be explicitly set.
Create Service Instance - BTP Cockpit
Prerequisites
- Logged on to SAP BTP cockpit
- Quota assigned to subaccount
Step-by-Step Instructions
Step 1: Access Service Marketplace
- Navigate to your subaccount
- Go to Services → Service Marketplace
- Locate Job Scheduling Service
Step 2: Create Instance
- Click on Job Scheduling Service tile
- Open Actions menu
- Select Create
- New Instance wizard launches
Step 3: Configure Instance
| Field | Value |
|---|---|
| Service Plan | standard (only option) |
| Instance Name | Your custom name (e.g., my-jobscheduler) |
| Parameters | None available |
Step 4: Complete Creation
- Click Next through Parameters step (no customization available)
- Review details
- Click Create
Step 5: Bind to Application
- Go to Service Instances
- Select your new instance
- Click Bind Application
- Select your deployed Cloud Foundry application
Create Service Instance - CF CLI
Prerequisites
- CF CLI installed
- Logged into Cloud Foundry (
cf login) - Application deployed
Commands
1. Verify Service Availability:
cf marketplace
Look for jobscheduler in the output.
2. Create Service Instance:
cf create-service jobscheduler standard my-jobscheduler
3. Bind Service - Basic:
cf bind-service my-app my-jobscheduler
4. Bind Service - With X.509 Certificate:
Create parameters.json:
{
"credential-type": "x509",
"x509": {
"key-length": 2048,
"validity": 7,
"validity-type": "DAYS"
}
}
Bind with parameters:
cf bind-service my-app my-jobscheduler -c parameters.json
5. Restage Application:
cf restage my-app
6. Verify Binding:
cf env my-app
Check VCAP_SERVICES for jobscheduler credentials.
VCAP_SERVICES Structure
Standard Binding (clientsecret):
{
"jobscheduler": [{
"credentials": {
"url": "[https://jobscheduler-rest.cfapps.eu10.hana.ondemand.com",](https://jobscheduler-rest.cfapps.eu10.hana.ondemand.com",)
"uaa": {
"url": "[https://xxx.authentication.eu10.hana.ondemand.com",](https://xxx.authentication.eu10.hana.ondemand.com",)
"clientid": "sb-xxx",
"clientsecret": "xxx"
}
}
}]
}
X.509 Binding:
{
"jobscheduler": [{
"credentials": {
"url": "[https://jobscheduler-rest.cfapps.eu10.hana.ondemand.com",](https://jobscheduler-rest.cfapps.eu10.hana.ondemand.com",)
"uaa": {
"certurl": "[https://xxx.authentication.cert.eu10.hana.ondemand.com",](https://xxx.authentication.cert.eu10.hana.ondemand.com",)
"clientid": "sb-xxx",
"certificate": "-----BEGIN CERTIFICATE-----\n...",
"key": "-----BEGIN RSA PRIVATE KEY-----\n..."
}
}
}]
}
Create Service Instance - Kyma Dashboard
Prerequisites
- Logged on to SAP BTP cockpit
- Kyma environment enabled
Step-by-Step Instructions
Step 1: Access Kyma Dashboard
- Navigate to your subaccount
- Click Link to Dashboard in Kyma Environment section
Step 2: Select Namespace
- Choose your target namespace
Step 3: Create Service Instance
- Go to Service Instances section
- Click Create
- Fill in details:
| Field | Value |
|---|---|
| Service Name | jobscheduler |
| Plan | standard |
| Instance Name | Your custom name |
Step 4: Create Service Binding
- Navigate to Service Bindings
- Click Create
- Select your service instance
- Provide binding name
Step 5: Mount Service in Application
Connect the service binding to your application deployment using SAP BTP Operator module.
Kyma-Specific Notes
- Use SAP BTP Operator for service management
- Service bindings mounted as Kubernetes secrets
- Refer to Kyma documentation for detailed deployment patterns
XSUAA Configuration
Purpose
XSUAA provides OAuth 2.0 authentication for job action endpoints. Job Scheduling Service needs scope grants to call protected endpoints.
xs-security.json Template
{
"xsappname": "my-app",
"tenant-mode": "dedicated",
"scopes": [
{
"name": "$XSAPPNAME.JOBSCHEDULER",
"description": "Job Scheduler Scope",
"grant-as-authority-to-apps": [
"$XSSERVICENAME(my-jobscheduler)"
]
}
],
"authorities": [
"$XSAPPNAME.JOBSCHEDULER"
]
}
Key Configuration Elements
| Element | Description |
|---|---|
$XSAPPNAME |
Automatically replaced with app name |
$XSSERVICENAME(instance) |
References Job Scheduling instance |
grant-as-authority-to-apps |
Grants scope to Job Scheduling service |
Apply Configuration
Create XSUAA Instance:
cf create-service xsuaa application my-xsuaa -c xs-security.json
Update Existing Instance:
cf update-service my-xsuaa -c xs-security.json
Bind XSUAA to Application:
cf bind-service my-app my-xsuaa
cf restage my-app
Scope Grant Workflow
- Application defines scope in
xs-security.json - Scope granted to Job Scheduling service via
grant-as-authority-to-apps - Job Scheduling obtains token from UAA with granted scope
- Job Scheduling includes token when calling action endpoint
- Application validates token using bound XSUAA instance
Complete Setup Workflow
Recommended Order
1. Deploy Application
└─ Expose action endpoint (HTTPS)
2. Create XSUAA Instance
└─ Configure xs-security.json with scope grants
└─ cf create-service xsuaa application my-xsuaa -c xs-security.json
3. Bind XSUAA to Application
└─ cf bind-service my-app my-xsuaa
4. Create Job Scheduling Instance
└─ cf create-service jobscheduler standard my-jobscheduler
5. Bind Job Scheduling to Application
└─ cf bind-service my-app my-jobscheduler
6. Restage Application
└─ cf restage my-app
7. Create Jobs via REST API or Dashboard
Verification Checklist
- Application deployed and accessible
- Action endpoint exposed and working
- XSUAA instance created with correct scopes
- XSUAA bound to application
- Job Scheduling instance created
- Job Scheduling bound to application
- Application restaged
- VCAP_SERVICES contains both services
- Can obtain OAuth token successfully
- Can access Job Scheduling dashboard
Common Setup Errors
| Error | Cause | Solution |
|---|---|---|
| Service not found | Missing entitlement | Add quota to subaccount |
| 401 Unauthorized | Missing scope grant | Update xs-security.json |
| 403 Forbidden | Wrong space | Ensure co-location |
| Instance not visible | Not bound | Bind service to app |
External References
SAP Documentation
- Initial Setup: https://help.sap.com/docs/job-scheduling/sap-job-scheduling-service/initial-setup
- Getting Started: https://help.sap.com/docs/job-scheduling/sap-job-scheduling-service/getting-started
- XSUAA Documentation: https://help.sap.com/docs/btp/sap-business-technology-platform/security
Source Files
initial-setup-0adb655.mdcreate-a-service-instance-in-sap-btp-cockpit-e267ab6.mdcreate-a-service-instance-using-cf-cli-cb56f9e.mdcreate-a-service-instance-in-the-kyma-dashboard-224a49a.mdgetting-started-02e4e8b.md