Multipartir lista con campo Enlazado a Tabla Indirecta Real

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Avatar de Usuario
rgvigo
vAdviser
vAdviser
Mensajes: 633
Registrado: 29 Oct 2005, 01:42

Mensaje por rgvigo »

Acabo de ver el mapa de Domk y se me ocurre que tal vez tenga algo que ver con el tipo de indice, Domk usó un indice fecha de clave unica, yo lo cambié a acepta repetidas y funciona igual pero voy a hacer alguna prueba más.

Un saludo
Ricardo Riobó
ricardoriobo@indexneo.com
www.indexneo.com
Tel. +34 902 879 646
Avatar de Usuario
Dario
vAdviser
vAdviser
Mensajes: 700
Registrado: 14 Oct 2005, 11:03
Ubicación: Málaga (España)
Contactar:

Mensaje por Dario »

Hola Francisco, gracias por tu interés, eres muy amable. Voy a responder a tus planteamientos,
Francisco Hoyos escribió: Acabo de leer el post y una vez vista la estructura, no entiendo porqué optaste por crear un campo Enlace indirecto Real.
Bien, me explico. Opté por un enlace Indirecto Real , no porque me guste "vivir peligrosamente" como dices más abajo :P :P (captada la broma), sino porque me pareció que mediante este puntero podía evitarme un "Proceso Posterior a Modificación de ficha" para actualizar el campo %GRUPO-CURSO% de la tabla MATRICULADOS. Es decir, por comodidad.
Francisco Hoyos escribió: Lo tienes más cómodo declarando el campo puntero a maestro %GRUPOS-CURSOS%, cuyo contenido inicial sería %CONVOCATORIAS.CURSOS.GRUPOS-CURSOS% y podrías hacer las actualizaciones sin ningún problema, igual que actualmente las tienes
Correcto lo del contenido inicial %CONVOCATORIAS.CURSOS.GRUPOS-CURSOS% para %GRUPOS-CURSOS%, vale. Pero ... ¿que pasa si el usuario cambia el campo %CONVOCATORIA%?
Como dije en la respuesta anterior, utilizando un puntero a maestro, tendría que crear un "Proceso Posterior a Modificación de ficha" para mantener un valor coherente en ese campo (%GRUPOS-CURSOS%).
(vease la explicación de la estructura de la tabla MATRICULADOS en mi post anterior a éste).

Además, no pretendo hacer Actualizaciones a través de ese campo, sino de aplicar una simple regla de álgebra para cortar camino y ahorrarme "código". (Si A € B y B € C, entonces A € C, propiedad transitiva de la teoria de conjuntos) . Para mi caso lo que que pretendo es agrupar todos los matriculados por el %GRUPO-CURSO% al que pertenecen, y de ahí lo de Multipartir lista de los matriculados por cada %GRUPO-CURSO%.
Francisco Hoyos escribió: Pero ganando en la longitud del registro, porque te ahorrarías algunos bytes (yo siempre con lo mio).
¿ Sufres algún tipo de anorexia informática ?, obsesión por el tamaño o peso de "tus bases de datos" :wink: :lol: :lol:
Humor negro a parte, al precio que está el giga de disco duro, lo que menos me preocupa ahora mismo es el incremento en unos pocos de bytes por registro. :wink:

Es más, todo funciona bien, excepto la instrucción de Multipartir en un proceso, que para el puntero Indirecto parece ser que no funciona. Sin embargo, y lo he comentado en anteriores post, si que funciona si se ejecuta desde la opción Multipartir del menú standar "Lista" que posee el vClient, y es eso lo que me trae "despistao", que no sabía si es un fallo mio, del Velazquez o un mal uso que le estoy dando a este tipo de puntero. :shock:

En fin. No se si me he puesto muy pesao esta noche con ésta parrafada :roll: . El lunes hablaré con Agustín para que me haga ver la luz :idea:

