Proyecto

General

Perfil

Actualizar valor del metadato

Información

Autor Ruber López, David Henriquez
Sitio Web http://www.facebook.com/adapting-lab
Repositorio source:Acciones-America/trunk/src/UpdateMetadataValueAction
Código fuente http://svn-community.adapting.com:8080/svn/Community/Plugins/Acciones-America/trunk/src/UpdateMetadataValueAction
Versión Actual v1.0
Compatible con Abox 2.6.3

Resumen

Esta acción se encarga de actualizar el valor de un metadato del contenido al que se le esta ejecutando la transición con un valor constante, el valor de una palabra reservada o el valor de otro metadato.

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 la dll que genera el proyecto, en principio se debe llamar Adapting.UpdateMetadataValueAction.dll, en la carpeta /bin del sitio web donde esta Abox.

Incluya el proyecto en su proyecto para extender Abox, añada una referencia en Adapting.Web al proyecto que acaba de incluir.

Guía de uso

Una vez incluida la clase en el proyecto y recompilado el proyecto, tiene que modificar el XML del workflow para añadir esta acción en las acciones que ejecuta el worlflow al cambiar de estado. Para hacer esto incluya este código en las acciones de la transición en la que quiere que se ejecute.

Para actualizar el metadato se puede hacer de varias maneras:

Actualizando con metadato:

        <action type="UpdateMetadataValue">
          <param name="fieldcode">deviceName</param>
          <param name=".metadata_value">Doc.AreaIdent_NivlDesc</param>
        </action>

Actualizando con keyword:

        <action type="UpdateMetadataValue">
          <param name="fieldcode">deviceName</param>
          <param name=".keyword_value">CurrentUser</param>
        </action>

Actualizando con constante:

        <action type="UpdateMetadataValue">
          <param name="fieldcode">deviceName</param>
          <param name=".constant_value">Hola mundo</param>
        </action>

Donde,
fieldcode: Código del metadato que se va a actualizar
.metadata_value: Código del metadato con el valor que se va a copiar.
.keyword_value: Código de la palabra clave con el valor que se va a copiar.
.constant_value: Valor que se va a copiar.

Nota: Esta acción es para usarla con workflows de documentos y expedientes.

Historico

12/12/2012 A partir de la 2.7.5 Se podrá actualizar metadatos de tipo usuario y role con la keyword [CurrentUser] y metadatos de tipo organización y role con la keyword [CurrentUserOrganizations].

14/03/2013 (2.7.7+): Ahora se podrá actualizar el valor de un metadato del contenido actual con el valor del metadato de uno de sus padres, el subirá tantos niveles sea necesario hasta encontrar el metadato, para hacer uso de esta función habrá que incluir el siguiente parámetro.

Actualizando con metadato:

        <action type="UpdateMetadataValue">

          <param name="fieldcode">deviceName</param>

          <!-- Utilizar ".constant_value" y digitar el código del metadato -->
          <param name=".constant_value">Doc.AreaIdent_NivlDesc</param>

          <!-- Nuevo parámetro -->
          <!-- El parámetro no es obligatorio, en caso de no ponerlo o de que su valor sea "false" 
               no buscará en los padres, en caso de ponerlo y su valor sea "true" buscará en los padres  -->
          <param name="parentField">true</param>

        </action>

03/04/2014 (2.7.11): Se cambio el parametro "parentField" por "Action", dicho parametro solo admite los valores "fromchildtoparent" o "fromparenttochild", especifica si se actualizara desde el metadato de contenido hacia un metadato del padre o desde un metadato del padre hacia el contenido actual.

        <action type="UpdateMetadataValue">
          <!--Codigo del metadato del contenido actual-->
          <param name="fieldcode">deviceName</param>

          <!-- Utilizar ".constant_value" y digitar el código del metadato del padre-->
          <param name=".constant_value">Doc.AreaIdent_NivlDesc</param>

          <!-- Nuevo parámetro -->
          <!-- El parámetro no es obligatorio, en caso de usar "fromchildtoparent" se actualizara desde el contenido
               el valor del metadato de alguno de sus padres -->
          <param name="action">fromchildtoparent</param>

        </action>

