Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de lista<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />// Este código muestra el error.La concatenación con Agregar a la primera tabla produce corrupción de datos.
dtA = nueva tabla("A");
dtB = nueva tabla("B");
dtA << Agregar filas (3);
dtB << Agregar filas (1);
colA = Columna(dtA, 1);
colB = Columna(dtB, 1);
colA[1]="A";
colA[2]="A";
colA[3]="C";
colB[1]="B";
dtA << Comprimir columnas seleccionadas (dtA << Obtener nombres de columnas());
// Estos datos no tienen verificación de lista, pero no están dañados
(dtA << Concatenate(dtB)) << Establecer nombre("No dañado");
// Estos datos están corruptos
dtA << Concatenar(dtB, Agregar a la primera tabla(1)) << Establecer nombre("Corrupto");
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaOk, gracias Martin por el consejo sobre cómo poner esto en el radar del equipo de desarrollo...
- Beto
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaHola Bob,
Perdón por la respuesta tardía, estaba de viaje durante las visitas de los clientes.
Entiendo tu perspectiva. Al mismo tiempo, creo que hay muy pocas cosas que se podrían hacer para evitarlo. Intentaré explicar por qué. Con la compresión, se inicia una verificación de lista con los valores que están dentro de las columnas en el momento de la compresión. Supongamos que no hubo compresión y usted crea una verificación de lista por su cuenta. El propósito de una verificación de lista es que solo permita que esos valores estén en esa columna. Otros dijeron que no quieres tener otros valores aparte de esos.
No importa si concatena otras tablas con la original con la verificación de la lista o simplemente escribe nuevas observaciones en esa tabla, solo permitirá esos valores porque cree que usted ha establecido esas reglas con un propósito, y no me gustaría que el software funcione en contra de mi establecer reglas.
Dicho esto, es responsabilidad del creador de reglas cambiar las reglas si es necesario permitir la entrada de otros valores.
Dicho esto, y estoy seguro de que ya has entendido lo anterior, es un comportamiento previsto, aunque no exactamente lo que te gusta.
Le sugiero que escriba a nuestro soporte técnico ( soporte@jmp.com ) para agregar una solicitud de mejora para agregar un cuadro de diálogo de preguntas en caso de que se concatene una tabla de datos de lista verificada (o comprimida) con una nueva tabla usando el indicador "agregar a la tabla original". El diálogo podría indicar algo. así: "Hay una verificación de lista activa en la tabla original. Su tabla para ser concatenada tiene valores que no figuran allí, esos valores se convertirán en valores faltantes después de la concatenación. ¿Aún desea concatenar? (Si no, primero debe cambiar las propiedades de verificación de la lista)" - o algo más corto
Para solucionarlo, tiene dos opciones: Primero, crear una nueva tabla que comprime después (es posible que desee que la tabla de datos sea "invisible" hasta que se haya realizado la compresión). O en segundo lugar, cambiar o eliminar la propiedad de verificación de lista con anticipación.
Espero que ayude,
Martín
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaLo siento, no quise discutir sobre la palabra "corrupto", ni intentaba descartar lo que crees que es un error.
Estaba tratando de explicar lo que tienes. Si elimina la propiedad de verificación de lista de la columna, entonces el anexo funciona como esperaba.
Fue la propiedad de verificación de lista la que parece causar confusión.
Por definición, la propiedad de verificación de lista dice que solo los valores de la tabla de verificación de lista son válidos.
Si agrega o cambia un valor a la columna a un valor que no está en la tabla de verificación de lista, entonces se establece como faltante.
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaI en realidad No entiendo el sentido de discutir sobre la semántica de la palabra "Corrupto".¿Es la tabla de datos resultante una concatenación válida de las dos tablas de datos originales?Claramente no lo es.Se han modificado los registros, a pesar del uso adecuado de las funciones de JMP.El hecho de que Concatenar SIN Agregar a la Primera Tabla dé un resultado diferente (correcto) que Concatenar CON Agregar a la Primera Tabla debería preocuparle.El hecho de que un cliente le diga que hay un error también debería preocuparle...
Gracias,
- Beto
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaComo dijo Martin, la tabla de datos no ha sido "corrompida".
Supongo que quiere decir que la tabla de datos resultante no es la que esperaba. Esperabas que "B" fueran los datos de la cuarta fila.
Si observa la propiedad de verificación de lista generada, hay 2 valores, "A" y "C".
Por definición, sólo "A" y "C" son datos válidos para la columna.
Dado que "B" no es un valor válido, se asignó como faltante.
Compress genera la tabla de verificación de lista en función de la información que conoce en este momento.
Quizás Concat debería ser más inteligente y expandir la tabla de verificación de la lista.
Como alternativa, elimine la propiedad de verificación de lista por completo si no todas las columnas que se van a concatenar tienen la misma propiedad de verificación de lista.
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaMartín,
Gracias por mirar esto.Esa "B" que falta ES la corrupción de datos.JMP introdujo un valor (cadena vacía) que no estaba presente antes de la concatenación y eliminó un valor ("B") que estaba presente antes de la concatenación.Entonces la tabla no es una concatenación válida de las dos tablas originales.Si se tratara de una aplicación empresarial crítica, JMP estaría inyectando un error, ¿verdad?
Entiendo cómo sucede, pero JMP debería volver a evaluar los elementos necesarios en la verificación de la lista para garantizar que el conjunto de datos concatenado no elimine ni cambie ningún dato.
Gracias,
- Beto
Re: Error al usar Concatenar/Agregar en tablas que tienen columnas con Verificación de listaHola Roberto,
Probé tu script y no veo datos corruptos. Acabo de ver que hay una cuarta fila en dtA sin entrada debido a la verificación de la lista. Si usa el menú "tabla de datos" -> "concatenar" y luego tiene las tablas A y B y la casilla de verificación Agregar a la primera tabla marcada Y marca la opción "Columna de origen de datos", verá que están los datos de la tabla B , pero no ingresado debido a la verificación de la lista, que se introduce debido a la compresión.

Si eso no es lo que quieres decir, ya que ahora no tengo ningún conjunto de datos dañados (y entendería que los datos corruptos ya no son legibles), ayúdame a comprender tu problema. Si realmente obtiene una tabla de datos corrupta que ya no puede abrir, envíe su pregunta a nuestro soporte técnico para que se realice un seguimiento de nuestro desarrollo y, con suerte, podrán ayudarlo a encontrar el motivo ( Soporte@jmp.com ).
Por cierto. He usado JMP 12.1.
Saludos,
Martín