SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfConstructiva
 
Ejemplo Caso: El Juego de la negociación
Ejemplo Caso: El Juego de la negociaciónEjemplo Caso: El Juego de la negociación
Ejemplo Caso: El Juego de la negociaciónlicmarinaglez
 
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
 
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
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxgabyardon485
 
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
 
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxTIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxKevinHeredia14
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..JoseRamirez247144
 
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
 
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHMARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHkarlinda198328
 
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
 
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
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxCORPORACIONJURIDICA
 
ANÁLISIS CAME, DIAGNOSTICO PUERTO DEL CALLAO
ANÁLISIS CAME, DIAGNOSTICO  PUERTO DEL CALLAOANÁLISIS CAME, DIAGNOSTICO  PUERTO DEL CALLAO
ANÁLISIS CAME, DIAGNOSTICO PUERTO DEL CALLAOCarlosAlbertoVillafu3
 
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
 
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfguillencuevaadrianal
 
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptxCarlosQuionez42
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESADanielAndresBrand
 
Gestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxGestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxignaciomiguel162
 

Kürzlich hochgeladen (20)

Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
 
Ejemplo Caso: El Juego de la negociación
Ejemplo Caso: El Juego de la negociaciónEjemplo Caso: El Juego de la negociación
Ejemplo Caso: El Juego de la negociación
 
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
 
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
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
 
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
 
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxTIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
 
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
 
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHMARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
 
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
 
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
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
 
ANÁLISIS CAME, DIAGNOSTICO PUERTO DEL CALLAO
ANÁLISIS CAME, DIAGNOSTICO  PUERTO DEL CALLAOANÁLISIS CAME, DIAGNOSTICO  PUERTO DEL CALLAO
ANÁLISIS CAME, DIAGNOSTICO PUERTO DEL CALLAO
 
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
 
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
 
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
 
Capitulo-6.ppt-gestión del tiempo en pmi
Capitulo-6.ppt-gestión del tiempo en pmiCapitulo-6.ppt-gestión del tiempo en pmi
Capitulo-6.ppt-gestión del tiempo en pmi
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
 
Gestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxGestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptx
 

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