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

estadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptestadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptMiguelAngel653470
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosCondor Tuyuyo
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxLizCarolAmasifuenIba
 
PROCESO PRESUPUESTARIO - .administracion
PROCESO PRESUPUESTARIO - .administracionPROCESO PRESUPUESTARIO - .administracion
PROCESO PRESUPUESTARIO - .administracionDayraCastaedababilon
 
15. NORMATIVA DE SST - LA LEY 29783.pptx
15. NORMATIVA DE SST - LA LEY 29783.pptx15. NORMATIVA DE SST - LA LEY 29783.pptx
15. NORMATIVA DE SST - LA LEY 29783.pptxAndreaAlessandraBoli
 
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdfRamon Costa i Pujol
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfLizCarolAmasifuenIba
 
EL CAMBIO PLANEADO todo acerca de cambio .pptx
EL CAMBIO PLANEADO todo acerca de cambio .pptxEL CAMBIO PLANEADO todo acerca de cambio .pptx
EL CAMBIO PLANEADO todo acerca de cambio .pptxec677944
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoTe Cuidamos
 
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAPRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAgisellgarcia92
 
Elección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxElección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxDiegoQuispeHuaman
 
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptx
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptxu1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptx
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptxUrabeSj
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAAlexandraSalgado28
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaInstituto de Capacitacion Aduanera
 
Derechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorDerechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorMarcosAlvarezSalinas
 
Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfec677944
 
estadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosestadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosVeritoIlma
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaBetlellyArteagaAvila
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxLUISALEJANDROPEREZCA1
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfDiegomauricioMedinam
 

Kürzlich hochgeladen (20)

estadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptestadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.ppt
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de Condominios
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
 
PROCESO PRESUPUESTARIO - .administracion
PROCESO PRESUPUESTARIO - .administracionPROCESO PRESUPUESTARIO - .administracion
PROCESO PRESUPUESTARIO - .administracion
 
15. NORMATIVA DE SST - LA LEY 29783.pptx
15. NORMATIVA DE SST - LA LEY 29783.pptx15. NORMATIVA DE SST - LA LEY 29783.pptx
15. NORMATIVA DE SST - LA LEY 29783.pptx
 
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf
20240418-CambraSabadell-SesInf-AdopTecnologica-CasoPractico.pdf
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
 
EL CAMBIO PLANEADO todo acerca de cambio .pptx
EL CAMBIO PLANEADO todo acerca de cambio .pptxEL CAMBIO PLANEADO todo acerca de cambio .pptx
EL CAMBIO PLANEADO todo acerca de cambio .pptx
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
 
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAPRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
 
Elección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptxElección supervisor y comité SST 2020.pptx
Elección supervisor y comité SST 2020.pptx
 
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptx
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptxu1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptx
u1_s4_gt_la demanda y la oferta global_b27t9rulx9 (1).pptx
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importada
 
Derechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorDerechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejor
 
Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdf
 
estadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosestadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicos
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privada
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptx
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.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