Couplage C# - SAP [Résolu]

Messages postés
28
Date d'inscription
lundi 20 décembre 2004
Dernière intervention
19 mars 2008
- - Dernière réponse : doryam
Messages postés
7
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
30 octobre 2012
- 30 oct. 2012 à 07:25
Bonjour,


Ne connaissant pas SAP, je sollicite l'expérience de connaisseurs afin de m'éclaircir
sur quelques points.


Contexte :

Je dois développer une interface pour faire des requêtes sur un système SAP


Problématique :

Comment attaquer un système SAP. Il existe au moins deux composants utilisables
: SAP .Net Connector et ERPConnect.net ... Mais leur prix (au moins pour
ERPConnect.net) sont exorbitants !

De plus ne connaissant pas SAP, et compte tenu de sa réputation d'être très
complexe, je n'ai aucune idée sur la complexité de mise en oeuvre de requêtes.


Questions :



<li class="MsoNormal" style="">Existe-t-il des moyens peu
onéreux pour attaquer un système SAP ?</li>
<li class="MsoNormal" style="">Quel SGBD et quel type de
langage SQL utilise SAP ?</li>
<li class="MsoNormal" style="">Quelle peut être la
difficulté de créer des requêtes dans visual studio pour récupérer des
informations dans un système SAP (Je maîtrise les langages tels que SQL
Oracle et SQL Server).</li>

Par avance, merci de vos réponses.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
mardi 18 mars 2008
Dernière intervention
17 août 2008
3
Merci
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
    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/WDTAOCX.OCX file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/WDTAOCX.OCX] ou
    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtaocxU.ocx file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtaocxU.ocx] (version unicode)
       permet de créer des tables et des structures en mémoire

    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtfuncs.ocx file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtfuncs.ocx] ou
    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtfuncU.ocx file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtfuncU.ocx] (version unicode)
       permet de gérer un pool de fonctions RFC (standards et spécifiques client) existantes sur SAP

    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtlog.OCX file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtlog.OCX] ou
    [file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtlogU.ocx file:///C:/Program%20Files/SAP/FrontEnd/SAPgui/wdtlogU.ocx] (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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Kniom59
Messages postés
6
Date d'inscription
mardi 18 mars 2008
Dernière intervention
17 août 2008
3
Merci
Je me réponds à moi-même (peut-on modifier ses propres posts?)

Je viens de découvrir ce lien!!!!!

http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/13/localization-fix-for-sap-esa-explorer-for-visual-studio.aspx

ce produit est encore en version beta

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Kniom59
Messages postés
6
Date d'inscription
mardi 18 mars 2008
Dernière intervention
17 août 2008
3
Merci
Quelques liens:

utiliser .net Connector 2.0 avec VS2005:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/92333e6b-0b01-0010-9cbf-fecd62d6c895

Annonce du nouveau produit SAP Entreprise Services Explorer:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c0319dc4-d76d-2a10-d19f-e4f4ff315bde

https://www.sdn.sap.com/irj/sdn/dotnet

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Kniom59
Messages postés
28
Date d'inscription
lundi 20 décembre 2004
Dernière intervention
19 mars 2008
0
Merci
Merci de tes réponses [auteur/KNIOM59/1344825.aspx Kniom59],

Le projet est tombé à l'eau, donc je ne me confronterais pas à SAP tout de suite.
Mais les informations que tu as donné seront utiles à d'autres... Ou à moi plus tard

J'ai juste une remarque : dans ta première réponse, les liens que tu as fourni semblent pointer vers ton disque local... Du coup ils ne sont pas valides

Et oui, tu as apporté une aide claire et précise, merci

Cordialement,
Séb
Commenter la réponse de Gaxx
Messages postés
6
Date d'inscription
mardi 18 mars 2008
Dernière intervention
17 août 2008
0
Merci
J'ai volontairement fait pointer les lients vers mon disque local pour une question de droit. Les fichiers en question sont installés avec le serveur de présentation (SAP Fontend) qui est installé sur le poste de l'utilisateur. Ils sont la propriété de SAP AG

Bonne continuation
Et qui sait, tu auras peut être d'autres questions sur SAP auxquelles je repondrai si possible
Commenter la réponse de Kniom59
Messages postés
1
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
17 juin 2008
0
Merci
Bonjour Laurent,

Je suis en train de réliser des rapports basés sur des données SAP (sous Reporting services). Je n'ai plus de problème pour récupérer des données par la fonction RFC_READ_TABLE mais mes utilisateurs voudraient profiter de mes batchs pour récupérer des données de queries. J'ai associé une transaction à la query, enregistré le script de ma transaction avec enregistrement en local du fichier destination mais à l'exécution via RFC_CALL_TRANSACTION, le fichier ne s'enregistre pas. Sais-tu s'il y a une limitation de la fonction RFC_CALL_TRANSACTION ? Peux-tu préciser ce que tu entends par "s'arranger pour que le résultat de la requête soit un fichier sauvegardé localement" ?
Merci d'avance.

Arnaud
Commenter la réponse de thimymi
Messages postés
6
Date d'inscription
mardi 18 mars 2008
Dernière intervention
17 août 2008
0
Merci
Bonjour Arnaud

"s'arranger pour que le résultat de la requête soit un fichier sauvegardé localement" signifie que tu dois choisir l'option permettant de sauvegarder localement le résultat.
Le format "DBF" me semble le mieux adapté pour la plupart des besoins de mes collaborateurs.
Il est indispensable de positionner la propriété rfcWithDialog de l'objet connection avec une valeur différente de 1 pour que la boîte de dialogue permettant de choisir le nom et le format du fichier puisse s'afficher (elle a besoin de s'appuyer sur le SAPGUI car ce n'est pas un dynpro comme les autres!)

Cordialement
Laurent
Commenter la réponse de Kniom59
Messages postés
1
Date d'inscription
samedi 6 mai 2006
Dernière intervention
5 août 2008
0
Merci
Bonjour,

Je me permet de continuer ce topic de par la proximité du sujet avec ma question.

En effet, dans le cadre du développement d'un outil d'auto-dépannage des mots de passe, je cherche à développer une application .Net (C#) s'interfaçant avec SAP, permetant à un utilisateur de saisir un nouveau mot de passe lui même. 

Je vais sans doute utiliser le connecteur .Net.

Je n'ai pas de connaissance particulière dans le domaine SAP.

J'ai cru comprendre qu'il était possible d'utiliser la fonction "BAPI_USER_CHANGE", mais je ne suis pas sûr de son utilisation dans mon cas précis.

Toute aide serait la bienvenu.

J'accepte les bouts de codes ! =)
Commenter la réponse de bugmenot2
Messages postés
7
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
30 octobre 2012
0
Merci
Bonjour,

J' utilise pour ma part ERPConnect http://www.theobald-software.com/en/products/erpconnect.htm
Sans vouloir faire de la réclame, je trouve ce produit excellent. Il couvre un grand nombre de fonctionnalités permettant de relier l'environnement C# avec SAP.

Doryam
Commenter la réponse de doryam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.