SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados (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
 

Destaque (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
 

Semelhante a Triggers

Java Listeners
Java ListenersJava Listeners
Java Listeners
MagikJames
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffc
jinkalel kalel
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
elena
 
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
Jechu2013
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
Adriana Becerra
 

Semelhante 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
DisparadoresDisparadores
Disparadores
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
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

Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdfComparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
AJYSCORP
 
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdfSENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
JaredQuezada3
 
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
Evafabi
 
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
MIGUELANGELLEGUIAGUZ
 
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptxsenati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
nathalypaolaacostasu
 
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocxCARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
WILIANREATEGUI
 

Último (20)

Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdfComparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
 
Caja nacional de salud 0&!(&:(_5+:;?)8-!!(
Caja nacional de salud 0&!(&:(_5+:;?)8-!!(Caja nacional de salud 0&!(&:(_5+:;?)8-!!(
Caja nacional de salud 0&!(&:(_5+:;?)8-!!(
 
Empresa Sazonadores Lopesa estudio de mercado
Empresa Sazonadores Lopesa estudio de mercadoEmpresa Sazonadores Lopesa estudio de mercado
Empresa Sazonadores Lopesa estudio de mercado
 
mapa-conceptual-evidencias-de-auditoria_compress.pdf
mapa-conceptual-evidencias-de-auditoria_compress.pdfmapa-conceptual-evidencias-de-auditoria_compress.pdf
mapa-conceptual-evidencias-de-auditoria_compress.pdf
 
Fabricación de Cremas en Industria Farmacéutica
Fabricación de Cremas en Industria FarmacéuticaFabricación de Cremas en Industria Farmacéutica
Fabricación de Cremas en Industria Farmacéutica
 
2024 - 04 PPT Directiva para la formalizacion, sustento y registro del gasto ...
2024 - 04 PPT Directiva para la formalizacion, sustento y registro del gasto ...2024 - 04 PPT Directiva para la formalizacion, sustento y registro del gasto ...
2024 - 04 PPT Directiva para la formalizacion, sustento y registro del gasto ...
 
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdfSENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
SENTENCIA COLOMBIA DISCRIMINACION SELECCION PERSONAL.pdf
 
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptxSostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
 
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
 
Maria_diaz.pptx mapa conceptual gerencia industral
Maria_diaz.pptx mapa conceptual   gerencia industralMaria_diaz.pptx mapa conceptual   gerencia industral
Maria_diaz.pptx mapa conceptual gerencia industral
 
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
Tesis_liderazgo_desempeño_laboral_colaboradores_cooperativa_agraria_rutas_Inc...
 
Analisis del art. 37 de la Ley del Impuesto a la Renta
Analisis del art. 37 de la Ley del Impuesto a la RentaAnalisis del art. 37 de la Ley del Impuesto a la Renta
Analisis del art. 37 de la Ley del Impuesto a la Renta
 
2 Tipo Sociedad comandita por acciones.pptx
2 Tipo Sociedad comandita por acciones.pptx2 Tipo Sociedad comandita por acciones.pptx
2 Tipo Sociedad comandita por acciones.pptx
 
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
 
Distribuciones de frecuencia cuarto semestre
Distribuciones de frecuencia cuarto semestreDistribuciones de frecuencia cuarto semestre
Distribuciones de frecuencia cuarto semestre
 
4 Tipos de Empresa Sociedad colectiva.pptx
4 Tipos de Empresa Sociedad colectiva.pptx4 Tipos de Empresa Sociedad colectiva.pptx
4 Tipos de Empresa Sociedad colectiva.pptx
 
Presentacion encuentra tu creatividad papel azul.pdf
Presentacion encuentra tu creatividad papel azul.pdfPresentacion encuentra tu creatividad papel azul.pdf
Presentacion encuentra tu creatividad papel azul.pdf
 
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptxsenati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
 
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocxCARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
 
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADADECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
 

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