Crónica de una migración con instalación complicada 7 - WSDL de servicios SOAP
Luego de un pequeño parate (por motivos externos a nosotros) volvimos a poner en producción la aplicación generada.
Ayer le tocó a los servicios web externos.
No tuvimos mayores inconvenientes, tuvimos 2 cancelaciones, una fue un error 500 - Internal Server error pues teníamos:
&ret= &XMLIn.ReadType(&XMLIn.ElementType, 'Imagenes_Documentos')
y la variable &ret era N(1) y puede devolver hasta 128, dando un overflow.
Es un error de programación que no tiene nada que ver con el cambio de versión.
También nos reportaron que los WSDL tenian error, que decia
Ayer le tocó a los servicios web externos.
No tuvimos mayores inconvenientes, tuvimos 2 cancelaciones, una fue un error 500 - Internal Server error pues teníamos:
&ret= &XMLIn.ReadType(&XMLIn.ElementType, 'Imagenes_Documentos')
y la variable &ret era N(1) y puede devolver hasta 128, dando un overflow.
Es un error de programación que no tiene nada que ver con el cambio de versión.
También nos reportaron que los WSDL tenian error, que decia
This page contains the following errors:
error on line 4 at column 7: Entity 'nbsp' not defined
Below is a rendering of the page up to the first error.
Esto se daba en la seccion:
<documentation>
</documentation>
El error no es demasiado grave, porque no afecta la operativa, pero si es bastante molesto porque nos llaman los programadores que usan los diferentes servicios diciendo que no pueden importar las definiciones de los servicios.
Porque no detectamos este error?
Tenemos comparadores que controlan que los WSDL de la versión vieja y la nueva sean equivalentes, para no tener este tipo de sorpresas.
En EVO3 la documentación se genera de la forma:
<document>
<URL>http://servidor/DirVirtual/Help/HLP_DatosDeclarante.htm</URL>
<line> </line>
</document>
y en GX16, es de la forma:
<documentation>
</documentation>
Como esto producía una diferencias en todos los WSDL del sistema, decidi sacar esas dos secciones (document y documentation) de todos los WSDL pues pensé que no iba a ser problemática.
La solución a este problema no es trivial, pues una vez que la sección Documentation del procedure SOAP se cambio, no puede volverse a su estado default y cuando esta vacía la genera con un que es invalido. Por mas que le borrara todo el contenido, seguía generando mal.
La forma que encontré para evitar este problema, fue distribuir todos los procedures main y en aquellos que tenían en la documentación, volver dicha sección a default, cambiando el valor del tag <InnerHtml> a vacío y poniendo la sección en default.
Veremos que errores aparecen en el dia de hoy.
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.