Enlazar/Relacionar expedientes (relaciones n–>1 y m–>n)

A veces nos interesa que un campo de un expediente nos permita seleccionar items que lo relacionen con otros expedientes

Por ejemplo, tenemos expedientes para introducir temas de personal, y tenemos otros expedientes donde introducimos las formaciones del personal. Aquí nos interesa tener una relación MN , donde un empleado puede estar en muchas formaciones y una formación tiene n empleados

Esta relación puede ser unilateral o simétrica (seleccionar en un sentido o en ambos)

A modo de ejemplo, pongamos q tenemos los patrones con portal_type ‘kmkey_personal’ y ‘kmkey_formacion’

1- Agregar un campo «CPS String List» a los dos schemas afectados. Al campo lo llamaremos ‘PER_r_FOR’. El campo debe agregarse y llamarse exactamente igual en los dos schemas.
La única propiedad que debe configurarse es la «Write: expression», y solo en el schema donde vayamos a hacer la selección (si es simétrica, lo haremos en ambos).

campo a agregar en el schema ‘kmkey_formacion’:

python:object and proxy and util.catalogCrossSetList(‘kmkey_personal’,’PER_r_FOR’, PER_r_FOR,proxy.getDocid(),’getDocid’) or PER_r_FOR

si quisieramos permitir que desde un expediente de personal se puedieran seleccionar n formaciones, haríamos lo mismo en kmkey_personal, utilizando esta expresión :

python:object and proxy and util.catalogCrossSetList(‘kmkey_formacion’,’PER_r_FOR’, PER_r_FOR,proxy.getDocid(),’getDocid’) or PER_r_FOR

fijarse bien en el uso del campo en los parámetros de la función : el segundo parámetro se pasa el nombre del campo (string) y el tercer parámetro es el propio valor del campo, sin comillas

2- Agregar el índice y metadata del campo creado (keyword index) al portal_catalog.

3- Agregar el widget con el nombre igual al nombre del campo al (los) layout correspondiente. Ha de ser un «KMKey Multi select pop up Widget»
Parámetros del widget:
– size : valor 1 –> permite únicamente seleccionar un elemento.
Si ponemos size 2 o más, podremos seleccionar n elementos (es o uno o n)
– vocabulary : kmkey_selected_units
– URL to pop up template : para permitir un solo elemento : ‘selectUnitSimple.html’, para permitir n elementos : ‘selectUnits.html’
– Filter Meta Type (or Portal Type) : dejaremos en blanco para todo, o indicaremos una lista de portal types separados por comas, en el ejemplo, añadiremos el widget en el layout de kmkey_formacion, y en este campo pondremos ‘kmkey_personal’.
– Token for view list : podemos indicar un token html para separar los diferentes valores seleccionados en el modo view del expediente, se puede utilizar por ejemplo la coma (,) o un para seaparlos con un salto de línea

Si vamos ahora a crear un expediente del tipo kmkey_formacion, veremos que nos aparece el campo y los botones que nos permite abrir el pop-up que visualiza la lista de expedientes de personal, donde relizaremos la selección

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies

Somos agentes digitalizadores

Software ISO subvencionado hasta 10.000€

Abrir chat
Equipo QmKey
¿Desea una demo y una cotización sin compromiso?