Page 1 sur 1

Sage 1000 - consommer un web service en V9

MessagePosté: Mer 30 Déc 2020 13:38
de romulus001
Bonjour,

J'ai trouvé une page sur le wiki 1000, afin de pouvoir consommer un web service avec authentication

Le soucis que ce code ne fonctionne pas.
J'ai importé le web service authentication dans un projet Visual Studio, je vois bien les méthodes qui sont décrites dans le wiki1000, je l'ai nommé wsAuthentication.

Avec le code suivant :

Code: Tout sélectionner
 Dim auth As New wsAuthentication.TdbmLocalServiceAuthenticationPortTypeClient
            Dim session As String = ""

            Try
                session = auth.LocalServiceLoginToken("2E235A77.......")
 
            Catch ex As Exception
                MsgBox(ex.InnerException)
            Finally
                auth.LocalServiceLogout(session)
            End Try


J'ai une exception qui est retournée quand je fais appel à auth.LocalServiceLoginToken, et quand je regarde l'exception retournée, le contenu est vide.

Des idées à ce sujet?

Merci

Edit : j'arrive à avancer, l'erreur venait du jeton d'authentification, qui n'était pas le bon.
Nouveau soucis que je rencontre, c'est de savoir comment on passe ce SessionHeader.
J'ai essayé en faisant
Code: Tout sélectionner
Dim MonObjetWS as New MonServiceWeb.MaClasse
MonObjetWS.SessionHeaderValue = sessionHeader
'erreur fatale : authentification requiered
MonObjetWS.MaMethode()



Edit 2 : La manière dont le web service a été importé était à revoir, avant, il apparaissait comme étant un web reference, maintenant, il a été importé comme étant un service de reference.

Mon nouveau code maintenant :

Code: Tout sélectionner
Dim auth As wsAuthentication.TdbmLocalServiceAuthenticationPortTypeClient = New wsAuthentication.TdbmLocalServiceAuthenticationPortTypeClient
            Dim session As String = ""
            Dim sessionHeader As MonService.SessionHeader = New MonService.SessionHeader()
            Dim srv As MonService.MaClassePortTypeClient = New MonService.MaClassePortTypeClient ()

            Try
                ' génération d'une id session
                session = auth.LocalServiceLoginToken(gclJetonAuthentication)

                 sessionHeader.sessionId = session
                 srv.NomDeMaMethode(sessionHeader)

            Catch ex As Exception
                MsgBox(ex.InnerException)
            Finally
                auth.LocalServiceLogout(session)
            End Try



Le nouveau message d'erreur que j'obtiens, lors de l'appel d'une méthode, est :
L'encodage dans la déclaration 'ISO-8859-1' ne correspond pas à l'encodage du document 'utf-8'