SessionDoc

CER le permite producir documentación HTML relacionada con una sesión ("SessionDoc").

Esta documentación proporciona un registro de todos los objetos de regla creados durante la sesión y, cuando se utiliza conjuntamente con las pruebas, puede ser una potente ayuda de depuración.

Puede ser útil utilizar el punto de enlace tearDown de JUnit para forzar que todos los métodos de prueba de la clase de prueba produzcan su SessionDoc:

@Override
          protected void tearDown() throws Exception {
          /*
          * Escribir SessionDoc, en un directorio denominado como el
          * método de prueba.
          */
          final File sessionDocOutputDirectory =
          new File("./gen/sessiondoc/" + this.getName());
          sessionDoc.write(sessionDocOutputDirectory);

          super.tearDown();
          }

A continuación se muestra la página SessionDoc principal para una prueba testSelfMadeMillionaireScenario:

Figura 1. SessionDoc para la prueba testSelfMadeMillionaireScenarioEste ejemplo muestra el SessionDoc generado.

Algunos detalles clave en esta página son:

Al pulsar en el enlace para el único conjunto de reglas FlexibleRetirementYearRuleSet, se muestran los objetos de regla:

Figura 2. Objetos de regla para el conjunto de reglas FlexibleRetirementYearRuleSetEste ejemplo muestra el objeto de regla generado.

Esta página muestra:

Al pulsar en el enlace de detalles para el único objeto de regla FlexibleRetirementYear se muestra su SessionDoc:

Figura 3. SessionDoc para el objeto de regla FlexibleRetirementYearEste ejemplo muestra los objetos de regla generados.

En la parte superior (no se muestra) están los detalles de resumen para el objeto de regla y, a continuación, se lista cada atributo de regla en el objeto de regla, con los detalles siguientes:

Consejo: La implementación de un atributo de regla description en cada clase de regla puede hacer que el atributo SessionDoc sea más fácil de entender. Consulte El atributo de regla description para obtener más detalles.

Si está ejecutando SessionDoc en una base de datos grande, puede ser útil suprimir la salida de los enlaces "utilizado por", porque la inclusión de enlaces de este tipo puede hacer que SessionDoc produzca un gran número de objetos de regla. Para suprimir la salida de los enlaces "utilizado por", utilice curam.creole.execution.session.SessionDoc.write(File, boolean), pasando false como el segundo parámetro.

En el caso de objetos de regla que están almacenados en tablas de base de datos de CER, puede crear SessionDoc para estos objetos de regla almacenados ejecutando la clase curam.creole.util.DumpOutRuleObjects, donde un único argumento es el nombre de un directorio en el que se debe crear el SessionDoc. El programa de utilidad DumpOutRuleObjects recupera todos los objetos de regla de las tablas de base de datos de CER y, por lo tanto, se "recuperará" la acción para cada objeto de regla externa. Los objetos de regla interna se crearán (porque no están almacenados) y por lo tanto mostrarán una acción de "creado".

Consejo: El programa de utilidad DumpOutRuleObjects puede ser una manera útil de "navegación" en los objetos de regla almacenados en las tablas de base de datos de CER y puede ser una ayuda de depuración útil cuando haya alcanzado el punto de integración de reglas CER en la aplicación en línea.

Puede examinar los objetos de regla para ver los valores de los atributos calculados en objetos de regla, junto con una visión técnica de cómo se llegó a cualquier resultado de cálculo.

1 Antes de Cúram V6, se utilizaba el estado INITIALIZED. Desde Cúram V6, se utiliza en su lugar el estado SPECIFIED.