Capítulo 14. Registro


El mecanismo de registro le permite almacenar información sobre la ejecución de una instancia de proceso. Es proporcionado por un escucha especial de eventos que escucha a la máquina de procesos para que cualquier evento relevante sea registrado, de manera que la información se puede almacenar de manera separada de otra información almacenada que no es de registro en la base da datos incluida del servidor (h2) o una fuente de datos conectada usando JPA o Hibernate.
El módulo jbpm-audit proporciona el escucha de eventos y también le permite almacenar información relacionada con el proceso directamente en una base de datos usando JPA o Hibernate. Los datos de las siguientes entidades se almacena así:
  • Instancias de procesos como processinstancelog
  • Instancia de elementos como nodeinstancelog
  • Instancia de variables como variableinstancelog
Expand
Tabla 14.1. Campos de la tabla ProcessInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
end_date
La fecha de terminación de la instancia del proceso
processid
El nombre (ID) del proceso subyacente
processinstanceid
El ID de la instancia del proceso
No
start_date
La fecha de inicio de la instancia del proceso
estatus
El estatus de la instancia del proceso
parentProcessInstanceId
El ID de la instancia del proceso de la instancia del proceso padre si es el caso
resultado
El resultado de la instancia del proceso (detalles sobre la terminación del proceso como un código de error)
Expand
Tabla 14.2. Campos de la tabla NodeInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
log_date
La fecha del evento
nodeid
El ID del nodo del elemento del proceso subyacente
nodeinstanceid
El ID de la instancia de nodo
nodename
El nombre del nodo subyacente
processid
El ID del nodo del proceso subyacente
processinstanceid
El ID de la instancia del proceso padre
No
tipo
El tipo del evento (0 = enter event, 1 = exit event)
No
Expand
Tabla 14.3. Campos de la tabla VariableInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
log_date
La fecha del evento
processid
El nombre (ID) del proceso subyacente
processinstanceid
El ID de la instancia del proceso
No
valor
El valor de la variable en el momento de registro
variableid
El id de la variable tal como se define en la definición del proceso
variableinstanceid
El id de la instancia de la variable
resultado
El resultado de la instancia del proceso (detalles sobre la terminación del proceso como un código de error)
Si es necesario, defina su propio modelo de datos de información personalizada y use los escuchas de eventos de procesos para extraer la información.

14.1. Registro de eventos en la base de datos

Para registrar un evento que ocurre en tiempo de ejecución en una instancia de proceso, una instancia de elemento o una instancia de variable, necesita hacer lo siguiente:
  1. Mapee las clases de registro a la fuente de datos de manera que la fuente de datos dada acepte las entradas de registro. En Red Hat JBoss EAP, modifique las propiedades de la fuente de datos en el archivo persistence.xml.

    Ejemplo 14.1. Las clases ProcessInstanceLog, NodeInstanceLog y VariableInstanceLog habilitadas para processInstanceDS

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <persistence  version="1.0"  xsi:schemaLocation=
        "http://java.sun.com/xml/ns/persistence
         http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
         http://java.sun.com/xml/ns/persistence/orm
         http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
      xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/persistence">
    
      <persistence-unit name="org.jbpm.persistence.jpa">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/processInstanceDS</jta-data-source>
        <class>org.drools.persistence.info.SessionInfo</class>
        <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
        <class>org.drools.persistence.info.WorkItemInfo</class>
        <class>org.jbpm.process.audit.ProcessInstanceLog</class>
        <class>org.jbpm.process.audit.NodeInstanceLog</class>
        <class>org.jbpm.process.audit.VariableInstanceLog</class>
    
        <properties>
          <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
          <property name="hibernate.max_fetch_depth" value="3"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.show_sql" value="true"/>
          <property name="hibernate.transaction.manager_lookup_class"
                    value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
        </properties>
      </persistence-unit>
    </persistence>
    
    Copy to Clipboard Toggle word wrap
  2. Registre un gestor de registro en su sesión Kie.

    Ejemplo 14.2. Importar los gestores de registro

    import org.jbpm.process.audit.AuditLogService;
    import org.jbpm.process.audit.AuditLoggerFactory;
    import org.jbpm.process.audit.AuditLoggerFactory.Type;
    import org.jbpm.process.audit.JPAAuditLogService;
    ...
    
    Copy to Clipboard Toggle word wrap

    Ejemplo 14.3. Registrar un gestor de registro en una sesión Kie

    @PersistenceUnit(unitName = PERSISTENCE_UNIT_NAME)
      private EntityManagerFactory emf;
    
      private AuditLogService auditLogService;
    @PostConstruct
      public void configure() {
      
      auditLogService = new JPAAuditLogService(emf);
      ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
      
      if( emf == null ) { 
      ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
      }
      
      RuntimeEngine runtime = singletonManager.getRuntimeEngine(EmptyContext.get());
      KieSession ksession = runtime.getKieSession();
      AuditLoggerFactory.newInstance(Type.JPA, ksession, null);
    
      }
    
    Copy to Clipboard Toggle word wrap
  3. Opcionalmente, llame al método addFilter en el gestor de registros para filtrar información irrelevante. Solo la información aceptada por todos los filtros aparece en la base de datos.
  4. Las clases del gestor de registros se pueden ver en la Vista de auditoría:
    <dependency>
    	<groupId>org.jbpm</groupId>
    	<artifactId>jbpm-audit</artifactId>
    	<version>6.0.1.Final</version>
    </dependency>
    
    Copy to Clipboard Toggle word wrap
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat