SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Guía de Triggers
Versión 5.1.0
iSUM 5.1.0: Guía de Triggers




                                                           Triggers (Disparadores)
                  En esta guía se define el concepto de trigger, los diferentes tipos de evento que se
                  pueden registrar, y por que objetos de iSUM son soportados.
                      •    Introducción
                      •    Activación de los triggers
                      •    Tipos de evento
                      •    Definición de Trigger
                      •    Características de un trigger
                      •    Registrar un trigger
                      •    Objetos que soportan la gestión de triggers
                      •    Implementación y configuración de una tarea


Introducción
                  iSUM proporciona un mecanismo con el cual puede automatizar tareas, de forma
                  que estas sean ejecutadas antes o después de que se produzca un determinado evento
                  sobre un objeto.


Activación de los triggers
                  Dentro del fichero isum.xml se especifica si iSUM debe gestionar triggers.
                  También puede cambiar el nombre del fichero donde se registran y definen los
                  trigers.
                  ...
                  <trigger>
                      <enabled>false</enabled>
                      <definition_file_name>triggers.xml</definition_file_n
                      ame>
                  </trigger>
                  ...

Tipos de evento
                  Se entiende como evento la llamada a un método de un objeto de persistencia.
                  Puede definir una tarea para que se lleve a cabo cuando se produzca un evento, pero
                  la tarea asociada al evento puede ser ejecutada antes o después de que se produzca
                  dicho evento.


Tipos de evento
                      •    Insert: Se produce cuando se intenta guardar el objeto por primera vez.
                      •    Update: Se produce cuando se intenta modificar algún dato del objeto.
                      •    Remove: Se produce cuando se intenta eliminar el objeto.




                                                   1
iSUM 5.1.0: Guía de Triggers


Definición de Trigger
            Un trigger es una clase que implementa una interfaz que dispone de un método
            run(...), en el cual se implementa la tarea que debe ser llevada a cabo, y un método
            error(...), en el cual se implementa la tarea que debe ser llevada a cabo en caso de
            que se produzca algún problema, en la mayoría de casos debería deshacer las
            acciones llevadas a cabo en el método run().


Características de un trigger
            Puesto que los trigger se establecen sobre objetos de persistencia, cada objeto de
            persistencia que soporte la gestión de triggers tiene asociado un tipo de trigger.
            Cada trigger implementa una interfaz concreta, así pues para gestionar un trigger
            sobre un objeto que implemente la interfaz Device dispone de una interfaz
            DeviceTrigger la cual define los siguientes métodos.
                •    public void run(Device device);
                •    public void error(Device device);
            Como puede observar los dos métodos proporcionan un objeto, este objeto es el
            objeto sobre el cual se produjo el evento.


Registrar un trigger
            Para que una tarea se lleve a cabo, debe registrar el trigger previamente. Para
            registrar un trigger existe un fichero de registro llamado triggers.xml en el cual debe
            especificar el nombre de la clase que implementa el código de la tarea que el trigger
            se encargara de ejecutar, e indicar si la tarea es critica o no.
            Una tarea critica implica que si alguno de los triggers registrados para el mismo
            evento no se ejecuta correctamente, los triggers anteriormente ejecutados serán
            notificados del imprevisto con una llamada al método error(...), e iSUM abortará la
            acción que iba a realizar sobre el objeto, en el caso en el cual iSUM ya hubiera
            realizado la acción, como ocurre en los triggers definidos para ejecutarse después de
            haberse realizado la acción, iSUM no deshará dicha acción sobre el objeto, pero si
            notificara a los triggers anteriormente ejecutados.
            Cada objeto de iSUM que soporta la gestión de triggers tiene una entrada definida en
            el fichero de configuración triggers.xml que debe ser completada para definir o
            registrar un trigger.
            Estructura del fichero de configuración de triggers correspondiente a la definición de
            triggers para gestionar eventos sobre objetos device. Puede observar que la
            estructura
                 <class>
                       <name>class_name</name>
                       <critical>is_critical</critical>
                 </class>
            solo debe ser definida cuando se define un trigger.
             <triggers>
                 …
                 <device>
                       <before_insert>
                       </before_insert>
                       <after_insert>
                             <class>
                                   <name>Name_One</name>
                                   <critical>false</critical>



                                            2
iSUM 5.1.0: Guía de Triggers


                                </class>
                                <class>
                                      <name>Name_Two</name>
                                      <critical>false</critical>
                                </class>
                          </after_insert>
                          <before_update>
                          </before_update>
                          <after_update>
                          </after_update>
                          <before_remove>
                          </before_remove>
                          <after_remove>
                                <class>
                                      <name>Name_three</name>
                                      <critical>false</critical>
                                </class>
                          </after_remove>
                    </device>
                    …
                </triggers>

Objetos que soportan la gestión de triggers
                Cada objeto de iSUM que soporta la gestión de triggers tiene asociada una interfaz,
                la cual debe ser implementada por el trigger que defina alguna tarea sobre dicho
                objeto.


Relación de objetos iSUM con sus respectivas interfaces trigger.
                    •   AttributeTrigger – GroupAttribute, PortalAttribute, ServiceAttribute,
                        UserAttribute
                    •   CertificationAuthorityTrigger – CertificationAuthority
                    •   ContentTypeTrigger -- ContentType
                    •   DescriberTrigger -- Describer
                    •   DeviceTrigger -- Device
                    •   GroupTrigger -- Group
                    •   IntegratorTrigger -- Integrator
                    •   InterfaceTrigger -- Interface
                    •   LanguageTrigger -- Language
                    •   PortalTrigger -- Portal
                    •   ProfileTrigger -- Profile
                    •   RendererDescriptorTrigger -- RendererDescriptor
                    •   RenderizationRuleSetTrigger -- RenderizationRuleSet
                    •   ServiceTrigger -- Service
                    •   ShortcutTrigger -- Shortcut
                    •   SkinTrigger -- Skin
                    •   SourceTrigger -- Source
                    •   SourceValueTrigger -- SourceValue
                    •   TableSourceTrigger -- TableSource
                    •   TransformationRuleSetTrigger -- TransformationRuleSet
                    •   TransformerDescriptorTrigger -- TransformerDescriptor
                    •   UserTrigger -- User
                    •   UsersGroupTrigger -- UsersGroup
                    •   UsersGroupTypeTrigger -- UsersGroupType




                                               3
iSUM 5.1.0: Guía de Triggers


Implementación y configuración de una tarea
            Para implementar una tarea debe construir una clase que implemente la interfaz del
            trigger correspondiente y registrarla en el fichero triggers.xml .
            Ejemplo:
            public class AddProfileToUser implements UserTrigger{
               public Trigger_Test(){
               }
               public void run(User user){
                  IsumFactory iFactory;
                  iFactory =
                  PersistenceManager.getIsumFactory(Config.getInstance(
                  ).persistenceType);
                  Profile profile = iFactory.getProfile(“E-COMMERCE”);
                  user.addProfile(profile.getID());
               }
               public void error(User user){
                  IsumFactory iFactory;
                  iFactory =
                  PersistenceManager.getIsumFactory(Config.getInstance(
                  ).persistenceType);
                  Profile profile = iFactory.getProfile(“E-COMMERCE”);
                   user.removeProfile(profile.getID());
               }
            }
            Como puede apreciar en el código, la función que este realiza es la de asignar un
            perfil a un usuario.
            Ahora hay que registrar el trigger en el fichero triggers.xml.
            <triggers>
                …
                <user>
                      <before_insert>
                      </before_insert>
                      <after_insert>
                            <class>
                                  <name>AddProfileToUser</name>
                                  <critical>false</critical>
                            </class>
                            <class>
                                  <name>CreateAccount</name>
                                  <critical>true</critical>
                            </class>
                      </after_insert>
                      <before_update>
                      </before_update>
                      <after_update>
                      </after_update>
                      <before_remove>
                      </before_remove>
                      <after_remove>
                      </after_remove>
                </user>
                …
            </triggers>
            Puede apreciar, que el trigger no se ha definido como critico, sin embargo si se ha
            implementado el método error(...), también puede ver que hay definido otro trigger,
            llamado CreateAcound que su tarea es la de crear automáticamente una cuenta de
            acceso, a un servicio de comercio electrónico. Como la creación de la cuenta es
            posterior a la asignación del perfil que da acceso al servicio, si no se ha creado la


                                            4
iSUM 5.1.0: Guía de Triggers