28/04/2015 (3.0.0): Ahora es posible añadir texto a este valor para actualizar el valor de un metadato del contenido actual ,para hacer uso de esta función habrá que incluir el siguiente parámetro.

        <action type="UpdateMetadataValue">
          <!--Codigo del metadato del contenido actual-->
          <param name="fieldcode">deviceName</param>

          <!-- Utilizar ".constant_value" y digitar el código del metadato del padre-->
          <param name=".constant_value">Doc.AreaIdent_NivlDesc</param>

          <!-- Nuevo parámetro -->
          <!-- El parámetro no es obligatorio, en caso de usarlo se debe colocar este parametro con el nombre "textinfront" y el texto que quiera añadir 
          delante del valor del metadato Ej: "[Value] texto" -->
          <param name="textinfront"> Texto </param>

          <!-- Nuevo parámetro -->
          <!-- El parámetro no es obligatorio, en caso de usarlo se debe colocar este parametro con el nombre "textback" y el texto que quiera añadir 
          detrás del valor del metadato Ej: "texto [Value]"-->
          <param name="textback"> texto </param>

          <!-- El parámetro no es obligatorio, en caso de usar "fromchildtoparent" se actualizara desde el contenido
               el valor del metadato de alguno de sus padres -->
          <param name="action">fromchildtoparent</param>

        </action>

21/07/2015: ya se puede utilizar con metadatos MirrorField y MathSuites

06/10/2015 (3.0.0): desde ahora se puede usar la funcionalidad de añadir texto delante y detrás de un valor de metadato al momento de reemplazarlo con una Keyword o algún otro metadato

26/01/2016 (3.0.0.3747): Se cambio como se obtenia el fieldvalue en la accion, ya que como se pedía antes, no se traía los esquemas asociados al tipo completamente, luego de crear un expediente con la accion CreateResponseCasefolder

08/08/2016 (3.3): Se agrego un nuevo parametro opcional "othercontent", para poder actualizar otro contenido desde el contenido actual, se admiten metadatos de tipo documentLink, CaseFolderLink, texto o constantes para indicar el contenido a actualizar, para constantes y metadatos de texto funciona con el ID del contenido a actualizar.

         <action type="UpdateMetadataValue">
           <!-- metadato de donde se obtiene el valor a actualizar (contenido actual)-->
           <param name="fieldcode">metadataLocal</param>
           <!-- metadato que se va a actualizar en el otro contenido-->
           <param name=".constant_value">MetadataOtherConent</param>
           <!-- nuevo parametro opcional-->
           <param name="othercontent">esq_luis.DocLink</param>
         </action>

04/12/2018 (4.2.0): Mejora para condicionar la actualización de un metadato en el plugin UpdateMetadataValue.
Incluyendo una condición detrás de otra el sistema realiza un AND entre todas ellas para habilitar la acción de actualización de un metadato.
Consiste en la comprobación del valor de un metadato contra otro metadato, contra una constante o contra una palabra clave.
<param name="metadata">Doc.DatosRetDisp.RespOblig</param>
<param name="operator">Equal</param>
<param name="constant">true</param>
<param name="metadata">Doc.DatosRetDisp.RespOblig2</param>
<param name="operator">Equal</param>
<param name="metadata">Doc.DatosRetDisp.RespOblig3</param> 
<param name="keyword">[Null]</param>
<param name="operator">Equal</param>
<param name="metadata">Doc.DatosRetDisp.RespOblig</param> 

  • Se permiten un máximo de tres expresiones a comparar. Ejemplo: A = constante, B = C y C = keyword.
  • Los parámetros de esta mejora son opcionales.

29/04/2019 (5.0.0): Se agregó un nuevo parametro "metadataParent" para agregar el codigo de un metadato ubicado en el padre del contenido, este parametro se debe colocar siempre como el primer valor a comparar, dentro de las condiciones para actualizar el valor del metadato (la mejora anterior).

