Power Builder - Power Builder Datawindow XML Template

   
Vista:

Power Builder Datawindow XML Template

Publicado por Alan alan.herrera@trafigura.com (2 intervenciones) el 23/03/2012 22:05:33
Hola,
He elaborado un datawindow external con 3 campos: CAMPO1, CAMPO2 Y CAMPO 3; Luego he creado el Template XML con una estructura como esta:

<Datos>
<Nombre>CAMPO1</Nombre>
<Direccion>CAMPO2</Direccion>
<Telefono>CAMPO3</Telefono>
</Datos>

Luego nombré el template como : XML_Prueba y lo asigne al atributo "Use Template" de la pestaña Data Export en las propiedades del datawindow.

Luego desde el programa llene mi datawindow con 3 registros:

CAMPO1 CAMPO2 CAMPO3
Juan Av. Main 111 241-5454
Maria Av. Princ 222 NULL
Pedro Ca. Dos 123 654-8545

Luego de ello mediante un SaveAs exporto mi datawindow como un XML file.

Mi problema es con los campos nulos, el generador del XML pinta el Tag tenga o no datos, y queda asi:

<Datos>
<Nombre>Juan</Nombre>
<Direccion>Av. Main 111</Direccion>
<Telefono>241-5454</Telefono>
</Datos>
<Datos>
<Nombre>Maria</Nombre>
<Direccion>Av. Princ 222</Direccion>
<Telefono />
</Datos>
<Datos>
<Nombre>Pedro</Nombre>
<Direccion>Ca. Dos 123</Direccion>
<Telefono>654-8545</Telefono>
</Datos>

Como se puede observar el CAMPO3 del segundo registro es Nulo, y el XML lo esta generando como <TAG /> (caso de Tag: <Telefono />); esto me ocasiona problemas al momento de importar este archivo XML a un ERP.

Existe alguna forma de que los Tags cuyos campos asociados sean NULOS no se generen? es decir que para el segundo caso todo el Tag: Telefono no deberia de aparecer, dado que su dato CAMPO3, es NULO. quisiera que solo quede asi:

<Datos>
<Nombre>Maria</Nombre>
<Direccion>Av. Princ 222</Direccion>
</Datos>

Ojala puedan ayudarme, gracias.

Slds,
Alan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Power Builder Datawindow XML Template

Publicado por miguel zea (6 intervenciones) el 23/07/2013 03:00:57
ayuda!!! tengo el mismo problema .. ayuda si lo resolviste ayudanos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder Datawindow XML Template

Publicado por Edward (10 intervenciones) el 23/07/2013 04:42:45
http://www.sybase.com/detail?id=1013844#error

por aqui hay un indicio de solucion... estoy investigando tambien, si funciona les avisare
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder Datawindow XML Template

Publicado por Jose Zea (6 intervenciones) el 16/09/2015 23:39:37
Hermano sera q encontraste una solucion, tengo el mismo problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder Datawindow XML Template

Publicado por Daniel Rodas (27 intervenciones) el 30/10/2013 19:19:08

Saludos Alan

Estoy viendo tu tema y yo tengo un problema similar, solamente que yo necesito importar el XML a una DW, y veo que esa parte si te funciona pero a mi no.

Mi problema es que cuando ejecuto la aplicación desde PB 9, es decir en modo de diseño si me importa el archivo XML sin problema pero al compilar y generar el EXE no hace nada y se sale de la aplicación.

Tengo dudas de como nombrar el template y asignarlo, en mi caso, a la pestaña Data Import

Adjunto mi código en el evento pfc_preopen de la ventana

//pfc_preopen
Long ll_ret, ll_rc

.
.
.

ll_ret = XMLParseFile("PathEtis2.xml")

dw_paths.Reset()

If ll_ret = 0 Then
try
//ll_rc = dw_paths.ImportFile("pathsETIS.xml")
dw_paths.Modify("DataWindow.Import.XML.UseTemplate ='d_mant_etis_paths' ")

ll_rc = dw_paths.ImportFile("PathEtis2.xml")

if isnull(ll_rc) then ll_rc = 0

if ll_rc <= 0 then
Messagebox('Import File Error','Ocurrio un error al hacer el ImportFile '+ string(ll_rc))
end if
CATCH(throwable ex)
MessageBox("Import File Error CATCH",ex.GetMessage() + '~r~nll_rc = '+string(ll_rc))
END TRY
End If

No se va por la parte del catch

Gracias por la ayuda que me puedas brindar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar