¿Errores internos en Dataports? Pues vayamos a ciegas!

Últimamente parece que me caen expedientes X a diario. Hoy he descubierto que es posible hacer el dataport más tonto del mundo para exportar el contenido de una tabla y (sí) puedes morir en el intento:

El tema es que he creado un dataport con un dataitem de una tabla no demasiado grande (sin demasiados campos ni demasiados registros). En la pantalla de dataport fields he añadido todos los campos de la tabla. Ejecuto la exportación de los datos y me encuentro con esto:

La longitud del origen excede del tamaño del búfer de destino. Error raro y ceño fruncido. Lo había visto otras veces al trabajar con XML cuando todavía no existían los XMLPorts, pero nunca en un dataport. Lo primero que he pensado es que quizás había información en algún campo que interfería de alguna forma extraña con el dataport. Así que he quitado todos los campos de la sección dataport fields y he vuelto a ejecutar. El resultado: El mismo! 🙁

Como me estaba empezando a impacientar, he cambiado la tabla y la he cambiado por un entero. Internamente recorría los registros guardando los campos en las variables. A partir de ahí ningún problema. He conseguido exportar los datos sin problemas sin saber cual era el origen del problema.

Al crear otro dataport para importar estos datos en otra base de datos he vuelto a intentar utilizar la tabla destino asignando los campos en la sección dataport fields. Mi gran sorpresa ha sido ver una especie de error de sobrepasamiento que decía que no podía insertar la cadena en un text de 80. Lo más asombroso de todo es que en esta tabla no existe ningún campo de esa longitud y en el dataport tampoco existe ningúna variable. ¿De que se estaba quejando NAV?

La solución: He desactivado la propiedad ShowStatus y todo ha ido como la seda. ¿Que significa esto? Pues significa que en la ventana de proceso hay una barra de proceso que se basa en las líneas que tiene el fichero y luego tiene un campo de nombre registro que muestra los valores que conforman la clave. Es una pena que los boys de NAV no hayan tenido en cuenta que los valores que componen una clave pueden ocupar concatenados más de 80 caracteres!

Así que ya sabéis, si vais a hacer dataports que ataquen a tablas con muchos campos en la clave, desactivad ShowStatus o id tirando el peine a la basura.

2 opiniones en “¿Errores internos en Dataports? Pues vayamos a ciegas!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *