|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 16 ![]() |
Hello,
Je cherche un peu d'info sur l'utilisation des webservices, je travaille sous ECC 6 et j'aimerais voir les différentes possibilités pour faire des requêtes sur des bases externes au système (potentiellement que du SELECT)... J'ai pensé aux webservices mais peut être y a t'il plus simple ? Si quelqu'un avait une piste pour m'éclairer :) Merci d'avance ! |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 3 ![]() |
Salut,
Concrètement, un web service n'est ni plus ni moins qu'un function module. Une fois créé via SE80, SE37 tu dois le convertir en web service via la même transaction, ce qui générera la virtual interface. Maintenant, en fonction que tu veuilles consommé ou exposé un web service, il y a différente manip à éffectuer dans R/3 afin que la communication puisse être éffectuer avec le système externe. Si tu dois exposer ton web service, il te faudra te connecter sur le système J2EE afin de fournir à ton partenaire la descrition SOAP / XML via le UDDI. Maintenant, il existe d'autre méthode de communication propre à SAP. Il est néanmoins fréquemment utile d'utiliser un outils de type XI afin de gérer et de monitorer un maximum de incoming / outgoing. Cordialement, Mehdi Mehdi |
|
|
00
|
|
|
#3 | |
![]() ![]() Morgan BourgeoisInscription : août 2003 Messages : 1 730 ![]() |
Citation:
Ce que j'ai du mal à cerner pour ma part, n'ayant eu entre le main que des architecture à client lourd SAP Gui for Windows sur une base d'ERP (ECC6, 4?6 etc). Je suppose que, si l'on défini un service c'est effectivement pour qu'il soit consommé par un système externe ou par SAP lui même. Quand tu parles de se connecter sur le système J2EE tu veux dire qu'il y a 2 logon séparés ? Je suis désolé si la question est floue mais j'ai encore du mal à voir comment les outils telles que VIsual Composer, ARIS, ou Composite Application framework sont accédés et çà quoi ressemble concrètement l'utilisation des services sous SAP. Donc si tu avais un petit exemple plus précis je serais preneur
__________________
---------------------------------------------------- Consultant technico-fonctionnel SAP logistique - Mon site sur developpez --------------------------------------------------- Anakin Skywalker turn to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2. |
|
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Bonsoir Cladsam,
Les web services peuvent être générés dans une pile ABAP, configurés de même par LPCONFIG/WSCONFIG/WSADMIN (à partir de NW710SP3 avec SOAMANAGER sur double-pile puisque c'est du Java-webDynpro ou à defaut par un report ABAP dont j'ai oublié le nom). La pile ABAP ne possède pas de registre UDDI pour la publication, d'ou la nécessité de créer une connection avec les différentes API de la norme fournient soit par la pile J2EE ou un UDDI externe. Concernant la question initiale, la problèmatique vient surtout du système source qui fournira le service de requêtes parceque j'imagine que même une lecture simple posera des problèmes de tout genre qu'un connecteur type ODBC doit gérer. Sinon, côté ABAP et interface DB, il existe aussi la possibilité de relier différentes bases de données (en tant que bases secondaires) au système afin de répondre à cette problèmatique. Côté Java, le connecteur JDBC serait idéal. L.
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
Bonjour à tous,
Je me permet de relancer le sujet car je ne connais rien du tout aux web services, ni en java ni même en abap objet, j'ai toujours fait de l'abap standard et voilà que le client me balance : << Tu peux commencer à fouiller sur les webservices… il faut faire une maquette d’un appel externe à partir du portail pour ouvrir une transaction sur le sapgui >>. C'est un peu du chinois pour moi Avez-vous une idée de ce qu'il faut faire/utiliser? Merci d'avance de votre aide |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 16 ![]() |
Salut,
Il faut déjà savoir ce qu'il entend par ouvrir une transaction dans le sapgui ? J'ai eu à créer des objets SAP depuis un portail (CMS) Java, j'ai donc comme medhil l'a expliqué créer un module fonction spécifique en SE80 de type (MF utilisable à distance) puis j'ai créer un service web issu de ce module fonction (clic droit sur le module fonction -> créer -> service web ), je l'ai créer sans sécurité et je gère le login/pass depuis SOAMANAGER (c'est une transaction). Il faut un utilisateur avec certains rôles par exemple moi je lui ai mis les rôles suivants : SAP_BC_WEBSERVICE_ADMIN_BIZ SAP_BC_WEBSERVICE_ADMIN_TEC SAP_BC_WEBSERVICE_CONSUMER SAP_BC_WEBSERVICE_DEBUGGER SAP_BC_WEBSERVICE_OBSERVER SAP_BC_WEBSERVICE_SERVICE_USER + les rôles métiers pour accèder aux données voulues Ensuite y'a quelques manips à faire niveau SICF pour activer les services qui vont bien qui te permettent ensuite d'interroger ton web service. Exemple chez moi, j'ai eu besoin d'activer tout ça : /default_host/sap/bc/echo (incluant les sous-noeuds) /default_host/sap/bc/error (incluant les sous-noeuds) /default_host/sap/bc/soap (incluant les sous_neouds) /default_host/sap/bc/srt/wsdl /default_host/sap/bc/wdvd /default_host/sap/bc/webdynpro (incluant les sous-noeuds) /default_host/sap/public/bc/ur /default_host/sap/public/bc/icons /default_host/sap/public/bc/icons_rtl /default_host/sap/public/bc/webicons /default_host/sap/public/bc/pictograms /default_host/sap/public/bc/webdynpro/ (incluant les sous-noeuds) /default_host/sap/public/icman /default_host/sap/public/icf_info /default_host/sap/public/icf_info/logon_groups /default_host/sap/public/icf_info/urlprefix /default_host/sap/public/myssocntl Après en java, j'ai utilisé le plugin Axis2 pour générer ma classe web service depuis une définition wdsl (que j'ai obtenu par SOAMANAGER) et ensuite pouvoir l'utiliser librement dans mon code. En espérant que ça réponde un peu à tes questions Kévin |
|
|
10
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
Citation:
- Un web service c'est comme une BAPI que tu appelles par internet. Soit le web service est sur un autre système, et tu l'appelles depuis SAP (on dit "consommer un web service"), soit le web service est créé sur SAP pour qu'il puisse être appelé depuis un autre système. Donc, il faudrait que tu nous en dises plus, où est le web service - Habituellement, l'utilisateur se connecte à un système, puis à la transaction. Le portail est un logiciel (l'affichage est souvent via navigateur web) qui ne montre pas la liste des systèmes, mais la liste des transactions tous systèmes mélangés. C'est très souvent connecté à du SSO, c'est-à-dire l'utilisateur se connecte une fois (normalement c'est simplement au démarrage de son ordinateur), et ensuite il n'a plus jamais besoin de s'identifier. Donc ta phrase "à partir du portail pour ouvrir une transaction sur le sapgui" apparaît bizarre, c'est le principe de base du portail. Au fait, tout écran SAPGUI est accessible via navigateur web (il y a peut-être quelques rares écrans qui pourraient ne pas marcher, mais c'est très minoritaire). |
|
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
Bonjour, et merci de vos réponses je reviens avec des precisions (à chaud) :
Il s'agit d'une sorte de hotline : un client appele est saisie son n° de client, l'appel est routé vers un "hotliner" libre à ce moment s'affiche dans l'appli externe à SAP (appli web pour l'instant je n'ai pas plus de détail) le type clique sur le n° de client de la pop up et c'est a ce moment qu'il faut faire entrer en scene le web service qui doit ouvrir la fiche client (SAP) afin que le "hotliner" puisse saisir les infos du client qui est au telephone. Sachant que l'homme sera connecté à SAP et que le web service doit afficher la transaction sur son écran et pas celui du voisin. |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
il y a 2 cas possibles:
1) créer l'écran de saisie des données dans l'application externe, il faut donc 2 web services, un pour lire les données de SAP, et un pour les écrire ensuite dans SAP. 2) l'écran est développé dans SAP, donc il n'y a pas de web service du tout. Dans les 2 cas, il faudrait du SSO. Vu qu'on t'a dit qu'il fallait du web service j'imagine que c'est la solution numéro 1 qui est déjà retenue. Puisque c'est SAP qui "publie le web service", c'est assez facile (plus facile que quand on consomme un web service externe): 1) tu crées un module fonction RFC-enabled, et tu le transformes en web service (option dans le menu détail du module fonction, Utilitaires -> Plus d'utilitaires -> Créer web service -> à partir du module fonction). 2) Ça va te créer une définition de web service, que tu peux voir via WSADMIN, et dont tu peux voir l'URL HTTP/HTTPS pour l'appeler depuis l'extérieur 3) Attention il faut que les administrateurs fassent le paramétrage nécessaire pour que les web services fonctionnent (transaction SICF en particulier, cf post de Kévin). Tu parlais de portail, est-ce que c'est SAP EP? Enfin, si le client dispose de SAP PI, on peut aussi créer le web service dans PI, et il communiquera tout seul par RFC avec le module fonction dans SAP... |
|
|
00
|
|
|
#10 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
Bonjour,
Alors en fait l'écran n'est pas developpé. Actuellement le webservices est créer et on veut qu'a partir du user (avec le sap connecté) lorsque le web service est déclenché ouvrir un nouveau mode avec la transaction standard sap. Depuis mon poste le module fonction est ok, par contre depuis le web service non. Pensez-vous qu'il est possible via le MF du web service de faire ouvrir un nouveau mode sur le poste d'un user (connecté à sap)? |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
on mélange les choux et les carottes là!
par définition, on n'affiche pas d'écran avec un web service (c'est comme pour une BAPI) si tu veux juste afficher un écran SAP via le navigateur, tu n'as qu'à passer par le webgui, l'émulateur d'écran SAP (tu peux aussi faire du BSP ou du Web Dynpro) |
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
je suis désolée si je mélange , je pense que c'est le besoin qui est tordu :
Le type est sur son appli web il a un bouton qui paf doit ouvrir une transaction SAP via le sapgui. Mais je ne pense pas que ça soit possible... surtout que ça serait telement plus simple s'il faisait un ctrl+c ctrl+v du n° de client et aller dans sap ouvrir la fiche client avec... |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
bon on va dire qu'il n'y a pas d'autre choix
tu peux te connecter au SAP GUI pour windows à partir du navigateur web, dixit: http://help.sap.com/saphelp_nw70/hel...f/frameset.htm Ici tu trouveras les explications comment faire: https://forums.sdn.sap.com/thread.jspa?threadID=74529 Je te conseille aussi de lire la note 631198 - Behavior of SAP GUI for Windows in SAP Workplace/Portal, si jamais tu as comme portail SAP EP |
|
|
00
|
|
|
#14 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
Bonjour finalement, nous sommes sur une piste simple :
le web service appel le MF TH_CREATE_FOREIGN_MODE qui permet d'ouvrir la transaction voulu sur le user voulu (en gros j'ouvre XD02 sur le poste du voisin) mon seul souci reste comment passer le n° de client à la transaction ce qui est possible avec ABAP4_CALL_TRANSACTION (mais dans ce cas je ne peux l'ouvrir que sur mon poste...). Donc le probleme n'est plus le web service en lui meme mais de trouver un MF fusion des 2 ci-dessus . Merci pour vos infos sur les web service en tout cas. |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
ça me paraît un peu compliqué comme conception, on ne sait plus qui est client et qui est serveur... Mais bon je ne connais pas les contraintes d'un centre d'appel (mais je les plains en te lisant).
Est-ce qu'il faut vraiment démarrer l'écran à la même "seconde"? On peut pas plutôt envoyer un message pour prévenir l'utilisateur (voir quelle technique utiliser parmi mail, RSS, message instantané SAP, th_popup, liste de travail UWL...), qui peut alors lancer la transaction au moment le plus opportun pour lui? (genre après sa pause urgente!) un web service est sensé être sans interaction (machine-to-machine, cf wikipedia). Ce que tu dois définir, c'est une toute bête requête HTTP. En n'utilisant plus le terme web service, tu éviteras que les gens te posent des questions liées à des vrais web services. Bon voilà c'est dit |
|
|
00
|
|
|
#16 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 205 ![]() |
Ok,
Je comprend j'ai posé la question car on m'a livré le besoin comme ça : le client appele et saisie sont code client. le coup de fil est routé vers un "hotliner" disponible ensuite son application ouvre une sorte de pop-up de prise en charge qui va lancer le web services, web services qui va ouvrir la fiche du client en ligne. Si le type n'est pas à son poste et bien le client rappelera ou se rerouter. Désolée de vous avoir fait perdre votre temps alors...mais si on ne pose pas de questions on avance pas non plus. |
|
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Inscription : août 2009 Messages : 226 ![]() |
excuse-moi je ne voulais pas dire que la demande était du n'importe quoi (c'est juste le mot "web service" qui me chagrine).
Pour faire ce que tu demandes, je me dis qu'il faudrait du RFC où le poste du hotliner sera considéré comme le "serveur RFC" et le système SAP sera le "client RFC". Mais là je ne connais pas trop. |
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 183 ![]() |
Bonjour,
Je ne penses pas que tu puisses ouvrir un fenêtre particulière sur le SAP Gui de quelqu'un d'autre. Et quand bien même ce serait possible, il faudrait que ton client dispose de certaines autorisations, que l'on ne donne pas forcément à des utilisateurs extérieurs. Et imaginons que 50 client fassent une demande sur la hotline, ça veut dire que ton agent va avoir 50 mods qui vont s'ouvrir en même temps, or je ne pense pas non plus que SAP te permettent d'ouvrir autant de mode de manière simultanée. L'idée, je pense, serait plutôt d'utiliser un web service implémenté coté SAP, qui lui même générerait des messages instantané dans SAP pour informer le hotliner que des nouvelles demandes sont en attente (dans ces messages tu peux transmettre toutes les informations voulue, même le numéro de client). De plus, un web service ne doit pas être utilisé dans un cas comme celui-ci. Tout comme les fonctions RFC, les web services permettent d'écrire ou lire des données dans des tables SAP, ou exécuter un bout de code. Dans le portail, si tu veux afficher une transaction particulière de SAP, tu peux toujours utiliser la transaction iView. |
|
|
00
|
|
|
#19 |
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 183 ![]() |
Pour information, si tu veux développer un outil consommant des web services côté portail (SAP EP), tu as deux possibilités: Java Web Dynpro ou ABAP Web Dynpro. Je ne connais pas encore l'ABAP Web Dynpro mais seulement les Java Web Dynpro. Avec le Netweaver Developer Studio, tu peux développer facilement une application Java qui sera déployée sur le portail, et qui pourra consommer des Web Services (ou fonction RFC/BAPI). Tu trouveras ici un tutoriel qui explique un peu la procédure:
http://wiki.sdn.sap.com/wiki/display...ice+in+Java+WD L'avantage de cette méthode, à la différence de l'utilisation du pluggin Axis2, c'est que ton Web Service est implémenté comme un modèle de donné que tu pourras utiliser plus facilement dans l'application que tu développes. La question à se poser est est-ce que le hotliner utilise le portail SAP (SAP EP) ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com