- Table of contents
- Tipo de metadato Referencia (o Espejo)
Tipo de metadato Referencia (o Espejo)¶
Información¶
Autor Ruber López, David Henriquez Sitio Web http://www.facebook.com/adapting-lab Repositorio source:MirrorField Código fuente Versión Actual v1.0 Compatible con Abox 2.7.4
Resumen¶
Este tipo de metadato obtiene el valor de su carpeta padre o de los padres de está, haciendo llamadas recursivas subiendo en la jerarquía hasta encontrar el valor.
Notas de instalación¶
Descargue el código fuente del plugin y compílelo usando Visual Studio 2010. Luego dependiendo si lo va a integrar en una instalación de Abox o en un proyecto de extensión de Abox sigua las siguientes instrucciones.
En una instalación de Abox¶
Copiar en la dll que genera el proyecto, en principio se debe llamar Adapting.MirrorMetadata.dll, en la carpeta /bin del sitio web donde esta Abox. Luego copiar la vista MirrorFieldField.ascx en la carpeta Fields que se encuentra en Areas/Network/Views/
En un proyecto de extensión de Abox.¶
Incluya el proyecto en su proyecto para extender Abox, añada una referencia en Adapting.Web al proyecto que acaba de incluir. Luego copiar la vista MirrorFieldField.ascx en la carpeta Fields que se encuentra en Areas/Network/Views/ en el proyecto Adapting.Web
Guía de uso¶
Coloque como valor del metadato el código del metadato de su carpeta padre que contiene el valor. En caso de que el metadato de la carpeta padre sea tipo referencia subirá otro nivel y buscará el valor y así sucesivamente. Si el metadato de la carpeta padre no es tipo referencia retornará su valor y si el metadato no lo encuentra retornará nulo.
Historico¶
09/12/2012 A partir de la versión 2.7.5 subirá por todos sus padres hasta encontrar el metadato especificado. Permanece la lógica anterior de buscar metadatos de tipo referencia. Una opción interesante es poder referenciar un mismo metadato desde un documento o desde un expediente.
09/12/2012 (2.7.6+) Ahora permite no solo referenciar metadatos de sus padres sino también propios del contenido incluso algunos datos básicos. Se mostrará a continuación como hacerlo:
Para especificar que son metadatos/Datos básicos propios se coloca el prefijo "this":
Ejemplo:
Para metadatos:
this.deviceCode esto retorna el valor del metadato con código "deviceCode" del contenido, en caso de no tener el metadato o el metadato no tener valor retorna vácio.
Para datos básicos:
Los siguiente son los permitidos:
this.title
this.code
this.datecreated
this.datemodified
this.description ----> No interpreta código html;
this.workflowstate ----> No aplica para carpetas
this.workflowstatedate ----> No aplica para carpetas
this.isrecord ----> Aplica solo a documentos
this.mode ----> Aplica solo a documentos
22/05/2015 (3.0.0) se agrego la nueva palabra:
this.author ----> para que muestre el valor del autor de la entidad.
this.EntityType ----> muestra el valor del tipo de entidad (tipo doc. o serie doc.) según la entidad
10/06/2015 (3.0.0.3600 en adelante) se permite uso en formularios e informes
El Metadato espejo ahora puede contener metadatos de una organización definida en un metadato OrganizationDataBaseLink ya sea en el padre del contenido o en el mismo contenido. Además pueden ser usadas en formularios e informes como "punteros" a valores reales.
Ejemplos:
11.17 -> Referencia al metadato 11.17 de cualquiera de sus padres que los contenga.
11.17[Ciudad] -> Siendo 11.17 un OrganizationDatabaseLink, Busca la organizacion definida en el metadato 11.17 de sus padres y obtiene el metadato con código "Ciudad" de esa organización.
this.10.17[Ciudad] -> Lo mismo que el anterior pero busca el metadato tipo OrganizationDatabaseLink 10.17 dentro del mismo contenido (No va a los padres).
this.10.17[this.Name] -> Lo mismo que lo anterior pero busca entre las propiedades de la organización el atributo Name y no en metadatos.
metadata.17[this.Code] --> Busca el código de la organización con el código metadata.17
24/09/2015 Se pueden insertar funciones para modificar el resultado que se ve:
El Metadato espejo ahora acepta funciones:
La primera desarrollada es de organización, si el valor del metadato que refleja tiene códigos o guids de organizaciones separadas por comas (,), muestra el nombre de la organización y en paréntesis el código. En caso que el texto no sea una organización lo muestra tal cual como esta.
Para usarla se llama: Org(ref_metadato), donde ref_metadato es el uso normal para reflejar que se le ha dado con anterioridad a este metadato
Ejemplo
metadato contenido padre:
Código: 11.06
Valor: org1,org2,org3,org4
metadato contenido:
Valor: Org(11.06)
Vista: Organización 1 (org1), Organización 2 (org2), Organización 3 (org3), org4
Nota: En este caso la org4, no existe
En esta función se pueden hacer reflejos de otros reflejos, y ademas usar el this, por ejemplo Org(this.title).
23/12/2015 Nueva función que permite visualizar los grupos de una organización referenciada por metadato: GroupsOrg()
Es posible "pintar" el/los grupo/s de organización de un metadato espejo, junto con su código: GroupsOrg(ref_metadato), que trabajaría de la siguiente manera:
metadato contenido padre:
Código: 11.06
Tipo: OrganizationLink, OrgDatabaseLink
metadato contenido:
Valor: GroupsOrg(11.06)
Vista: Grupo 1(code1), Grupo 2 (code2)
Nota: En este caso hay 2 grupos relacionados con la organización.
Funciona también con metadatos propios del contenido, utilizando p.ej. this.GroupsOrg(11.06)
OJO, esta función sólo trabajará con espejos de OrganizationLink y de OrgDatabaseLink.
12/08/2016 Ampliación de funciones del OrgDatabaseLink al metadato OrganizationLink
Ahora se permiten las funciones aplicables al DatabaseLink también con los OrganizationLinks. P.ej. 11.17[Ciudad] se trae el metadato "Ciudad" del OrganizationLink del padre con el código 11.17.
15/11/2016 Ahora se admiten los siguientes tags para los atributos del contenido:- this.entitytypecode -----> NameEntityType(CodeType)
- this.entitytypename -----> NameEntityType
22/01/2018 Se agrega la opcion de utilizar las mismas palabras claves que se utilizan al leer un metadato tipo organizacion y orgDataBaseLink a los metadatos de tipos Documento (DocumentLink) y Expediente (CasefolderLink).
30/10/2018 Ahora es posible encontrar el metadato referenciado en el expediente (abuelo del documento), aún cuando el metadato no aparece en el padre.
05/12/2018 Ahora se pueden referenciar los datos básicos del contenido padre (expediente o carpeta). Se mostrará a continuación como hacerlo:
Para especificar que son los datos básicos del contenido padre se coloca el prefijo "parent":
Ejemplo:
Los siguiente son los permitidos:
- parent.title
- parent.code
- parent.datecreated
- parent.datemodified
- parent.description ----> No interpreta código html
- parent.workflowstate ----> No aplica para carpetas
- parent.workflowstatedate ----> No aplica para carpetas
- parent.entitytypecode -----> NameEntityType(CodeType)
- parent.entitytypename -----> NameEntityType
06/02/2019 Ahora el metadato MirrorField tiene nuevas opciones para obtener información del usuario, y se pueden usar mediante el campo de autor o con un metadato de usuario (UserLink), desde el mismo contenido.
Ejemplos:
- this.author[this.email] -> Busca en el usuario autor del contenido entre las propiedades del usuario el atributo Email.(No va a los padres).
- this.author[this.fullname] -> Busca en el usuario autor del contenido entre las propiedades del usuario el atributo FullName.(No va a los padres).
- this.author[this.logonexpirationdate] -> Busca en el usuario autor del contenido entre las propiedades del usuario el atributo LogOnExpirationDate.(No va a los padres).
- this.author[Esq.Usu.Personal.Puesto] --> Busca en el autor el valor del metadato de usuario indicado.
- this.10.17[this.email] -> Busca en el metadato (Userlink) con código 10.17 entre las propiedades del usuario el atributo Email.(No va a los padres).
- this.10.17[this.fullname] -> Busca en el metadato (Userlink) con código 10.17 entre las propiedades del usuario el atributo FullName.(No va a los padres).
- this.10.17[this.logonexpirationdate] -> Busca en el metadato (Userlink) con código 10.17 entre las propiedades del usuario el atributo LogOnExpirationDate.(No va a los padres).
07/05/2019 Ahora el metadato MirrorField tiene nuevas opciones para hacer referencia a un metadato o a un dato básico de los usuarios que contiene un RoleLink.
metadato contenido padre:
Código: 11.06
Tipo: RoleLink
Usuarios que contiene el RoleLink: LastName, User1 | LastName, User2
metadato contenido:
Valor: 11.06[user(this.email)]
Vista: user1@email.com | user2@email.com
- También se puede hacer con un RoleLink que está en el mismo contenido p.ej: this.10.04[user(this.email)]
- Funciona también con metadatos propios del usuario, utilizando p.ej: 11.06[user(UserMetadataCode)]
13/12/2019 Ahora el metadato MirrorField cuando se utiliza para hacer referencia a un metadato de usuario con un RoleLink ya no muestra el GUID cuando es un metadato Folder, Document o Casefolder, ahora muestra el Nombre
25/01/2021 Se añade validación del metadato "CustomOrganizationDataBaseLink".
4/02/2021 Se añade el nuevo caso para cuando el metadato del usuario es de tipo "Organization"
25/11/2021 Se añade el nuevo caso para cuando el metadato del usuario de un Rolelink es de tipo imagen.
- Ejempo: this.13.04[user(imageFieldCode)]
- Si el Rolelink tiene varios usuarios con el campo de imagen, solo se mostrará la imagen del primer usuario del rolelink.
11/03/2022 El Metadato espejo ahora puede contener campos de un contacto definido en un metadato "ContactDataBaseLink" ya sea en el padre del contenido o en el mismo contenido. Además pueden ser usadas en formularios e informes. Se pueden traer los datos básicos de los contactos Name, LastName, Code, Email, Address, Phone, etc.
Ejemplos:
47.02 -> Referencia al metadato 47.02 de cualquiera de sus padres que los contenga.
this.13.272[this.Name] -> Lo mismo que el anterior pero busca el metadato tipo "ContactDatabaseLink" 13.272 dentro del mismo contenido, obtiene el campo "Name". (No va a los padres).
this.13.272[this.Phone] -> Lo mismo que lo anterior pero busca entre las propiedades del contacto el atributo "Phone".
25/11/2021 Se añade OfficialDate a MirrorField para utilizar su valor.