Proyecto

General

Perfil

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: |

Nota: En este caso el RoleLink está en un contenido padre y contiene dos usuarios por lo tanto en la vista del medato MirrorField se muestran los correos de cada usuario.
  • 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.

Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)