Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

api jobs

Bozhidar Nikolov edited this page Oct 6, 2021 · 3 revisions

$.jobs API

Represents an XS scheduled job

Reference

  • SAP Help

https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.jobs.Job.html

  • Module

https://github.com/SAP/xsk/tree/main/modules/api/api-xsjs/src/main/resources/xsk/jobs

  • Sample usage:

Create a definition.xsjob file:

{
	"description": "My Job configuration",
	"action": "xsjob_demo:handler.xsjslib::writeInDB",
	"schedules": [
		{
			"description": "Execute every 5 seconds",
			"xscron": "* * * * * * */5",
			"parameter": {
			}
		}
	]
}

Create a handler.xsjslib file:

function writeInDB() {
    var connection;
    try {
        connection = $.db.getConnection();
        
        var insertStatement = connection.prepareStatement("INSERT INTO XSJOB_DEMO (EXECUTED_AT) VALUES (CURRENT_TIMESTAMP)");
        insertStatement.executeUpdate();
        insertStatement.close();
    } catch(e) {
        connection.rollback();
        console.log("Transaction was rolled back: " + e.message);
    } finally {
       connection.close();
    }
}

And now, to use the API, create a .xsjs file:

var job = new $.jobs.Job({ uri: "xsjob_demo/definition.xsjob" });

// execute the job for 60 seconds, starting from now
job.configure({ status: true, start_time: new Date(), end_time: new Date(Date.now() + 60000) });
  • Coverage
Methods Description Status
activate() Activates an XS Job that has already been configured.
configure(config) Configure an XS Job. The function provides additional means to programmatically configure an XS Job. Configuration must be done prior to activate/deactivate an XS Job.
deactivate() Deactivates an XS Job that has already been configured.
getConfiguration() Retrieve current configuration of an XS Job as object.
  • Issues

https://github.com/SAP/xsk/issues/388

  • Unit Tests ❌

  • Integration Tests ❌

Wiki icons legend

✅ - Feature implemented and working as supposed.
⚠️ - Feature partially implemented and needs to be finished.
❌ - Feature not implemented yet.