cuenta de acceso al servicio correctamente, iSUM notificará al trigger
AddProfileToUser llamando al método error(...) el cual quitara el perfil
anteriormente asignado al usuario, para que no tenga acceso a un servicio para el
cual no dispone de los datos requeridos.




                               5

Más contenido relacionado

La actualidad más candente

La actualidad más candente (12)

Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unit
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instancia
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Mv Lsl
Mv LslMv Lsl
Mv Lsl
 
Chap 15epin
Chap 15epinChap 15epin
Chap 15epin
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)
 
Introduccion java
Introduccion javaIntroduccion java
Introduccion java
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadas
 
Lab herencia
Lab herenciaLab herencia
Lab herencia
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 

Destacado

Cost of living_in_miami,_florida_(1)[1]
Cost of living_in_miami,_florida_(1)[1]Cost of living_in_miami,_florida_(1)[1]
Cost of living_in_miami,_florida_(1)[1]11hsiehalice
 
250 Paysagesdescriptifs
250 Paysagesdescriptifs250 Paysagesdescriptifs
250 Paysagesdescriptifszalinet
 
Rethinking Argument
Rethinking ArgumentRethinking Argument
Rethinking ArgumentJonna Gilfus
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de softwareElmer Josue
 

Destacado (7)

Cost of living_in_miami,_florida_(1)[1]
Cost of living_in_miami,_florida_(1)[1]Cost of living_in_miami,_florida_(1)[1]
Cost of living_in_miami,_florida_(1)[1]
 
Dobozy
DobozyDobozy
Dobozy
 
250 Paysagesdescriptifs
250 Paysagesdescriptifs250 Paysagesdescriptifs
250 Paysagesdescriptifs
 
Rethinking Argument
Rethinking ArgumentRethinking Argument
Rethinking Argument
 
Presentación
PresentaciónPresentación
Presentación
 
Cuadrilateros
CuadrilaterosCuadrilateros
Cuadrilateros
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 

Similar a Triggers (20)

Java Listeners
Java ListenersJava Listeners
Java Listeners
 
Triggers
TriggersTriggers
Triggers
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Seguridad en access
Seguridad en accessSeguridad en access
Seguridad en access
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffc
 
Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008
 
Triggers en BD mysql
Triggers en BD mysqlTriggers en BD mysql
Triggers en BD mysql
 
9.animaciones
9.animaciones9.animaciones
9.animaciones
 
Clase tres
Clase tresClase tres
Clase tres
 
10.Polimorfismo Java
10.Polimorfismo Java10.Polimorfismo Java
10.Polimorfismo Java
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Introduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORMIntroduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORM
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
 
Sesion 02 clases en_vb_net
Sesion 02 clases en_vb_netSesion 02 clases en_vb_net
Sesion 02 clases en_vb_net
 
Java struts2 - 03 componentes de la aplicacion
Java   struts2 - 03 componentes de la aplicacionJava   struts2 - 03 componentes de la aplicacion
Java struts2 - 03 componentes de la aplicacion
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Disparadores 1213820550525607-9
Disparadores 1213820550525607-9Disparadores 1213820550525607-9
Disparadores 1213820550525607-9
 
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOSSQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
 

Último

INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxCORPORACIONJURIDICA
 
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptx
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptxINTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptx
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptxRENANRODRIGORAMIREZR
 
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxPLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxwilliamzaveltab
 
LIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de GestiónLIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de GestiónBahamondesOscar
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxDr. Edwin Hernandez
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..JoseRamirez247144
 
modulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdfmodulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdfmisssusanalrescate01
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxedwinrojas836235
 
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxAUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxMatiasGodoy33
 
ISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónjesuscub33
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassJhonnyvalenssYupanqu
 
Buenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasBuenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasmaicholfc
 
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfinformacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfPriscilaBermello
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxCONSTRUCTORAEINVERSI3
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfJaquelinRamos6
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzassuperamigo2014
 
Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Gonzalo Morales Esparza
 
Como Construir Un Modelo De Negocio.pdf nociones basicas
Como Construir Un Modelo De Negocio.pdf   nociones basicasComo Construir Un Modelo De Negocio.pdf   nociones basicas
Como Construir Un Modelo De Negocio.pdf nociones basicasoscarhernandez98241
 
