ImportadorExportador JavaScript no funciona con tablas historicas


([N1] Spicer) #1

Estimados,

En la aplicación Importador/Exportador Javascript hay unos scripts que permiten importar y exportar tablas; sin embargo, estos scripts no funcionan (ni para importacion ni para exportación) cuando se trata de tablas históricas.

¿Es posible modificarlos para que los pueda ocupar con tablas históricas?
De verdad es un ahorro de tiempo muy relevante

Muchas gracias

Saludos,


([N3] pacosatu) #2

Hola Spicer.

¿A qué aplicación Javascript te refieres?
No veo el problema de que se puedan exportar/importar tablas sin campo ID, si es a lo que te refieres cuando dices “tablas históricas”.

Saludos
Paco Satué


([N1] Spicer) #3

Paco,

Me refiero a la aplicación Importador/Exportador JavaScript que está en las OpenApps.
Para importar y exportar tablas con Id (Maestras y Submaestras) va de maravillas, pero si la tabla es histórica, no funciona.
O al menos no funciona siempre; en algunos casos lo hace y en otros no.
Envié el caso a soporte y lo están analizando

Saludos,


([N1] METALBOT) #4

Hola, a mí no me funcionan las históricas. Supongo que es porque para cargar la lista de la tabla se usa la instrucción:

list.load(“ID”,[])

Con lo que las históricas no cargan nada porque no tienen índice ID.

Así que si no hay algo que pueda cargar la tabla histórica completa, nos toca crear en cada histórica un índice ID para cargarlas de forma genérica o programar la exportación con el índice apropiado para cada histórica.

Un saludo.


([N3] pacosatu) #5

Hola METALBOT.

Entonces tiene fácil solución.
Habrá que adaptar el código para que dinámicamente use un Índice único, lo que implica el uso de JavaScript:

  • Usamos la clase vTableInfo
  • Buscamos un Índice con identificativo = ID usando indexCount() e indexName()
  • Si no existe buscamos un Índice único con indexType()
  • Una vez localizado el índice único, ya podemos ejecutar la consulta VRegisterList.load(<INDICE_UNICO>)

Por supuesto todas nuestras tablas deben tener siempre un índice único, ya sea el ID en tablas maestras u otro en las tablas Históricas.

Saludos
Paco Satué


([N1] METALBOT) #6

Es cierto Paco, pero como dices tendríamos que modificar las tablas históricas sin clave única. Me parece que les crearé a todas un índice ID por ahora.

Por otro lado he encontrado el problema de que al exportar a texto un objeto texto, exporta los saltos de línea y le hacen la puñeta al fichero.

No se si es posible sustituir esta cadena de escape por un espacio por js o mejor no exportarlos.

Un saludo.


([N1] METALBOT) #7

Solucionado con una función js normal:

for( var field = 0; field < tableInfo.fieldCount(); field++ )
{
file += register.fieldToString( field ).replace(/\n/gi," ");
if ( field < tableInfo.fieldCount() - 1 )
file += “;”;
}

Un saludo.


([N3] pacosatu) #8

Hola METALBOT.

Yo creo que no es buena idea quitar los retornos de carro de los campos Texto.
Lo que tienes que hacer es codificarlo con la secuencia de escape \n.

Así la línea quedaría: file += register.fieldToString( field ).replace(/\n/gi,"\n");

De esta forma cuando importes los Textos volverán a tener los retornos de carro en su sitio.

Saludos
Paco Satué


([N1] METALBOT) #9

Si, Paco es cierto, así quedarí muy bien.

Aunque en el caso de mi importación no es necesario conservarlos.

Ahora lo bueno sería tener la exportación parecida a V6x, al menos seleccionar las tablas a exportar y poder exportar sólo los registros de una búsqueda, no toda la tabla, y poner todo esto en nuestros proyectos de forma genérica.

Un saludo.