L'API SAP Data permet de télécharger des données vers et depuis SAP. Cette API est disponible pour Evolve et Studio Manager. L'API expose le contenu JSON et d'autres détails (comme les paramètres d'exécution de SAP, etc.) pour publier des données sur SAP. Le RSI sera synchronisé pour tous les environnements (Développement, QA et Production) mais la facturation ne sera exécutée que pour le système de production.
L'API SAP Data ne prend pas en charge les scripts chaînés ou plusieurs scripts. L'API SAP Data prend en charge uniquement une transaction unique. Evolve Web et Service Worker ne prennent pas en charge les transactions basées sur des scripts GUI, ce qui signifie qu'elles ne sont pas non plus prises en charge par l'API SAP Data. Les requêtes avec des critères IN utilisant un chemin d'accès dynamique vers un fichier fixe ou défini par l'utilisateur ne sont pas prises en charge.
Conditions requises
Voici les deux conditions prérequises à l'utilisation de cette fonctionnalité.
-
La licence d'API SAP Data doit être activée sur le système Evolve.
-
La valeur de la clé SapIntegrationAPIEnable doit être définie sur True.
Une fois la licence correctement activée, l'application configurera également la variable système SapIntegrationAPIEnable et la définit sur to automatiquement dans les Paramètres avancés ( Administration → Système → Paramètres avancés). Pour désactiver la fonction SAP, définissez cette valeur sur false.
Seuls les Administrateurs globaux sont autorisés à ajouter ou gérer les licences. La licence d'intégration SAP est la licence requise pour l'API SAP Data ; le type peut être Abonnement (Par niveau -bande de niveau) ou Abonnement (Volume - Bande de volume). La clé des Paramètres avancés SapIntegrationAPIEnable ne peut être activée que si l'utilisateur dispose d'un type de SKU de licence d'intégration SAP valide. SapIntegrationApi est sécurisé par l'API gateway et son mécanisme d’authentification pris en charge.
Vous pouvez accéder à l'API SAP Data à partir d'Evolve. Pour les détails sur l'enregistrement des solutions des API SAP Data sur Evolve, les paramètres d'approbation de l'API SAP, et l'ajout ou la mise à jour de l'API SAP depuis l'onglet Solutions, voir API SAP Data avec Evolve.
Vous pouvez créer des scripts pour l'API SAP Data et transmettre ces scripts à Evolve via Studio. Voir API SAP Data avec Studio pour en savoir plus.
Pour l'accès à une API quelconque, le Préfixe de routage est requis. Le préfixe de routage est une combinaison de l'URL d'Evolve et de mots-clés spécifiques.
Pour l'URL d'Evolve, l'utilisateur doit spécifier le numéro de port, sauf s'il ne s'agit pas du numéro de port par défaut. Par exemple, si nous disposons d'un site Evolve au port 80 par défaut, nous pouvons utiliser les deux URL Evolve ci-dessous pour accéder à l'API.
-
http://cha-de-vstpnx1.wsdt.local:80/svr/api/v1/Processextn/GetAllAssignments
-
http://cha-de-vstpnx1.wsdt.local/svr/api/v1/Processextn/GetAllAssignments.
Pour trois options de sécurité, les préfixes de routage suivants doivent être utilisés pour accéder à l'API :
Code secret client : “<Evolve URL>/svr”
Jeton de sécurité : “<Evolve URL>/svr”
Certificat : “<Evolve URL>/svrc”
Pour l'API SAP Data, lorsque l'utilisateur sélectionne une solution pour afficher l'API SAP Data, l'URL de solution s'affiche sous la forme « <BaseURL/GatewayURL>/api/v1/SAPIS ».
BaseURL/GatewayURL est le préfixe de routage.
BaseURL : URL d'Evolve
GatewayURL : “svr” pour le code secret client et le jeton de sécurité et “svrc” pour le certificat.
Corps de la requête et de la réponse
Pour charger et télécharger des données à partir de SAP à l'aide de l'API SAP Data, la structure du corps de la requête et de la réponse sera la suivante :
Requête :
Le corps de la requête contient les éléments suivants :
Nom | Type | Restriction | Description |
---|---|---|---|
SolutionDetail | JObject | Obligatoire |
Informations sur la solution avec les paramètres suivants :
|
RunParameter | JObject | Obligatoire | Définit les données qui doivent être validées/publiées sur SAP. Reportez-vous à l'exemple de charge utile d'entrée pour les détails du champ. Les données à définir dépendent de chaque exécution spécifique. |
SapDetails | JObject | Obligatoire |
Contient des informations sur la solution avec les paramètres suivants :
Il est conseillé d'enregistrer les informations d'identification SAP ou Windows sur Evolve en fonction de l'utilisateur Evolve, afin d'éviter que le mot de passe ne soit transmis en texte clair via l'appel réseau lors de l'exécution de l'API par un client tiers. |
RequestParameter | JObject | - |
Ce champ contient des informations sur les paramètres suivants :
|
Réponse :
Le corps de la réponse contient les éléments suivants :
Nom | Type | Restriction | Description |
---|---|---|---|
RunResponse | JObject | - |
Contient des informations sur l'exécution avec les paramètres suivants :
|
Erreur :
Le corps de l'erreur contient les éléments suivants :
Nom | Type | Restriction | Description |
---|---|---|---|
Tableau fixe pour les spécifications d'erreur | Jarray | - |
Contient des informations sur l'exécution avec les paramètres suivants :
|
Exemple de requête et de réponse
Spécification d'API pour Transaction
Exemple de requête :
Charge utile de la requête
{ "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" } }
Exemple de réponse :
Charge utile de la réponse
{ "RunResponse":{ "Success": "bool", "LogField": "string", "RunResult": { "Base_Unit_of_Measure": "string", "Material_Group": "string", "Weight_Unit": "string" } } }
Exemple d'erreur :
Charge utile de l'erreur
[ { "ErrorCode": "string", "Message": "string", "errorPrameters": [{"string"}] } ]
Spécification d'API pour Query
Exemple de requête :
Charge utile de la requête
{ "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" } }
Exemple de réponse :
Charge utile de la réponse
{ "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" }] } }
Exemple d'erreur :
Charge utile de l'erreur
[ { "ErrorCode": "string", "Message": "string", "errorPrameters": [{"string"}] } ]