EVALUACIÓN PARCIAL de seminario de .pdf
EVALUACIÓN PARCIAL de seminario de  .pdfEVALUACIÓN PARCIAL de seminario de  .pdf
EVALUACIÓN PARCIAL de seminario de .pdfDIEGOSEBASTIANCAHUAN
 

Último (20)

INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
 
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptx
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptxINTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptx
INTERESES Y MULTAS DEL IMPUESTO A LA RENTA POWER POINT.pptx
 
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxPLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
 
LIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de GestiónLIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de Gestión
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptx
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
 
modulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdfmodulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdf
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
 
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxAUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptx
 
Walmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdfWalmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdf
 
ISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarización
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
 
Buenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasBuenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en droguerias
 
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfinformacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdf
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzas
 
Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.
 
Como Construir Un Modelo De Negocio.pdf nociones basicas
Como Construir Un Modelo De Negocio.pdf   nociones basicasComo Construir Un Modelo De Negocio.pdf   nociones basicas
Como Construir Un Modelo De Negocio.pdf nociones basicas
 
EVALUACIÓN PARCIAL de seminario de .pdf
EVALUACIÓN PARCIAL de seminario de  .pdfEVALUACIÓN PARCIAL de seminario de  .pdf
EVALUACIÓN PARCIAL de seminario de .pdf
 

Triggers

  • 2. iSUM 5.1.0: Guía de Triggers Triggers (Disparadores) En esta guía se define el concepto de trigger, los diferentes tipos de evento que se pueden registrar, y por que objetos de iSUM son soportados. • Introducción • Activación de los triggers • Tipos de evento • Definición de Trigger • Características de un trigger • Registrar un trigger • Objetos que soportan la gestión de triggers • Implementación y configuración de una tarea Introducción iSUM proporciona un mecanismo con el cual puede automatizar tareas, de forma que estas sean ejecutadas antes o después de que se produzca un determinado evento sobre un objeto. Activación de los triggers Dentro del fichero isum.xml se especifica si iSUM debe gestionar triggers. También puede cambiar el nombre del fichero donde se registran y definen los trigers. ... <trigger> <enabled>false</enabled> <definition_file_name>triggers.xml</definition_file_n ame> </trigger> ... Tipos de evento Se entiende como evento la llamada a un método de un objeto de persistencia. Puede definir una tarea para que se lleve a cabo cuando se produzca un evento, pero la tarea asociada al evento puede ser ejecutada antes o después de que se produzca dicho evento. Tipos de evento • Insert: Se produce cuando se intenta guardar el objeto por primera vez. • Update: Se produce cuando se intenta modificar algún dato del objeto. • Remove: Se produce cuando se intenta eliminar el objeto. 1
  • 3. iSUM 5.1.0: Guía de Triggers Definición de Trigger Un trigger es una clase que implementa una interfaz que dispone de un método run(...), en el cual se implementa la tarea que debe ser llevada a cabo, y un método error(...), en el cual se implementa la tarea que debe ser llevada a cabo en caso de que se produzca algún problema, en la mayoría de casos debería deshacer las acciones llevadas a cabo en el método run(). Características de un trigger Puesto que los trigger se establecen sobre objetos de persistencia, cada objeto de persistencia que soporte la gestión de triggers tiene asociado un tipo de trigger. Cada trigger implementa una interfaz concreta, así pues para gestionar un trigger sobre un objeto que implemente la interfaz Device dispone de una interfaz DeviceTrigger la cual define los siguientes métodos. • public void run(Device device); • public void error(Device device); Como puede observar los dos métodos proporcionan un objeto, este objeto es el objeto sobre el cual se produjo el evento. Registrar un trigger Para que una tarea se lleve a cabo, debe registrar el trigger previamente. Para registrar un trigger existe un fichero de registro llamado triggers.xml en el cual debe especificar el nombre de la clase que implementa el código de la tarea que el trigger se encargara de ejecutar, e indicar si la tarea es critica o no. Una tarea critica implica que si alguno de los triggers registrados para el mismo evento no se ejecuta correctamente, los triggers anteriormente ejecutados serán notificados del imprevisto con una llamada al método error(...), e iSUM abortará la acción que iba a realizar sobre el objeto, en el caso en el cual iSUM ya hubiera realizado la acción, como ocurre en los triggers definidos para ejecutarse después de haberse realizado la acción, iSUM no deshará dicha acción sobre el objeto, pero si notificara a los triggers anteriormente ejecutados. Cada objeto de iSUM que soporta la gestión de triggers tiene una entrada definida en el fichero de configuración triggers.xml que debe ser completada para definir o registrar un trigger. Estructura del fichero de configuración de triggers correspondiente a la definición de triggers para gestionar eventos sobre objetos device. Puede observar que la estructura <class> <name>class_name</name> <critical>is_critical</critical> </class> solo debe ser definida cuando se define un trigger. <triggers> … <device> <before_insert> </before_insert> <after_insert> <class> <name>Name_One</name> <critical>false</critical> 2
  • 4. iSUM 5.1.0: Guía de Triggers </class> <class> <name>Name_Two</name> <critical>false</critical> </class> </after_insert> <before_update> </before_update> <after_update> </after_update> <before_remove> </before_remove> <after_remove> <class> <name>Name_three</name> <critical>false</critical> </class> </after_remove> </device> … </triggers> Objetos que soportan la gestión de triggers Cada objeto de iSUM que soporta la gestión de triggers tiene asociada una interfaz, la cual debe ser implementada por el trigger que defina alguna tarea sobre dicho objeto. Relación de objetos iSUM con sus respectivas interfaces trigger. • AttributeTrigger – GroupAttribute, PortalAttribute, ServiceAttribute, UserAttribute • CertificationAuthorityTrigger – CertificationAuthority • ContentTypeTrigger -- ContentType • DescriberTrigger -- Describer • DeviceTrigger -- Device • GroupTrigger -- Group • IntegratorTrigger -- Integrator • InterfaceTrigger -- Interface • LanguageTrigger -- Language • PortalTrigger -- Portal • ProfileTrigger -- Profile • RendererDescriptorTrigger -- RendererDescriptor • RenderizationRuleSetTrigger -- RenderizationRuleSet • ServiceTrigger -- Service • ShortcutTrigger -- Shortcut • SkinTrigger -- Skin • SourceTrigger -- Source • SourceValueTrigger -- SourceValue • TableSourceTrigger -- TableSource • TransformationRuleSetTrigger -- TransformationRuleSet • TransformerDescriptorTrigger -- TransformerDescriptor • UserTrigger -- User • UsersGroupTrigger -- UsersGroup • UsersGroupTypeTrigger -- UsersGroupType 3
  • 5. iSUM 5.1.0: Guía de Triggers Implementación y configuración de una tarea Para implementar una tarea debe construir una clase que implemente la interfaz del trigger correspondiente y registrarla en el fichero triggers.xml . Ejemplo: public class AddProfileToUser implements UserTrigger{ public Trigger_Test(){ } public void run(User user){ IsumFactory iFactory; iFactory = PersistenceManager.getIsumFactory(Config.getInstance( ).persistenceType); Profile profile = iFactory.getProfile(“E-COMMERCE”); user.addProfile(profile.getID()); } public void error(User user){ IsumFactory iFactory; iFactory = PersistenceManager.getIsumFactory(Config.getInstance( ).persistenceType); Profile profile = iFactory.getProfile(“E-COMMERCE”); user.removeProfile(profile.getID()); } } Como puede apreciar en el código, la función que este realiza es la de asignar un perfil a un usuario. Ahora hay que registrar el trigger en el fichero triggers.xml. <triggers> … <user> <before_insert> </before_insert> <after_insert> <class> <name>AddProfileToUser</name> <critical>false</critical> </class> <class> <name>CreateAccount</name> <critical>true</critical> </class> </after_insert> <before_update> </before_update> <after_update> </after_update> <before_remove> </before_remove> <after_remove> </after_remove> </user> … </triggers> Puede apreciar, que el trigger no se ha definido como critico, sin embargo si se ha implementado el método error(...), también puede ver que hay definido otro trigger, llamado CreateAcound que su tarea es la de crear automáticamente una cuenta de acceso, a un servicio de comercio electrónico. Como la creación de la cuenta es posterior a la asignación del perfil que da acceso al servicio, si no se ha creado la 4
  • 6. iSUM 5.1.0: Guía de Triggers cuenta de acceso al servicio correctamente, iSUM notificará al trigger AddProfileToUser llamando al método error(...) el cual quitara el perfil anteriormente asignado al usuario, para que no tenga acceso a un servicio para el cual no dispone de los datos requeridos. 5