Réponse acceptée !
SAP ne permet pas l'accès direct à sa base de données.
Seuls des partenaires y sont autorisés dans le cadre de développement de produits tels que ERPConnect.net
Voici quelques possibilités qu'offre SAP en standard:
SAP .Net connector (à récupérer ici: https://service.sap.com/connectors)
expose les fonctions RFC et BAPI (standards et spécifiques client) dans Visual Studio (jusqu'à la version 2003)
pour visual studio 2005 ou 2008, il suffit (mais ce n'est vraiment pas idéal):
de créer le wrapper sous Visual Studio 2003 (avec SAP .Net Connector)
d'utiliser l'assembly dans le projet sous VS2005 ou VS2008
ActiveX pour appel direct RFC
[ Lien ] ou
[ Lien ] (version unicode)
permet de créer des tables et des structures en mémoire
[ Lien ] ou
[ Lien ] (version unicode)
permet de gérer un pool de fonctions RFC (standards et spécifiques client) existantes sur SAP
[ Lien ] ou
[ Lien ] (version unicode)
permet de se connecter au système SAP
L'appel des fonctions RFC et BAPI ainsi que le résultat obtenu dépendent des autorisations dont dispose l'utilisateur (code user utilisé pour se connecter au système SAP).
Pour exécuter des requêtes style "SQL" , il existe une fonction RFC standard : RFC_READ_TABLE
attention, les autorisations nécessaires sont celles nécessaire à l'utilisation de la transaction SE16
l'objet d'autorisation S_TABU_DIS est contrôlé
il est possible que l'interrogation par SE16 soit interdite chez le client (c'est le cas dans la société où je travaille)
Autre solution:
Créer des queries SAP (SAP Query, Infoset Query)
Créer une transaction spécifique qui pointe sur le programme standard SAP_QUERY_CALL
Appeler à distance cette transaction par la fonction RFC : RFC_CALL_TRANSACTION
s'arranger pour que le résultat de la requête soit un fichier sauvegardé localement
Ce qui précède n'est valable que pour l'interrogation des données!
Pour la mise à jour ou la création, seules les BAPI et fonctions RFC le permettant sont utilisables!
Il est possible de créer une fonction RFC générique (on passe une instruction abap sql en paramètre) mais SAP interdit formellement qu'un programme spécifique client (la fonction RFC générique en serait une puisqu'elle n'existe pas en standard) modifie le contenu des tables standards.
Espérant avoir apporté mon aide,
Cordialement
Laurent