You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Introduction

  • The JITL SAPS4HANAJob implements an interface to the SAP Job Scheduling Service REST API.

Authentication and Authorization

  • The JITL job makes use of token based SAP authentication with XSUAA.
  • This includes that the tokens generated cover the required scope to call individual application endpoints. 
    • Required permissions and roles are determined by the application.
    • Calls to different applications and endpoints can require different accounts and credential sets.

Generelle Verarbeitung

  • Gemäß den übergebenen Parametern wird ein SAP-Hana-Job mit genau einem Schedule zur sofortigen Ausführung angelegt.
    • Der im Action Endpoint angegebene SAP-Job kann synchron oder asynchron von SAP gestartet werden, wobei der JITL Job darüber keine Kenntnis hat. Ist aber auch nicht relevant, da JITL Job sowieso nicht weiß, wieviel Zeit der SAP-Job benötigt.
    • Der REST API Aufruf POST /scheduler/jobs liefert "jobId" und "scheduleId"
  • EIne Datei "jobName.json" wird im Dateisystem des Agenten angelegt, in dem "jobId" und "scheduleId" gespeichert sind.
    • Ein weiterer JILT Job SAPS4HANARetrieve, der regelmäßig laufen sollte, prüft anhand dieser Dateien die (noch offenen) SAP Job Execution Status zu einem späteren Zeitpunkt, falls die SAP-Jobs langlaufend sind.

      Wie Historie aktualisieren?

  • Es wird der SAP Job Execution Status (wiederholt) geprüft.
    • Anzahl und Interval der Prüfungen sind konfigurierbar.
    • Die Prüfung erfolgt mit REST API Aufruf GET /scheduler/jobs/{jobId}/schedules/{scheduleId}/runs
      • Die Prüfung endet spätestens, wenn HTTP 404 geliefert wird oder wenn der "runStatus" gleich "COMPLETED" oder "UNKNOWN" ist. Dann wird ...
        • Ergebnis wird in das Job-Protokoll geschrieben.
        • SAP-Hana-Job wird gelöscht (mit DELETE /scheduler/jobs/{jobId}), wenn zuvor HTTP 200
        • "jobName.json" aus Dateisystem des Agenten gelöscht
  • Der Job endet mit "returnCode" = 0, es sei denn
    • POST /scheduler/jobs liefert ungleich HTTP 201
    • POST /scheduler/jobs läuft auf Connection-/Socket-Timeout.


Parameterization

Die Parameter sind dreieiteilig. Die Parameter unter 1. und 2. bekommen den Präfix "js7", um sich von den Parameter unter 3. zu unterscheiden.

  1. Parameter, die der JITL-Job braucht.
    • Anzahl und Interval der Status-Prüfungen
  2. Parameter, die der SAP-HANA-Job braucht. Diese sind ...
    • Name des SAP-HANA-Jobs: Der Name wird implizit aus der OrderId und den Job-Instruction-Label gebildet.
      • Ggf. muss der Name dem erlaubten Zeichenvorrat eines SAP-HANA-Jobnames angepasst werden.

        Zu klären: Was meint "Name must not contain special characters or only numbers"?

    • Action Endpoint des SAP-Jobs, der vom SAP-HANA-Job gestartet wird
    • HTTP Methode des Action Endpoints.
      • Mögliche Werte sind: DELETE, PUT, POST, GET

        Job Wizard sollte Wertevorräte unterstützen

    • Beschreibung des SAP-HANA-Jobs (optional)
  3. Parameter, die jener SAP-Job braucht, der vom SAP-HANA-Job gestartet wird.
    • Optionale Liste von Schlüssel/Werte-Paaren, wobei die Schlüssel nicht "js7" als Präfix haben dürfen.

Wenn mehrere  SAPS4HANAJobs im Workflow vorhanden sind, müssen die Order-Parameter den Parameter der Job-Instruction übergeben werden.

  • No labels