...
Définition
Un service Web est un composant applicatif accessible sur le Web par une interface standard en utilisant des protocoles de communication basés sur le XML indépendamment du système d'exploitation et des langages de programmation utilisés.
Le service Web met à disposition des fonctions (méthodes) sur un serveur HTTP.
Le client du service Web peut invoquer la méthode du serveur aussi simplement que s'il s'agissait d'une fonction locale. Il faut spécifier l'URL du service Web auquel on désire accéder, ainsi que les paramètres d'entrée de la méthode.
WebServiceDIvaWebServiceDiva
WebServiceDiva est une méthode générique permettant d'exécuter une action sur le serveur Web. L'action correspond à un programme Diva. Celui-ci récupère les paramètres (généralement une chaîne <hmp>), effectue le traitement et renvoie un résultat.
Le service est exécuté par le serveur HTTP IIS de Microsoft.
Ancre | ||||
---|---|---|---|---|
|
...
WebServiceDiva est un service Web générique qui sert à lancer tous les services Web DivaERP. La page générique WebserviceDiva.asmx est hébergée sur le serveur IIS de Microsoft. Elle contient la méthode WebServiceDiva qui permet d'exécuter un programme Diva sur le serveur en lui passant des paramètres
Int WebServiceDiva(string action,string param,out string retour)
...
Le programme XwebServices.dhop est exécuté à chaque invocation d'un service Web DivaERP. C'est lui qui lance le programme Diva correspondant à l'action demandée.
Le programme de traitement de l'action est lancé par la fonction ProgramGoto. XwebServices.dhop lui envoie les paramètres par le tunnel.
Actions des services Web
Le paramètre <Action> permet de préciser l'action à exécuter pour ce message. Ce paramètre est obligatoirement une chaîne HMP dans laquelle le paramètre <ACTION> définit le traitement à effectuer. Il fait référence à une action décrite dans le fichier paramètres des actions. Ce fichier contient pour chaque action :
...
L'action « ping » permet de tester les services Web sans avoir à écrire de programme Diva. Elle est directement traitée par le programme XwebServices.dhop. Pour cela elle doit être créée et activée dans le fichier paramètre des actions. XwebServices renvoie un status à 0 et dans le paramètre de retour sa version ainsi que le nom du serveur sur lequel il s'exécute.
La durée de l'exécution de l'action doit être relativement courte. Le client attend la réponse en temps réel. Si le traitement est trop long, la liaison avec le client risque d'être interrompue.
Le service Web Diva ERP est un programme qui n'effectue pas d'affichage.
Si le paramètre Résidente de l'action n'est pas cochée, l'appel du programme se fait par un ProgramCall ce qui est nettement plus coûteux en temps.
Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "ProgramCall" de la documentation Xwin - Programmation.
Ancre | ||||
---|---|---|---|---|
|
Service Web
...
Divalto ERP
Le service Web Diva Divalto ERP est le programme chargé d'exécuter l'action demandée par le client du service Web.
Il récupère dans le tunnel par la fonction PingReceive les paramètres suivants :
WebServiceAction | La chaîne <action>. En plus du paramètre Action, cette chaîne peut comporter des paramètres complémentaires. Elle n'est jamais cryptée. |
WebServiceParameters | Les paramètres d'entrée de l'action. S'il y a plusieurs paramètres, on utilisera de préférence une chaîne au format <hmp>. Pour des besoins de confidentialité, ce paramètre peut être crypté. |
WebServiceParametersUnicode | Chaîne Unicode fournie par Dotnet. |
WebServiceParamAction | Les paramètres complémentaires en provenance du fichier des actions. |
Si l'action est paramétrée résidente
Il traite l'action et renvoie le résultat par la fonction WebServiceReturn.
Il enchaîne au programme XwebServices.dhop par l'instruction ProgramGoto
Si l'action n'est pas paramétrée résidente :
Il traite l'action puis renvoie les résultats dans le tunnel par la fonction Pong
WebServiceStatus | Le compte-rendu. La valeur 0 indique un traitement sans erreur. Une valeur différente de 0 correspond à une erreur de traitement. Dans ce cas, il est préférable de mettre un message d'erreur en clair dans le résultat. |
WebServiceResult | Le résultat ou un message d'erreur. Le résultat peut être crypté lorsque WebServiceStatus est nul. |
WebServiceVersion | (facultatif) Le numéro de version est journalisé dans le fichier XwebServices.log. |
Puis il se termine par l'instruction ProgramExit.
Remarques :
...
Ancre | ||||
---|---|---|---|---|
|
Exemple de service Web
...
Divalto ERP
Bloc de code |
---|
;____________________________________________________________________ ;Description : ; Service Web pour quantité en stock pour une référence article ;____________________________________________________________________ define MaVersion = "6.1 " module "pmstock.dhop" 1 ParamEntree S 1 dos 3,0 1 ref 25 1 stock 12,D2 main ; récupération des paramètres d'entrée PingReceive("WebServiceParameters",ParamEntree) Dos = hmpseek(ParamEntree,"dos",998) ; Dossier par défaut 998 Ref = hmpseek(ParamEntree,"reference","") ; calcul du stock stock = interro_stock(dos,ref) ; réponse if IsProgramCalled = FALSE ; l'action est paramétrée Résidente WebServiceReturn(stock,0) ProgramGoto("xwebservices.dhop") endif Pong("WebServiceStatus",0) ; l'action n'est pas résidente Pong("WebServiceResult",stock) Pong("WebServiceVersion",MaVersion) programexit |
...
Installation du serveur Web
Les services Web Diva Divalto s'appuient sur la technologie .NET de Microsoft.
La mise en œuvre nécessite donc le serveur IIS (Internet Information Services) de Microsoft. Elle nécessite également l'installation du FrameWork .Net sur ce serveur.
Pour le détail de l'installation voir le chapitre « Installation Harmony Web » dans l'installation et paramétrage d'Harmony.
Ancre | ||||
---|---|---|---|---|
|
Client Diva d'un service Web
...
Divalto
La fonction WebServiceDivaExecute permet d'exécuter un service Web DivaDivalto.
Elle comporte 4 paramètres :
...
Confidentialité
Les paramètres d'entrée et de retour peuvent être cryptés pour assurer la confidentialité des informations transmises.
Ancre | ||||
---|---|---|---|---|
|
Exemple de client Diva d'un service Web
...
Divalto
Bloc de code |
---|
;____________________________________________________________________ ;Description : ; Demande la quantité en stock pour une référence article à ; un service Web Diva ;____________________________________________________________________ 1 Url S 1 St X 1 Retour S 1 Stock 12,D2 main ; Appel du service Url = "http://www.divalto.fr/Ws/WebServiceDiva.asmx" St = WebServiceDivaExecute(Url, \ "<action>Stock", \ "<dos>998<reference>ALB0001", \ Retour) ; en cas d'erreur Retour contient le message if St MessageBox(binhexa(stx(St)) & " " & Retour ," ") else Stock = Retour endif ProgramExit |
...