DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions SAP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
SAPExécute (Fonction)
En anglais : SAPExecute
Appelle une fonction ou BAPI synchrone sur un système SAP.
Remarque : il est conseillé d'utiliser les assistants pour exécuter une fonction (ou BAPI). Deux assistants sont disponibles et génère tout le code nécessaire :
  • assistant de la fonction SAPExécute : saisissez "SAPExécute(" dans l'éditeur de code et renseignez les informations demandées.
  • assistant d'utilisation d'une fonction SAP : cet assistant génère des procédures globales contenant tout le code nécessaire à l'utilisation des BAPI. Cette méthode est conseillée.
    Pour lancer cet assistant, sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez "Une fonction SAP".
    Pour plus de détails, consultez Accès Natif SAP.
Exemple
// Code généré par l'assistant de la fonction SAPExécute
STRETURN est une Structure
TYPE est une chaîne
CODE est une chaîne
_MESSAGE est une chaîne
LOG_NO est une chaîne
LOG_MSG_NO est une chaîne
MESSAGE_V1 est une chaîne
MESSAGE_V2 est une chaîne
MESSAGE_V3 est une chaîne
MESSAGE_V4 est une chaîne
FIN
 
STBAPI1090_2 est une Structure
_CURRENCY est une chaîne
CURRENCYISO est une chaîne
ALT_CUR est une chaîne
VALID_TO  est une Date
LONG_TEXT est une chaîne
FIN
 
tCURRENCY_LIST est un tableau de 0 STBAPI1090_2
st_RETURN est un STRETURN
 
st_sRETURN est un STRETURN
SI PAS SAPExécute(IDSAP, "BAPI_CURRENCY_GETLIST", "RETURN,CURRENCY_LIST",st_RETURN,tCURRENCY_LIST) ALORS
Erreur("Echec de la récupération des devises",ErreurInfo())
   RETOUR
FIN
// Fin du code généré
 
Trace(st_RETURN:_MESSAGE)
 
nNbLigne est un entier = TableauInfo(tCURRENCY_LIST, tiNombreTotal)
Trace(nNbLigne)
stCurr est un STBAPI1090_2
POUR i = 1 À nNbLigne
stCurr = tCURRENCY_LIST[i]
Trace(stCurr:CURRENCYISO + " : " + stCurr:LONG_TEXT + " date= " + stCurr:VALID_TO.Année)
FIN
Syntaxe
<Résultat> = SAPExécute(<Identifiant de la connexion> , <Nom de la fonction> , <Liste des paramètres> [, <Valeur du paramètre 1> [... [, <Valeur du paramètre N>]]])
<Résultat> : Booléen
  • Vrai si la fonction a été exécutée,
  • Faux en cas d'erreur. La fonction ErreurInfo permet d'obtenir plus de renseignements sur le problème rencontré.
<Identifiant de la connexion> : Entier
Identifiant de la connexion renvoyé par la fonction SAPConnecte.
<Nom de la fonction> : Chaîne de caractères
Nom de la fonction à appeler.
<Liste des paramètres> : Chaîne de caractères
Liste des noms ABAP des paramètres, séparés par des virgules.
<Valeur du paramètre 1> : Type attendu
Valeur des paramètres, dans l'ordre de la <Liste des paramètres>. Dans le cas de paramètres de sortie, il faut indiquer une variable. Lorsqu'un paramètre est passé sans valeur, SAP ne prend pas la valeur par défaut, mais la valeur "vide" correspondant au type.
<Valeur du paramètre N> : Type attendu
Valeur des paramètres, dans l'ordre de la <Liste des paramètres>. Dans le cas de paramètres de sortie, il faut indiquer une variable. Lorsqu'un paramètre est passé sans valeur, SAP ne prend pas la valeur par défaut, mais la valeur "vide" correspondant au type.
Composante : wd290mess.dll
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
RFC_READ_TABLE
Pour RFC_READ_TABLE, il faut être vigilant car le buffer max par ligne par défaut est de 512 octets.

Pour les petites tables, çà ne pose pas de problème, mais pour celles qui ont beaucoup de colonnes, il faut préciser les colonnes, l'offset et la longueur de chaque colonne pour que çà passe.

Ne pas hésiter à utiliser ROW_COUNT pour limiter les retours par transactions, sap est assez lent. les tables temporaires sont à privilégier pour les données courantes (PCG, PMT, LFA, etc..

Pour récupérer les nombre signés, il faut passer par BBC_RFC_READ_TABLE, ou surcharger la Bapi dans sap.

Pour les Bapi utiles en écriture :
- BAPI_PO_CREATE
- BAPI_INVOICE_CREATE
- ETC.

Commencer par implémenter les structures et tableaux obligatoires, puis étendre.

Standardiser avec les objets et un accès REST pour plus de simplicité.

Qualification de l'info: Je fais du SAP avec WD depuis janvier 2008, j'ai un peu roulé.

Si vous êtes dans la merde: aal666 <arobiz> pm.me
Alexandre ARNAUD-LEV
26 aoû. 2021

Dernière modification : 06/02/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale