Ayuda sobre productos BOLD:

DefaultObjectValues

< Volver

ATENCIÓN: El siguiente contenido es de uso avanzado y su utilización puede ocasionar daños irreparables en la configuración del sistema

La sección DefaultObjectValues del fichero QueryCustom.xml permite definir mediante expresiones de evaluación los valores por defecto que se desea que tengan determinados atributos de la clase.

  • EventName: Define el tipo de evento que se trata (actualmente solo 2: OnUpdateObject y OnCreateObjet)
  • Class: Define el tipo de objeto sobre el que se actua
  • Attribute: Nombre persistente del atributo a tratar
  • Enabled: permite habilitar o desactivar reglas de forma selectiva (otra opción es comentar la regla completa utilizando comentarios XML). Se pueden desactivar todas las reglas añadiendo dicho atributo a nivel del elemento DefaultObjectValues)

Ejemplo 1: Cambiar el atributo Name de los objetos Contrato

Las reglas de valor por defecto del cliente pueden ser necesarias para asegurar que determinados atributos de alguna clase de objetos deben tener valores cte o calculados según el contexto generado por el propio objeto. Un ejemplo de ello podría ser el siguiente: Se desea que el nombre/código de los contratos – que no son plantilla- sigan la pauta siguiente: Código de la persona empleada + Año de inicio del contrato (YYYY)+ Mes de inicio del contrato (MM) + Día de inicio del contrato (DD).

<DefaultObjectValues>
  <DefaultValue EventName="OnUpdateObject" Class="ContractWorker" Attribute="Name">
    <![CDATA[
      IfElse(IsTemplate, Name,
        IfElse(Active=0, Name,
                         Str(Worker.Name) + "-" + Str(Year(ContractStart)) + 
                         RightStr("0" + Str(Month(ContractStart)), 2) + RightStr("0" + Str(Day(ContractStart)), 2))
      )
    ]]>
  </DefaultValue>
</DefaultObjectValues>

Ejemplo 2: Forzar la duración mínima de un horario jornada

El siguiente ejemplo fuerza la restricción de cualquier contrato que se grabe a que los horarios que se asignen duren como mínimo 3h, con la excepción de que la persona usuaria que grabe el contrato sea de tipo Administrador, en cuyo caso se le respetará el cambio de introduzca en esta propiedad.

<DefaultObjectValues Enabled="true">
    <DefaultValue EventName="OnUpdateObject" Class="ContractWorker" Attribute="ShiftConstraints.MinDayHours" Enabled="true">
      <![CDATA[
        If( ProfileFromUser(UserLogged()) != "Administrador", Prop(3, "h") )
    ]]>
    </DefaultValue>
</DefaultObjectValues>

En este ejemplo se pueder ver cómo utilizando el atributo Enabled, es posible:

  • habilitar o desactivar todas las reglas si está a nivel del elemento DefaultObjectValues
  • habilitar o desactivar reglas de forma selectiva si está a nivel del elemento DefaultValue

Importación y valores por defecto

Atención! Forzar el valor de los atributos de un objeto de esta forma puede provocar que en las importaciones que se generen erróneamente nuevas versiones de un objeto aún cuando entre ellas, no exista ningún cambio. Esto es así porque la fase de import intenta aplicar un valor, pero el mismo es sustituido en el instante de la grabación por el valor por defecto, de tal forma que la import nunca consigue sustituir el valor existente generando nuevas versiones de forma indefinida sin tener ninguna diferencia entre ellas (siempre tienen el valor que se ha fijado en última instancia por defecto).

Was this article helpful?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
How can we improve this article?
How Can We Improve This Article?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Contenido