DomK, gracias tio :wink: , pero el ejemplo que has colgado no se ajusta al uso que le estoy dando al puntero Indirecto. Si quieres te puedo pasar mi mapa para que le eches un vistazo y veas a lo que me refiero.

Saludos.
Saludos.

"Dios no hace programas, ni yo hago milagros."

darioplaza@animum3d.com
http://www.animum3d.com
Francisco Hoyos
vLeader
vLeader
Mensajes: 2712
Registrado: 22 Sep 2005, 17:56
Ubicación: Gijón (Asturias) España GMaps: 43.538740, -5.661970

Mensaje por Francisco Hoyos »

Está bien. Lo confieso. :cry: :cry: :cry: :cry:

Soy un obseso del "peso" de mis bases de datos. Y si, me encantan los procesos posteriores a modificación de ficha. :cry: :cry: :cry: :cry: .

Llevo años asistiendo a reuniones de Informáticos Anónimos para desengancharme, aunque con escasos resultados hasta la fecha.

:lol: :lol: :lol: :lol:

Bromas aparte, sigo pensando que, salvo para casos muy excepcionales (cuando el índice se resuelve con un solo valor), yo no escogería ese campo para Multipartir.

Un saludo.
Francisco Hoyos
frhoydon@gmail.com
manugc
vAdviser
vAdviser
Mensajes: 775
Registrado: 15 Sep 2006, 17:02
Ubicación: Las Palmas - Islas Canarias - Gran Canaria

Mensaje por manugc »

Yo también lo he echo y funciona
Avatar de Usuario
Dario
vAdviser
vAdviser
Mensajes: 700
Registrado: 14 Oct 2005, 11:03
Ubicación: Málaga (España)
Contactar:

Mensaje por Dario »

Explica como lo has hecho, Manugc, para que tenga algún tipo de valor ilustrativo tu comentario.

Gracias. :wink:
Saludos.

"Dios no hace programas, ni yo hago milagros."

darioplaza@animum3d.com
http://www.animum3d.com
Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK »

Hola Dario,

El ejemplo que me hice lo basé más o menos en lo que comentaba Agustín. Sólo pretendía ver si el multipartir por enlace indirecto real funcionaba. Ya hemos visto que en condiciones determinadas puede funcionar, pero me interesaría acotar mejor el tema.

Pásame tu mapa si te viene bien y lo miro detenidamente.

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"
Jap
vMate
vMate
Mensajes: 37
Registrado: 22 Sep 2005, 08:19
Ubicación: Cornella - Barcelona - España (41.35890, 2.07416)

Mensaje por Jap »

Hola,

Lo he estado probando y tengo dos casos:
  • Desde Lista --> Multipartir, funciona correctamente.
  • Desde un proceso no me funciona. Por curiosidad, dentro del proceso he probado a mostrar mensajes con fCampoVacio(%PUNTERO-INDIRECTO%), fLen(%PUNTERO-INDIRECTO%) y Mensaje --> %PUNTERO-INDIRECTO% y ninguna de las funciones me devuelve nada, tengo la sensación de que Velneo no es capaz de procesar adecuadamente la información almacenada en el campo puntero indirecto.
Un saludo,
Joaquín.
Avatar de Usuario
Dario
vAdviser
vAdviser
Mensajes: 700
Registrado: 14 Oct 2005, 11:03
Ubicación: Málaga (España)
Contactar:

Mensaje por Dario »

Hola Jap. Pues ese mismo caso que tienes tú es el que me pasará a mí. :shock:

Por parte de Velneo no recomiendan el uso de la instrucción Multipartir con campos que sean Punteros Indirectos Reales. :(

Por lo que he podido comprobar desde que abrí este post, no hay mucho conocimiento exacto donde están las limitaciones de éste tipo de punteros, puesto que en acciones concretas como las que ha dejado Agunstín funcionan, pero como el caso que yo he presentado no funciona. :?

Lo ideal sería que intentaramos sacar alguna conclusión entre todos, en que casos funciona y en que otros casos no. A ver si lo conseguimos. :)
Saludos.

