SAP-Daten-API

Die SAP-Daten-API ermöglicht das Hoch- und Herunterladen von Daten aus SAP. Die API ist für Evolve und für Studio Manager verfügbar. Die API macht die JSON-Nutzlast und andere Details verfügbar (z. B. SAP, Ausführungseinstellungen etc.) zum Buchen von Daten in SAP. Der ROI wird für alle Umgebungen (Entwicklung, QA und Produktion) synchronisiert, aber die Abrechnung erfolgt nur für das Produktionssystem.

Hinweise: Die SAP-Daten-API unterstützt keine verketteten Skripte und Mehrfach-Skripte. Die SAP-Daten-API unterstützt nur einzelne Transaktionen. Evolve Web und Service Worker unterstützen keine auf GUI-Skripten basierenden Transaktionen, daher wird es auch nicht für die SAP-Daten-API unterstützt. Abfragen mit IN-Kriterien unter Verwendung eines dynamischen Dateipfads für fest oder benutzerdefiniert werden nicht unterstützt.

Voraussetzungen

Im Folgenden werden die beiden Voraussetzungen für die Verwendung dieser Funktion aufgeführt.

  1. Die Lizenz für die SAP-Daten-API muss auf dem Evolve System aktiviert werden.

  2. Der Wert für den Schlüssel SapIntegrationAPIEnable sollte auf „Wahr“ gesetzt werden.

Sobald die Lizenz erfolgreich aktiviert wurde, konfiguriert die Anwendung auch die Systemvariable SapIntegrationAPIEnable und setzt sie in den erweiterten Einstellungen automatisch auf „Wahr“ ( „Verwaltung“ → „System“ → „Erweiterte Einstellungen“). Setzen Sie diesen Wert auf „Falsch“, um die SAP-Funktion zu deaktivieren.

Nur globale Administratoren dürfen Lizenzen hinzufügen und verwalten. Die SAP-Integrationslizenz ist die erforderliche Lizenz für die SAP-Daten-API. Beim Typ kann zwischen Abonnement (abgestuft – Tier-Band) und Abonnement (Volumen – Volumenband) gewählt werden. Der Schlüssel SapIntegrationAPIEnable für erweiterte Einstellungen kann nur aktiviert werden, wenn der Benutzer über einen gültigen Typ einer SAP-Integrationslizenz mit gleicher SKU verfügt. SapIntegrationApi ist mit dem API-Gateway und seinem unterstützten Authentifizierungsmechanismus gesichert.

Sie können über Evolve auf die SAP-Daten-API zugreifen. Einzelheiten zum Speichern von Lösungen von SAP-Daten-APIs auf Evolve, zu SAP-API-Genehmigungseinstellungen und zum Hinzufügen sowie Aktualisieren der SAP-API über die Registerkarte „Lösungen“ finden Sie unter SAP-Daten-API mit Evolve.

Sie können Skripte für die SAP-Daten-API erstellen und die Skripte mit Studio an Evolve senden. Weitere Informationen hierzu finden Sie unter SAP-Daten-API mit Studio.

Für den Zugriff auf eine beliebige API ist ein Routenpräfix erforderlich. Bei einem Routenpräfix handelt es sich um eine Kombination aus Evolve URL und bestimmten Schlüsselwörtern.

Für die Evolve URL muss der Benutzer die Portnummer angeben, es sei denn, es handelt sich nicht um die Standardportnummer. Wenn wir beispielsweise eine Evolve Website am Standardport 80 haben, können wir beide der folgenden Evolve URLs für den Zugriff auf die API verwenden.

  • http://cha-de-vstpnx1.wsdt.local:80/svr/api/v1/Processextn/GetAllAssignments

  • http://cha-de-vstpnx1.wsdt.local/svr/api/v1/Processextn/GetAllAssignments.

Für die drei Sicherheitsoptionen gibt es die folgenden Routenpräfixe, die für den Zugriff auf die API verwendet werden müssen:

Geheimer Clientschlüssel: „<Evolve URL>/svr“

Sicherheitstoken: „<Evolve URL>/svr“

Zertifikat: „<Evolve URL>/svrc“

Hinweis: Wenn der Benutzer für die SAP-Daten-API eine Lösung auswählt, um die URL der SAP-Daten-API-Lösung anzuzeigen, wird sie wie folgt angezeigt: „<BaseURL/GatewayURL>/api/v1/SAPIS”.

