SAP .net connector |
Auteur : Jerome Fortias www.sap-integration.net |
|
 |
Je vous propose une 3°eme partie à ma série d'articles sur SAP, consacrée au SAP .net connector et au développement SAP avec Microsoft Visual Studio. Lire aussi : SAP MS.net intégration
|
Source : www.sap-integration.net
Jérôme Fortias alias "Bluerp"
Prérequis :
Visual Studio 2003, JRE, et Dotnet 1.x
Pour faire suite à mes deux précédents
articles sur SAP et le webdevdeloppement, je vous propose de
réaliser une première application et de
découvrir le SAP.Dotnetconnector version 2.0. Celui-ci est
téléchargeable sur http://service.sap.com/connectors.
(accés payant et réservé)
Je reviendrai sur certains aspects de gestion de projets en
conclusion.
CREATION DE VOTRE PREMIERE APPLICATION SAP.NETCONNECTOR
1 – Créez un Winform ou un webform.

Créez avec Visual Studio un winform et ajoutez
• txtSalesOrg : textbox pour le n° de Sales
Organisation (+ un label)
• txtCustID : textBox pour le n° de Clients (+ un
label)
• Un Bouton butGo
• Un dataGrid dataGridResult
2 – Ajoutez un proxy SAP
Cliquez (click de droite) dans la fenêtre solution
explorer sur ADD/ADD NEW ITEM

Dans la fenêtre Solution explorer cliquez sur Rebuild.
3 – Connecter à la machine SAP
Allez dans la fenêtre Server Explorer un petit logo
SAP doit apparaître. Si ce n’est pas le cas cliquez
sur le bouton Refresh 
Puis faites un click droit sur l’icône
Application Servers

Pour ajouter un systeme SAP sur votre Visual Studio, deux
méthodes sont disponibles. SAPLOGON.INI Based
Logon Settings qui récupère les
paramètre de votre SAPGUI, et Custom Logon
Settin?????i??º??gs. En fonctions de certains
patch Windows et/ou SAP la première option peut poser
problême. Je vous conseille donc d’utiliser la
seconde option.

Entrez les informations sur votre login, password, client, etc
…Pour accéder au mot de passe cliquez sur la
flèche.
Ainsi configuré vous avez maintenant
accès au Business Object Repository (BOR) de SAP, la liste
de toutes les objets SAP ( BAPI, fonctions, zfonctions,
méthodes, structures, etc…)
Vous pouvez maintenant accéder au BOR via un tri
alphabetical ou hierarchical.
L’autre méthode possible est
d’accéder aux fonctions et BAPI (une BAPI est une
fonction « normalisée »).
Pour cela fait un click droite, cliquez sur Add
Function Filter …

Remplissez la fenêtre ci-dessous. * est un jocker.

Cliquez sur OK … retournez sur votre
fenêtre Server Explorer.

Dans le dossier SALES ORDER nom du filtre, on clique droite
sur la fonction BAPI_SALESORDER_GETLIST puis Add to
Designer.

Dans votre designer vous avez maintenant les objets suivants
disponibles…
A cette étape faites un rebuild CTRL+SHIFT+B
4 - Implémentation de la BAPI dans
l’application.
Retournez sur le design de votre application et cliquez sur le
bouton pour accéder au code.

Nous allons maintenant
imp?????i??º??lémenter notre code …
En premier lieu nous allons faire appel à des
constructeurs pour initialiser les objets que nous allons utiliser.

Nous créons ainsi un objet correspondant
à la table renvoyée par cette BAPI (la liste des
commandes) un object pour le message d’erreur ou de
succès renvoyés par la BAPI et nous
créons un object proxy
généré par le SAP.netconnector.
Il est important de comprendre que l’appel
d’une BAPI peut impacter de nombreuses tables
utilisées par la BAPI. Certaines BAPI donne mal à
la tête tellement elles sont lourdes.
On va maintenant créer la chaine de connection SAP

On retrouve le principe de toute chaîne de connexion
comme pour SQL.
ASHOST = < IP DE LA
MACHINE SAP >
USER = < USER SAP >
PASSWD=< PASSWORD DU USER SAP >
CLIENT = < NUMERO DE CLIENT >
SYSNR = < NUMERO DE SYSTEME >
Nous allons maintenant faire appel à un bon vieux try/catch
des familles
Trés pratique l’assistant de visual
studio

