Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/01/2013, 11h10   #1
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
Par défaut Erreur avec MSSOAP30 et pas MSSOAP

j'ai créé un programme qui fonctionne très bien sous Windows XP avec SoapClient.
ce programme fait appel un webService connecté sur Mantis permettant de créer des bugs à la volée.

ce programme ressemble à ceci :
Code :
1
2
3
4
5
Dim objSoapClient
Set objSoapClient=CreateObject ("MSSOAP.SoapClient")
Call objSOAPClient.mssoapinit("http://url?WSDL")
Dim fResult
fResult=objSoapClient.fonctionAjouter()
fResult est le numéro du bug

Je voudrais migrer cette solution sous Windows Seven où la librairie SoapClient n'existe pas.
J'ai donc utilisé SOAPCLIENT30

Voici le nouveau programme
Code :
1
2
3
4
Dim objSOAPClient as New SoapClient30
Call objSOAPClient.mssoapinit("http://url?WSDL")
Dim fResult
fResult=objSoapClient.fonctionAjouter()
Lorsque je lance ce programme j'ai une erreur d’exécution, de type SYSTEM NOTICE sur un offset non défini
le signalement est bien créé dans MANTIS, je ne comprend vraiment pas
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 14h22   #2
ProgElecT
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 3 199
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 57
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 3 199
Points : 5 109
Points : 5 109
Envoyer un message via MSN à ProgElecT
Salut

Je ne connais pas SOAPCLIENT ou SOAPCLIENT30, mais dans ton deuxième code tu types la variable et tu ne crées pas l'objet.
est ce que
Code :
1
2
Dim objSoapClient
Set objSoapClient=CreateObject ("MSSOAP.SoapClient30")
ne serai pas la solution ?
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 15h30   #3
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
J'avais déjà testé cette solution et elle ne marche pas non plus
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 16h13   #4
ProgElecT
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 3 199
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 57
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 3 199
Points : 5 109
Points : 5 109
Envoyer un message via MSN à ProgElecT
Re

La DLL s'appelle MSSOAP30.DLL
Ne faudrait il pas créer l'objet de cette façon
Code :
1
2
Dim objSoapClient
Set objSoapClient=CreateObject ("MSSOAP30.SoapClient30")
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 16h27   #5
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
En fait la librairie qui existe est "MSOSoap.dll"
En modifiant et en faisant "MSOSoap.SoapClient30" le résultat est le même qu'au départ.

En faisant "MSSOAP30.SoapClient30", j'ai un problème d'activeX pour créer l'object car la DLL n'existe pas.
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 09h36   #6
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
en regardant sur le net, j'ai l'impression MSSOAP30 n'accepte pas les tableaux vides, or dans un des paramètres de la fonction "fonctionAjouter", j'ai certains paramètres avec un tableau vide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 ReDim issue(6)        
 ssProjet = "projet"
 util = "util"
 pass = "pass"
 issue(0) = ssProjet                                              
 issue(1) = "description"                                      
 issue(2) = "10"                                             
 issue(3) = "20"                                              
 issue(4) = "Summary"                                              
 issue(5) = "Categ"                                             
 issue(6) = "v1.0.0.0" 
 
 ReDim issue_custom(5)
 issue_custom(0) = "custom1"                        
 issue_custom(1) = "value1"              
 issue_custom(2) = "custom2"   
 issue_custom(3) = "value2"            
 issue_custom(4) = "custom3" 
 issue_custom(5) = "value3"      
 
ReDim issue_note(0)
issue_note(0) = "" 
 
Set fResult = objSOAPClient.fonctionAjouter(util, pass, issue, issue_custom, issue_note)
serait-ce un problème car mon erreur est quand même celle ci :

Erreur d'execution : '-2147467259 (80004005)
Error type : SYSTEM NOTICE,
Undefined offset : 6,
StackTrace :
UnknownFile L? fonctionajouter(<String> ....
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 12h12   #7
ProgElecT
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 3 199
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 57
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 3 199
Points : 5 109
Points : 5 109
Envoyer un message via MSN à ProgElecT
Salut
pourtant tu remplis 7 variables tableau (0 à 6, lignes 5 à 11), pour autant il est très curieux que l'erreur n'apparaît pas à la ligne 11 du code (a moins que tu ais un Error Goto ou Resume dans ton code réel).

Mise à part cela la ligne de création de l'objet et bien
Code :
Set objSoapClient=CreateObject ("MSSOAP.SoapClient30")
non pas MSSOAP30 comme proposé dans un de mes messages.
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 13h46   #8
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
En vba ,
dim tab(3) defini un tableau allant de 0 à 3 et donc avec 4 valeurs.

j'ai essayé de modifier en plus ou en moins et ca bloque lorsque je déclare ma dernière valeur

et pour ma création j'ai :
Set objSOAPClient = CreateObject("MSOSoap.SoapClient30")
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 14h07   #9
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
je viens de remarque la fin de ma stack d'erreur j'ai ceci :

<Array>{[0]=>'...',[1]=>'...',[2]=>'...',[3]=>'...',[4]=>'...',[5]=>'...',[6]=>'...',['!SOAPSDK3:offset']=>'[0]'};<Array>...

Est ce quelqu'un sait ce qu'est ['!SOAPSDK3:offset']=>'[0]'
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2013, 09h55   #10
cedricov
Invité de passage
 
Inscription : mai 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 12
Points : 0
Points : 0
Pour clore cette discusssion, le problème venait du fait qu'avec SOAPCLIENT30 il ajoute un champ en plus dans le tableau.
Il suffisait de ne pas lire dans mon programme php le dernier élément.
cedricov est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h05.


 
 
 
 
Partenaires

Hébergement Web