BaseURL/GatewayURL: Routenpräfix

BaseURL: Evolve URL

GatewayURL: „svr“ für den geheimen Clientschlüssel und das Sicherheitstoken, „svrc“ für das Zertifikat.

Anforderungs- und Antworttext

Die Struktur des Anforderungs- und Antworttextes zum Hochladen und Herunterladen von Daten aus SAP mithilfe der SAP-Daten-API sieht wie folgt aus:

Anforderung:

Der Anforderungstext enthält Folgendes:

Name Typ Einschränkungen Beschreibung
SolutionDetail JObject Erforderlich

Informationen zur Lösung mit folgenden Parametern:

  • SolutionName: Name der SAP-Daten-API-Lösung.

    Typ: String.

    Einschränkung: erforderlich.

  • LibraryName: Bibliotheksname der SAP-Daten-API-Lösung.

    Typ: String.

    Einschränkung: erforderlich.

  • AppName: Anwendungsname der SAP-Daten-API-Lösung.

    Typ: String.

    Einschränkung: erforderlich.

 

RunParameter JObject Erforderlich Definiert die Daten, die in SAP validiert/gebucht werden sollen. Felddetails finden Sie im Beispiel zur Eingabenutzlast. Welche Daten definiert werden müssen, hängt von der spezifischen Ausführung ab.
SAPDetails JObject Erforderlich

Enthält Informationen zur Lösung mit folgenden Parametern:

  • ConnectionName: SAP-Verbindungsname, unter dem die API ausgeführt werden soll.

    Typ: String.

    Einschränkung: erforderlich.

  • EvolveUser: Benutzername des Benutzers, der die SAP-Daten-API ausführt. Evolve muss die Rolle Urheber innehaben.

    Typ: String.

    Einschränkung: erforderlich.

    Beispiel: wse\\username

    („wse“ steht für die Domäne,

    „username“ für den Namen des Benutzers.)

  • SAPUser: Name des SAP-Benutzers zum Herstellen einer SAP-Verbindung.

    Typ: String

    Einschränkung: optional

  • SAPPassword: Kennwort für SAPUser.

    Typ: String.

    Einschränkung: optional

  • SAPLanguage: SAP-Sprachwert, der beim Herstellen einer SAP-Verbindung in einer bestimmten Sprache mitgesendet werden soll.

    Typ: String.

    Einschränkung: optional

  • WindowsCredentials: Benutzername und Kennwort für die Windows-Authentifizierung, wenn die Authentifizierung mit Windows-Anmeldedaten erfolgen muss.

    Typ: JObject von Benutzername und Kennwort. Siehe das Beispiel zur Eingabenutzlast.

    Einschränkung: optional

Es wird empfohlen, SAP-Anmeldedaten oder Windows-Anmeldedaten auf Evolve für Evolve Benutzer zu speichern, damit das Klartextkennwort beim Netzwerkaufruf nicht traversiert wird, während die API über einen Drittanbieter-Client ausgeführt wird.

RequestParameter JObject -

Enthält Informationen zu folgendem Parameter:

  • Validieren: Dieser Wert wird auf „Wahr“ gesetzt, wenn Daten nur validiert werden müssen (und nicht in SAP gebucht werden müssen).

    Typ: boolesch.

    Einschränkung: optional

Antwort:

Der Anworttext enthält Folgendes:

Name Typ Einschränkungen Beschreibung
RunResponse JObject -

Enthält Informationen zur erfolgten Ausführung mit folgenden Parametern:

  • Erfolg: Gibt „Wahr“ zurück, wenn die Ausführung erfolgreich war, ansonsten „Falsch“.

    Typ: boolesch.

  • LogField: Diese LogField-Informationen ähneln den Details, die wir im Protokollfeld nach der Ausführung über den Studio Client erhalten.

    Typ: String.

  • RunResult: Json-Objekt, das von SAP zurückgegebene Felder enthält, die als Download-Felder zugeordnet sind. Details finden Sie im Beispiel zur Ausgabenutzlast.

    Typ: JObject (die Werte in diesem Feld werden entsprechend dem zurückgegebenen Ergebnis der Ausführung geändert).

 

Fehler:

Der Fehlertext enthält Folgendes:

