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.
-
Utilisez « ErrorCode » de la réponse de l'API, au lieu du champ « Message ». Certains codes d'erreur, les données du champ Message peuvent être en anglais, d'autres, dans la langue par défaut de l'utilisateur.
-
Conformément à la norme JSON, « \ » n'est pas une chaîne valide, car le validateur JSON ne prend pas en charge ce caractère. Par conséquent, vous devez ajouter « \\ » pour reconnaître les données « \ ».
-
Pour la prise en charge du caractère d'échappement pour JSON, vous devez le faire précéder de « \ ».
Par exemple : « \n » et « \t » passera par le validateur JSON, mais ils seront remplacés par un espace. Vous devez donc utiliser \\n et \\t.
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
La charge utile montre la liste combinée des charges utiles d'entrée, de sortie et d'erreur.
Format de date et de nombre
Le format de date ISO est sélectionné, car il est bien connu et largement utilisé. Il est utilisé dans différentes langues et convient parfaitement pour le convertir au format de profil utilisateur SAP.
Le format de date et de nombre suivant est transmis dans le contenu de l'API SAP. Le format de la date et du nombre est validé.
Format de date (« aaaa-MM-jj »), par exemple, (2021-06-09)
Format décimal (99999999.999), par exemple, (12345.678)
Utilisation de la charge utile d'entrée et de sortie : pour Transaction et BAPI, l'utilisateur doit sélectionner la charge utile d'entrée pour publier les données SAP et la charge utile de sortie pour télécharger les données depuis SAP.
La charge utile d'erreur est commune pour Transaction/BAPI/Query et elle affiche l'erreur à l'utilisateur.
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
La charge utile montre la liste combinée des charges utiles d'entrée, de sortie et d'erreur.
Utilisation de la charge utile d'entrée et de sortie : pour Query, l'utilisateur doit sélectionner la charge utile d'entrée à transmettre les champs de critère du constructeur de clause et la charge utile de sortie sera utilisée pour télécharger les données depuis SAP.
La charge utile d'erreur est commune pour Transaction/BAPI/Query et elle affiche l'erreur à l'utilisateur.
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"}] } ]