|
|
Ligne 1 : |
Ligne 1 : |
− | {{#customtitle:Consommer un Web Service Sage 1000}} | + | {{#customtitle:Exemple de création d'un dashboard simple}} |
| | | |
− | Nous allons créer un paquet de service local et l'utiliser avec .NET. | + | Nous allons créer un dashboard. L'ouverture de ce dashboard effectuera une requête d'initialisation, et le dashboard pourra invoquer une méthode. |
| | | |
− | ===Création du paquet de service local===
| + | {{tip|La création d'un dashboard créé un paquet métier, le créateur du dashboard doit avoir le droit correspondant.}} |
| + | [[image:dashboard_0.png]] |
| | | |
− | Les étapes sont :
| + | ===Création du dashboard=== |
− | *Création du paquet de stéréotype "Service Local"
| + | |
− | *Occuper le paquet,
| + | |
− | *Ajouter deux classes de stéréotype "Classe non persistantes" maClassParamIn et maClassParamOut (cette étape n'est pas obligatoire, on peut utiliser des types simples)
| + | |
− | *Ajouter une classe de stéréotype "Classe support de service local"
| + | |
− | *Sur cette classe ajouter une opération de service '''Function monOperationDeService(aParamIn:maClassParamIn):maClassParamOut;'''
| + | |
| | | |
− | <source lang='delphi'>
| + | [[image:dashboard_1.png]] |
− | //Function monOperationDeService(aParamIn:maClassParamIn):maClassParamOut;
| + | [[image:dashboard_2.png]] |
− | begin
| + | [[image:dashboard_3.png]] |
− | result := maClassParamOut.Create;
| + | [[image:dashboard_4.png]] |
− | result.monAttribut := 'echo ' + aParamIn.monAttribut;
| + | [[image:dashboard_5.png]] |
− | end;
| + | [[image:dashboard_6.png]] |
− | </source>
| + | [[image:dashboard_7.png]] |
| + | [[image:dashboard_8.png]] |
| + | [[image:dashboard_9.png]] |
| + | [[image:dashboard_10.png]] |
| + | [[image:dashboard_11.png]] |
| + | [[image:dashboard_12.png]] |
| + | [[image:dashboard_14.png]] |
| | | |
− | *Libérer le paquet et le publier dans le référentiel
| |
− | *redémarrer le service, on constate à l'adresse '''http://[hôte]/[service]/server/soap.l1000?wsdl''' que le web service est disponible
| |
− | *le wsdl est visible à l'adresse '''http://[hôte]/[service]/server/soap.l1000?wsdl=TestServiceLocal'''
| |
− | *on remarque en bas du wsdl la ligne <soap:address location=... qui représente le endpoint soap.
| |
| | | |
− | [[image:ConsommerWS 1.png]]
| + | ===Implémentation=== |
| | | |
− | [[image:ConsommerWS 2.png]]
| + | ===Utilisation=== |
| | | |
− | [[image:ConsommerWS 3.png]]
| |
| | | |
− | [[image:ConsommerWS 4.png]]
| + | {{footer}} |
− | | + | [[Category:Portail]] |
− | ===Création du token d'authentification===
| + | |
− | | + | |
− | Outre les combinaisons utilisateur/mot de passe, il est possible de s'authentifier auprès d'un service web grâce à un token.
| + | |
− | Cette méthode est préférable, elle évite la divulgation du mot de passe et permet la révocation d'un token sans révoquer l'utilisateur.
| + | |
− | | + | |
− | [[image:ConsommerWS 5.png]]
| + | |
− | | + | |
− | | + | |
− | ===Consommation du paquet de service local créé===
| + | |
− | | + | |
− | Le web service d'authentification est disponible à l'adresse '''http://[hôte]/[service]/server/soap.l1000?wsdl=Sage1000Authentication'''
| + | |
− | | + | |
− | | + | |
− | [[image:ConsommerWS 6.png]]
| + | |
− | | + | |
− | [[image:ConsommerWS 7.png]]
| + | |
− | | + | |
− | [[image:ConsommerWS 8.png]]
| + | |
− | | + | |
− | [[image:ConsommerWS 9.png]]
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <source lang='csharp'>
| + | |
− | //obtention de la session grâce au token
| + | |
− | Sage1000Auth.TdbmLocalServiceAuthenticationPortTypeClient auth = new Sage1000Auth.TdbmLocalServiceAuthenticationPortTypeClient();
| + | |
− | String session = auth.LocalServiceLoginToken("2E235A772C0D0105F4D1670CD60000005562BD0A1D2A13345A4A84A7D98DC9B7B736B0396E60E957ED499DD29EA3D2F86B832C7B571228B5BC612741A3EA7F17D9162C1E7122DD8DD3F88A8BEC2D6A337D2054DFDEE5331AD760D0C475FA3EBEA4D4A61C72D8ED99BE9006A0BB6BD7D67C8241E12AABEBC31E80D71EA0F7EC96F12731010E9520797256AF74C58AE37E31A5A5C6F83859DCA442DCD36DA814C53F3A66D52F7EC02A53A512D1E077FBEB6F5B85905CA9CA0E479250AE1C514AD12D138A80630AB84D12293CB7D63F7999C88AB211FDCDF29D1635CD1D2290BE1E5FEF7894B8D493BB");
| + | |
− | try
| + | |
− | {
| + | |
− | //Cet objet permet de passer la session lors de l'appel
| + | |
− | ServiceTest.SessionHeader sessionHeader = new ServiceTest.SessionHeader();
| + | |
− | sessionHeader.sessionId = session;
| + | |
− | | + | |
− | ServiceTest.maClassParamIn paramIn = new ServiceTest.maClassParamIn();
| + | |
− | paramIn.monAttribut = "hello world";
| + | |
− | | + | |
− | //invocation du service
| + | |
− | ServiceTest.maClasseSupportServiceLocalPortTypeClient srv = new ServiceTest.maClasseSupportServiceLocalPortTypeClient();
| + | |
− | ServiceTest.maClassParamOut paramOut = srv.monOperationDeService(sessionHeader, paramIn);
| + | |
− | | + | |
− | MessageBox.Show(paramOut.monAttribut);
| + | |
− | }
| + | |
− | finally
| + | |
− | {
| + | |
− | auth.LocalServiceLogout(session);//ne pas oublier de se déconnecter à l'issue, sinon on risque la pénurie de licence
| + | |
− | }
| + | |
− | </source>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | {{Footer|Web Services (ws)}} | + | |
− | [[Category:Web Services]] | + | |
Nous allons créer un dashboard. L'ouverture de ce dashboard effectuera une requête d'initialisation, et le dashboard pourra invoquer une méthode.