Name Typ Einschränkungen Beschreibung
Festes Array für Fehlerspezifikationen Jarray -

Enthält Informationen zur erfolgten Ausführung mit folgenden Parametern:

  • ErrorCode: Gibt einen Fehlercode zurück, wenn die Ausführung fehlschlägt.

    Typ: String.

  • Message: Gibt eine Nachricht zum zurückgegebenen ErrorCode zurück.

    Typ: String.

  • errorParameters: Wenn die Ausnahme andere Details enthält, die nicht Teil von „Message“ sind, sind diese Details Teil von „errorParameters“. Andernfalls wird null zurückgegeben.

    Typ: Zeichenfolgenarray.

Anforderungs- und Antwortbeispiel

API-Spezifikation für Transaction

Die Nutzlast zeigt eine kombinierte Liste aus Eingabenutzlast, Ausgabenutzlast und Fehlernutzlast an.

Nutzung der Eingabe- und Ausgabenutzlast: Für Transaction und BAPI muss der Benutzer die Eingabenutzlast auswählen, um die Daten in SAP zu buchen, und die Ausgabenutzlast, um die Daten aus SAP herunterzuladen.

Die Fehlernutzlast ist für Transaction/BAPI/Query üblich und zeigt dem Benutzer einen Fehler an.

Anforderungsbeispiel:

Kopieren
Anforderungsnutzlast
{
"SolutionDetail": {
"SolutionName": "string",
"LibraryName": "string",
"AppName": "string"
},
"RunParameter": {
"Material_Number": "string",
"Material_Description__Short_Text_": "string",
"Gross_Weight": "0.0",
"Net_Weight": "0.0"
} ,
"SapDetails": {
"ConnectionName": "string",
"EvolveUser": "string",
"SAPUser": "string",
"SAPPassword": "string",
"SAPLanguage": "string",
"WindowsCredentials": {
"UserName": "string",
"Password": "string"
}
},
"RequestParameter": {
"Validate": "bool"
}
}

Antwortbeispiel:

Kopieren

Antwortnutzlast

{
"RunResponse":{
"Success": "bool",
"LogField": "string",
"RunResult": {
"Base_Unit_of_Measure": "string",
"Material_Group": "string",
"Weight_Unit": "string"
}
}
}

Fehlerbeispiel:

Kopieren
Fehlernutzlast
[
{
"ErrorCode": "string",
"Message": "string",
"errorPrameters": [{"string"}]
}
]

API-Spezifikation für Query

Die Nutzlast zeigt eine kombinierte Liste aus Eingabenutzlast, Ausgabenutzlast und Fehlernutzlast an.

Nutzung der Eingabe- und Ausgabenutzlast: Für Query muss der Benutzer die Eingabenutzlast auswählen, um die Kriterienfelder des Klauselgenerators zu übergeben. Die Ausgabenutzlast wird verwendet, um Daten aus SAP herunterzuladen.

Die Fehlernutzlast ist für Transaction/BAPI/Query üblich und zeigt dem Benutzer einen Fehler an.

Anforderungsbeispiel:

Kopieren

Anforderungsnutzlast

{
"SolutionDetail": {
"SolutionName": "string",
"LibraryName": "string",
"AppName": "string"
},
"RunParameter": {
"MAKT_Language_Key": {
"EqualToOp1": "string"
}
},
"SapDetails": {
"ConnectionName": "string",
"EvolveUser": "string",
"SAPUser": "string",
"SAPPassword": "string",
"SAPLanguage": "string",
"WindowsCredentials": {
"UserName": "string",
"Password": "string"
}
},
"RequestParameter": {
"RecordCount": "0",
"GetRecordsCountOnly": "bool"
}
}

Antwortbeispiel:

Kopieren

Antwortnutzlast

{
"RunResponse":{
"Success": "bool",
"LogField": "string",
"RecordCount": "0",
"RunResult": [{
"MARA_Material_Number": "string",
"MAKT_Language_Key": "string",
"MAKT_Material_Description__Short_Text_": "string",
"MARA_Gross_Weight": "string",
"MARA_Net_Weight": "string"
}]
}
}

Fehlerbeispiel:

Kopieren

Fehlernutzlast

[
{
"ErrorCode": "string",
"Message": "string",
"errorPrameters": [{"string"}]
}
]