Vous n’avez plus qu’à compiler
votre application, ça marche ;) Facile.
Note : La connaissance de ABAP et de
l'écriture de Zfonction sur SAP est un sacré
plus. Cela permet d'écrire des fonctions qui
réduisent le nb d'échanges entre un
systèeme SAP et .net. Imaginer que vous deviez
créer une liste de commande. De manière classique
vous devriez faire un ORDER_GET_LIST et une série de
ORDER_GETDETAIL?????i??º?? depuis votre code c# avec un cout
réel quand la performance (a chaque fois établir
un RFC, récupérer toutes les données y
compris celles qu'on n'utilise pas...). Alors que vous pourriez
écrire une zfonction qui ferait tout se travail sur le
système SAP même et faire appel à un
seul RFC qui vous traiterait que les données
nécessaires. C# + Sap.netconnector c'est bien, mais ajoutez
ABAP + SE37 c'es encore mieux.
CONCLUSION
Le sap.net connector est un outil puissant qui permet de
réaliser des applications Winform, Webform et Webservice
performantes. Les avantages sont :
- Un outil Visual Studio.net beaucoup plus pratique et
productif que l'environnement SAP (SE80).
- Moins de relation avec l'administration système
SAP souvent trés lourde et lente.
- Moins de risque de voir son serveur en Time-out permanent
pour cause d'utilisation de la machine pour d'autre process SAP.
Reste qu'ils existent de nombreuses différences
culturelles entre le monde SAP et Microsoft.
Sur SAP (+ABAP) on implémente des business process
essentiellement en restant dans le cadre de SAP même via SAP
Gui, scénario d'intégration inclus
grâce à ALE, voir XI. La programmation est
l'exception et se fait souvent via des users exit et dans tous les cas
dans le "sand box" de SAP. On a une approche trés
castée et verticale.
Dans le monde IT on met avant tout des
fonctionnalités techniques (approche horizontale) dans
lequel on va intégrer chaque business process. On ne profite
pas d'un cadre aussi "confortable/contraignant" que sur SAP
même.
L'impact est réel quand à la gestion de
projet. On ne peut pas gérer un projet SAP.netConnector
comme un proje?????i??º??t SAP classique. Pour ma part je
conseille une approche utilisant les outils UML pour la phase de
modélisation même pour de petits projets afin
d'avoir un support unique entre consultants fonctionnels et techniques,
ainsi que l'utilisation de MS Project. La raison est simple sur .net la
frontière entre fonctionnels et techniques n'est pas aussi
franche et visible. Pourtant on ne peut réduire SAP
à un simple backware ERP qui serait vue comme une simple
bibliothèque d'objets. La compréhension de ces
deux mondes ou même le temps n'a pas la même valeur
est essentielle pour vendre et réussir ce type de projets.
Le paradoxe des deux tours d'ivoire.
On peut voir SAP et Microsoft comme deux tours d'ivoires ou chacun
resterait bien au chaud dans sa pièce de sa tour. Si on
poussait l'analogie on pourrait penser que construire un pont (le
SAP.netconnector) suffirait...Pour ma part je pense qu'aussi bien en
terme de gestion de projet que de ressources humaines c'est une erreur.
Il faut plutôt voir SAP et Microsoft comme deux piliers d'une
nouvelle tour. Ce qui nécessite avant tout d'être
BI (et SAP, et Microsoft) puis de prendre le meilleur de chaque
côté et de contruire une nouvelle culture. Et
franchement le jeu en vaut largement la chandelle. Ainsi un consultant
fonctionnel devrait compléter sa connaissance avec une
connaissance fonctionnelle des outils techniques.
La technologie Dotnet permet de développer
trés rapidement des applications pour Web, Windows et
périphériques mobiles. A titre d'exemple nous
avons réalisé avec mon binome une démo
d'application de relevé de compteur en 2 heures seulement
avec webservice sur Web Application Server pour la partie m.a.j des
données.
Deplus je fais le pari d'une fusion
prochai?????i??º??ne SAP Microsoft avec de trés
forte synergie entre ces deux marques. La base meme de SAP est super et
a largement fait ses preuves, mais certaines extensions de SAP
souffrent de sacrés défauts (MAM, XI, ...) et
pourraient être remplacées par des applications
Microsoft.
La bonne nouvelle pour les pro DotNet est que à
l'époque SAP c'était plutot orienté
vers JAVA. Mais le vent tourne, et cela sent trés bon...
Quid du temps de formation :
Former une personne à SAP.netconnector
dépend de sa compétence.
- Un développeur Java connaissant JCo de
SAP et un peu de C# aura besoin d'une journée au plus.
- Un développeur C# confirmé
sans connaissance sur SAP aura besoin de 2 à 5 jours de
formation.
Reste qu'il est aussi intéressant de
former les consultants fonctionnels SAP (métier) non pas
à la programmation (quoique je l'ai fait une fois avec
succés) mais à la culture et technologie IT.
L'objectif dans ce cas est de permettre aux consultants fonctionnels
(métier) SAP d'avoir une compréhension
fonctionnelle des outils IT (webservices, mobile device, portal).
Pour information : Je donne des cours et réalise des POC sur tout ce qui concerne l'intégration SAP et Microsoft .net. Mes références : Metalor (Suisse), TOT (Thailand), Codit(Belgique), etc...
Amicalement (Soyez BI)
Jerome
(Bluerp)
PS : le plan de mes articles ne suit pas ce qui
était initialement prévu....Le prochain article
sera sur BSP WAS puis MS Biztalk
bluerp le
28/08/2008 (31 026 hits) |
|