PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Webservice SOAP passage de paramètres avec un type array
Webservice SOAP passage de paramètres avec un type array
Iniciado por thamis, 15,abr. 2020 11:22 - 1 respuesta
Miembro registrado
61 mensajes
Publicado el 15,abril 2020 - 11:22
Bo
njour à tous,

Je bloque sur l'utilisation d'un webservice SOAP, plutot sur la syntaxe à utiliser pour passer des données dans un type array, je vais essayer d'être clair dans ma description.
J'ai importer un webservice dans Windev dont une des méthodes est WriteData
Desciprion de la méthode
[ <return> est TResultResponseType = ] WriteData (<Address> est TAddress, <Command> est TDepartmentRecord)
Où TAddress est défini comme suit :




Et TDepartmentRecord est définit comme suit :




Mon problème vient de Descriptions, c'est un tableau que je n'arrive pas à alimenter, il est défini ainsi dans le webservice
<xs:element name="Descriptions" type="ns1:TDescriptionWithTextKinds"/>


TDescriptionWithTextKinds lui est défini ainsi :




Dans l'exemple qui m'est fourni avec SoapUI, il est décrit :
<Descriptions xsi:type="urn1:TDescriptionWithTextKinds" soapenc:arrayType="urn1:TDescriptionWithTextKind[1]" xmlns:urn1="urn:intfBaseType">
<item>
<Text>MonDepartment</Text>
<TextKind>MonType</TextKind>
<TextLanguage>MaLangue</TextLanguage>
</item>
</Descriptions>

Maintenant la définition de TDescriptionWithTextKind :




Voici un bout de code C# qui fonctionne et que je n'arrive pas à retranscrire en Windev.
Department = item.Department_No, 
Descriptions = new List() { new DepartmentsService.TDescriptionWithTextKind() { Text = item.Name } }.ToArray()


J'ai essayer plein de chose mais je n'ai pas trouver la bonne méthode.
MonStore est un IDepartmentsservice.TAddress
MonDept est une IDepartmentsservice.TDepartmentRecord
MesDescrptionDept est IDepartmentsservice.TDescriptionWithTextKinds
tabMesDescriptions est un tableau de IDepartmentsservice.TDescriptionWithTextKind
MaDescription1 est IDepartmentsservice.TDescriptionWithTextKind
MaDescription2 est IDepartmentsservice.TDescriptionWithTextKind
MareponseDept est un TResultResponseType

// On paramètre les variables
// Partie TAddress
MonStore.StoreID = nStore
MonStore.RepositoryID = 0

// Partie TDescriptionWithTextKind
MaDescription1.Text = sDescription
MaDescription1.TextKind = sType
MaDescription1.TextLanguage = sLang
MaDescription2.Text = sDescription
MaDescription2.TextKind = sType
MaDescription2.TextLanguage = sLang
Ajoute(tabMesDescription,MaDescription1)
Ajoute(tabMesDescription,MaDescription2)

//Partie TDepartmentRecord
MonDept.Department = nDepartment
// Mon problème est ici, je n'arrive pas à alimenter Descriptions
MonDept .Descriptions = MesDescrptionDept
// Si j'essaye de passer directement tabMesDescription, il y a un problème de conversion de type TDescriptionWithTextKinds et TDescriptionWithTextKinds
// Si j'essaye de d'ajouter à MesDescrptionDept il me dit que ce n'est pas un élément indicé
MareponseDept = IDepartmentsservice.WriteData(MonStore,MonRayon)


Voilà j'espère avoir été suffisament clair dans ma description.

Merci pour votre aide.

--
Cordialement,

Fred
Miembro registrado
61 mensajes
Publicado el 15,abril 2020 - 12:22
Erreur il faut lire sur la dernière ligne
MareponseDept = IDepartmentsservice.WriteData(MonStore,MonDept )


--
Cordialement,

Fred