"Dios no hace programas, ni yo hago milagros."

darioplaza@animum3d.com
http://www.animum3d.com
Jap
vMate
vMate
Mensajes: 37
Registrado: 22 Sep 2005, 08:19
Ubicación: Cornella - Barcelona - España (41.35890, 2.07416)

Mensaje por Jap »

Hola,

Yo no creo que los campos punteros indirectos estén pensados para trabajar con los datos que están almacenando, sirven para tener acceso a registros de otra tabla.

Nunca me había planteado trabajar con el contenido del campo puntero indirecto, como no se que se esta guardando nunca estaría seguro de lo que estoy haciendo.

Un saludo,
Joaquín.
Avatar de Usuario
Dario
vAdviser
vAdviser
Mensajes: 700
Registrado: 14 Oct 2005, 11:03
Ubicación: Málaga (España)
Contactar:

Mensaje por Dario »

Hola a todos de nuevo.

A vueltas con el tema de los punteros Indirectos he sacado varias conclusiones:

Tal y como decía Jap,
no creo que los campos punteros indirectos estén pensados para trabajar con los datos que están almacenando, sirven para tener acceso a registros de otra tabla.
Jap
Añado a ésta premisa que "el puntero indirecto está más bien pensado para enlazar dos tablas maestras que no tengan ninguna otra manera de relacionarse entre ellas mediante punteros a maestros." ( Palabra de Agustín Maestro :| )

Como ejemplo de COMO NO HAY QUE USAR UN PUNTERO INDIRECTO pongo mi caso:
.Tengo las Tablas MATRICULADOS, con un campo %CONVOCATORIA%, que es puntero Maestro a la Tabla CONVOCATORIAS, con un campo %CURSO%, que es puntero Maestro a la Tabla CURSOS, con un campo %GRUPO-CURSO% que es puntero Maestro a la Tabla GRUPOS-CURSOS.

.Yo había creado un campo %GRUPO-CURSO%, de tipo puntero Indirecto, en CONVOCATORIAS, que resolvía la relación transitiva del MATRICULADO con el GRUPO-CURSO.

Sin embargo, existe una solución más limpia, ya que entre los MATRICULADOS y GRUPOS-CURSOS existe un camino mediante los punteros Maestros, lo cual se resuelve estableciendo el tipo de campo %GRUPO-CURSO% a Puntero Maestro de la tabla GRUPOS-CURSOS, y estableciendo la propiedad "Contenido Inicial" a %CONVOCATORIA.CURSO.GRUPO-CURSO%.

Una cosa que no sabía, y fue lo que determinó que eligiera el puntero Indirecto como solución, es el hecho de que el "Contenido Inicial" no solo se establece cuando se "Crea un nuevo registro" sino que tambien "Actualiza", si se trata de una expresión de campos Puntero a Maestro como en éste caso, cuando alguno de los campo Punteros a Maestro que intervienen en la expresión modifique su valor. :o (Muchas gracias Agustín :) eres fenomenal )
Ésto último es muy importante como colorario de todo éste post, puesto que, además, si no fuera por Agustín :mrgreen: , no viene ni en la ayuda ni lo menciona Velneo en ningún Tutorial (que yo recuerde).

En cuanto al multipartir lista usando campos Punteros Indirectos, en el mapa que colgó Agustín funcionan por el modo que resuelve la Relación. En otros casos como el mío, a parte de que no es la mejor manera de resolver, no es fiable su uso. Y en palabras de Velneo, "No se puede utilizar Multipartir por un campo Puntero Indirecto". :shock:

En fin, y esto es lo que hay. Espero que sirva de ayuda a más gente todo ésto. :D

Ah!, se me olvidaba tambien agradecer a Paco Hoyos y Domingo (DomK) su intervención. Gracias. :wink:

Paco, fuiste el primero en darme la solución , pero no logré entenderte. :oops:
Saludos.

"Dios no hace programas, ni yo hago milagros."

darioplaza@animum3d.com
http://www.animum3d.com
Responder