INSTITUCIONAL
COMUNIDAD
BLOG
AYUDA
MI CUENTA
EN PT ES

Imagen6347S

De GeneXus 8.0 RC: Tipos de datos estructurados (II)

En la edición anterior vimos como definir un objeto estructurado y algunas de sus propiedades, ahora veamos como utilizarlo

Uso del SDT: carga
Siguiendo el ejemplo del estructurado "Cliente", una vez creado el SDT

es posible definir variables basadas en él desde cualquier objeto GeneXus.

Esta variable la podemos cargar, por ejemplo, recorriendo la Base de Datos con el código:
For Each
    Where CliID = &CliId
    &Cliente.Nombre = Clinom
    &Cliente.Identidad = CliDoc
    &Cliente.Nacionalidad= &Nacionalidad
    &CLiente.Direccion.Empresa = Clidir
    &Cliente.Telefonos.Add(CliTel)
Endfor

Uso del SDT: carga vía XML

También podemos cargar la información desde un XML, simplemente con el código

       &Cliente.FromXml(&ClienteXml)

Una vez cargado el xml se obtiene los datos del cliente, accediendo a los ítems del SDT, de una forma más clara  que tradicionalmente con el tipo de datos Xmlreader.

Similarmente se puede salvar el contenido de un SDT en un xml con:

       &ClienteXML = &Cliente.ToXml()

El contenido del string &CLienteXml será:
<Cliente xmlns = "name_Kb">
   <Nombre>CliNom</Nombre>
   <Identidad>... </Identidad>
   <Nacionalidad>... </Nacionalidad>
   <Direccion>
        <Empresa>CliDir</Empresa>
        <Personal>CliDir2</Personal>
   </Direccion>
   <Telefonos>
        <item> CliTel1 </item>
        <item> CliTel2 </item>
  </Telefonos>

el mismo string puede ser generado con los tipos de datos XML, pero es bastante mas complejo, se precisan las siguientes líneas de código:

      &FileXml.opentoString()
      &filexml.WriteNSStartElement('Cliente', , "name_kb")       &filexml.WriteElement('Nombre', CliNom  )
  &filexml.WriteElement('Identidad', & )
  &filexml.WriteElement('Nacionalidad', & )
&filexml.WriteStartElement('Dirección')
  &filexml.WriteElement('Empresa', CliDir )
  &filexml.WriteElement('Personal', CliDir2 )
&filexml.WriteEndElement()  
&filexml.WriteStartElement('Telefonos')
  &filexml.WriteElement('Item', CliTel1  )
  &filexml.WriteElement('Item', CliTel2  )
    &filexml.WriteEndElement()  
&filexml.WriteEndElement() 
&ClienteXML = filexml.resultingString()
&filexml.Close()

Uso del SDT: Proveer/consumir

Ahora estamos en condiciones de proveer/consumir en un Webservice los datos del cliente. Para proveer simplemente se debe definir un procedimiento con call protocol SOAP y retornar por parámetro una variable de tipo Cliente. Para consumir se debe utilizar el WSDL inspector y el mismo se encarga de crear los SDT necesarios para poder consumirlo.

También se podría pasar o recibir el cliente en cualquier otro objeto GeneXus,  sin necesidad de acceder a la base de datos. En el pasado esto implicaba pasar n parámetros, algo como:

     Call('WtrabCliente', &CliNom, &CLiDoc, &Clidir, &Clitel1, &CLitel2)

Ahora se traduce en:

     Call('WtrabCliente', &cliente)

Especificación, generación, knowledge manager

El objeto SDT se especifica a través de los objetos que lo invocan (que tiene variables basadas en el estructurado). Es posible exportar/consolidar uno o más estructurados a través del knowledge manager.

En la próxima edición de las Noticias GeneXus comentaremos la definición de estructurados más complejos (colecciones), sus propiedades y más casos sobre Webservices.

 

Relacionado
De GeneXus 8.0 RC: Tipos de datos estructurados (SDT)
De GeneXus 8.0 RC: Tipos de datos estructurados (III)
GeneXus libera su próxima versión
GeneXus Training Uruguay publicó su calendario de capacitación para el primer semestre del año
Certificaciones #GeneXus en el #GX24
En GeneXus Uruguay buscamos nuevos talentos
Trabajar en GeneXus: Todo lo que tienes que saber si quieres trabajar con nosotros #Training #Becas #BolsaDeTrabajo #GXjobs
En GeneXus México buscamos nuevos talentos
Sistema educativo, mercado laboral, empresas B, Forge y GeneXus: la importancia de la capacitación, los valores y la inserción laboral en los jóvenes
Alta demanda de profesionales TI en el mundo
Próximos cursos y certificaciones #GeneXus en América: Argentina, Colombia, Chile, Brasil, México y Uruguay
Nuevos Analistas GeneXus en el Instituto Superior de Informática #Uruguay
Toolnology continúa presentando GeneXus X Evolution 3 con cursos gratuitos #Argentina
#Mayo Próximos cursos y certificaciones #GeneXus en América: Argentina, Brasil, Colombia, México y Uruguay
#Uruguay Curso de Seguridad en Aplicaciones GeneXus