<!-- Codigo del metadato que está en el padre del contenido. -->
<param name="metadataParent">778.01</param>
<param name="operator">Different</param>
<!-- keyword a comparar. -->
<param name="keyword">[Null]</param>
<!-- Codigo del metadato que está en el padre del contenido. -->
<param name="metadataParent">778.01 </param>
<param name="operator">Different</param>
<!-- constante a comparar. -->
<param name="constant">000000000</param>

14/06/2019
Se añade la posibilidad de mover o actualizar valores de metadato tipo mastelist a una organization u organizationdatabaselink.

20/03/2020
Se añade la posibilidad de actualizar múltiples metadatos

25/03/2020
Se añade la accion UpdateMetadataValueMultiple dentro de la accion UpdateMetadataValue, y permite los paramtros como metadata_value, keyword_value, constant_value sin punto

08/04/2020
Se añade nuevo parametro addTextValue y keyword [ContentSummary] a accion (UpdateMetadataValueMultiple,UpdateMetadataValue)

<param code="addTextValue" minOccurs="0" maxOccurs="1">
    <type>bool</type>
    <name>addTextValue</name>
    <description>Agrega un valor con un separador</description>
</param>

13/04/2020
Se agrega validación antes de actualizar el metadato, comprobando que dicho metadato exista en el documento.

16/04/2020
Se quita validación antes de actualizar el metadato solo en la acción UpdateMetadataValue.

La acción UpdateMetadataValueMultiple seguirá con dicha validación ya que es un error el poder "actualizar" un metadato no existente en el contenido porque en realidad no actualiza, sino que inserta un nuevo registro en la base de datos, dicho registro queda en el aire convirtiéndose en basura ya que no se utiliza.

En este error también se podía "actualizar" metadatos pertenecientes a cualquier esquema ya se de documentos, expedientes, etc.

Este error se utilizaba para insertar un valor "oculto" en un metadato que no pertenece al contenido, para actualizar un metadato que, si existe en dicho contenido cabe decir que este valor no se volvía a utilizar y no era borrado.

29/01/2021 Se agrega validación para cuando se usa el parámetro "Action" con el valor "fromparenttochild", porque lanzaba error la acción cuando el valor encontrado en el metadato del contenido padre venía como nulo o vacío.

25/03/2021

  • Se corrige líneas vacías que se agregaban anteriormente y se limpian cuando se ejecuta la acción.
  • Se enumera automáticamente las líneas añadidas a partir del numero de separadores que se encuentre.
  • Para el caso de Metadato tipo texto corto (string) el separador es "|" y para metadato tipo texto largo (memo) el separador es "\n".
  • Esto cambio solo se hicieron para "UpdateMetadataValue".

22/06/2021
Se agregó una nueva opción al parámetro "Action", con está opción "fromchildrentoReferredParents" se especifica si se actualizará desde el metadato del documento actual hacia un metadato de los expedientes en los que el documento esté referenciado.

        <action type="UpdateMetadataValue">
          <param name="action">fromchildrentoReferredParents</param>           
          <param name="fieldcode">13.14</param> <!-- Código del metadato que está en el documento. -->         
          <param name=".constant_value">19.08</param> <!-- Código del metadato que está en el expediente donde el documento esté referenciado. -->        
        </action>

14/02/2024

  • Se agregó un nuevo parámetro "fieldcodedocandexp" que recibe el código del metadato del documento y el código de metadato del expediente que se quiera actualizar
<param code="fieldcodedocandexp" minOccurs="0" maxOccurs="1">
    <type>string</type>
    <name>fieldcodedocandexp</name>
    <description>Agrega un código del metadato del documento y el código de metadato del expediente que se quiera actualizar separados por coma (,)</description>
</param>

  • Esta funcionalidad solo se aplicara para documentos hacia expedientes, en el parametro toma el primero como el metadato del documento y el segundo como el mentadato del expediente

27/02/2024

  • Se modifico en la validacion de workflow para que cuando se envie el parametro "fieldcodedocandexp" los demas parametros obligatorios pasen a un segundo plano.
Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)