i

Please enable JavaScript to view this site.

La clase modelo contiene las propiedades con sus métodos getter y setter, mientras que la clase servicio contiene las operaciones a realizar sobre el modelo.

 

Por ejemplo, si se usa el proceso "Request Payment", al descargar los fuentes Java del proceso, se genera un archivo requestPayment.java con los métodos del modelo y otro archivo requestPaymentService.java con las operaciones disponibles del servicio.

Contenido de la Clase Modelo

 

El modelo de un caso contiene:

 

Constructor del modelo.

Métodos getter y setter de las propiedades del caso.

Métodos getter para obtener los formularios relacionados.

Métodos getter para obtener las actividades en ejecución.

Métodos getter para obtener el proceso correspondiente al caso.

 

Métodos getter y setter de las propiedades del caso

 

La clase modelo de un caso contiene un conjunto de métodos getter y setter para las propiedades del caso.

 

 

Operación

Descripción

Parámetros

getCdCase()

Obtiene el identificador del caso.


setCdCase(casenumber)

Permite asignar el valor del identificador del caso.

String casenumber: Número del caso

getCdState()

Obtiene el estado del caso.

 

Valores posibles:

ACTIVE - Activo

CANCELLED - Cancelado

ENDEDCASE - Finalizado


getDsCase()

Obtiene la descripción del caso.


getDtEnded()

Obtiene la fecha de finalización del caso.


getDtExpiration()

Obtiene la fecha de vencimiento del caso.


getDtInitiated()

Obtiene la fecha de inicio del caso.


getPriority()

Obtiene la prioridad del caso.

 

Valores posibles:

1 - Urgente

2 - Alta

3 - Media

4 - Baja


setLastPressedButton(button)

Permite configurar el último botón presionado.

String button: Nombre del último botón presionado

getLastPressedButton()

Obtiene el último botón presionado.


get + <Nombre de la clase del formulario> + Entity()

Obtiene una instancia de la clase del formulario relacionado al proceso.


getLsVinculatedForms()

Obtiene una lista de instancias de formularios relacionados al caso.


getVinculatedFormByIdEntity(idEntity)

Obtiene una instancia del formulario relacionado al caso.

String idEntity: Identificador de la instancia del  formulario

getProcess()

Obtiene el proceso correspondiente al caso.


getLsExecutedActivities()

Obtiene las actividades finalizadas del caso.


getLsCurrentActivities()

Obtiene las actividades en ejecución del caso.


 

Método getter para obtener los formularios relacionados

 

Dado un caso, se pueden utilizar los valores de los campos de los formularios relacionados al mismo, de la misma manera que se haría si las actividades se ejecutaran manualmente.  

 

La clase modelo tiene un método getter para cada formulario relacionado al proceso, con la estructura “get + <Nombre de la clase del formulario> + Entity()”. Una vez recuperada una instancia la misma se utiliza de igual manera que para formularios.

 

Ejemplo

Si se modela el proceso “Request Payment” relacionados a los formularios “Payment” y “Report”, la clase RequestPayment tiene los métodos:

 

getPaymentEntity(): Retorna una instancia de la clase Payment, que corresponde al formulario "Payment" relacionado al caso.

 

getReportEntity(): Retorna una instancia de la clase Report, que corresponde al formulario "Report" relacionado al caso.

 

 

El caso no puede tener asociados formularios con el mismo nombre de clase, aunque pertenezcan a distintas aplicaciones.

 

Métodos getter para obtener las actividades en ejecución

 

Dado un caso, se puede acceder a la lista de sus actividades en ejecución, utilizando el método de las propiedades del caso getLsCurrentActivities() de la clase modelo, que retorna una lista de objetos “ExecutedActivity” con sus métodos..

 

 

Operación

Descripción

Parámetros

getCdActivity()

Obtiene el código de la actividad.


getDsNameActivity()

Obtiene el nombre de la actividad.


getCdState()

Obtiene el estado de la actividad.

 

Valores posibles:

EXEC - En ejecución

CANCELLEDACT - Cancelada

ENDEDACT - Finalizada


getPriority()

Obtiene la prioridad de la actividad.

 

Valores posibles:

1 - Urgente

2 - Alta

3 - Media

4 - Baja


getDtEnded()

Obtiene la fecha de finalización de la actividad.


getDtExpiration()

Obtiene la fecha de vencimiento de la actividad.


getDtInitiated()

Obtiene la fecha de inicio de la actividad.


getCdUserExec()

Obtiene el código del usuario que ejecutó la actividad.


getCdUserInit()

Obtiene el código del usuario que inició la actividad


getNuDurationSeconds()

Obtiene la duración en segundos de la ejecución de la actividad.


getTpActivity()

Obtiene el tipo de la actividad.

 

Valores posibles:

TP_GATEWAY  - Compuerta

TP_STANDARD - Estándar

TP_ABSTRACT - Abstracta


getTpParticipant()

Obtiene el tipo de participante de la actividad.

 

Valores posibles:

USER - Usuario

ORG_UNIT - Unidad organizacional

ROLE - Rol

THING - Usuario cosa

 


getLsExecutedActions()

Obtiene una lista de acciones ejecutadas por la actividad.


 

Método getter para obtener el proceso correspondiente al caso

 

El proceso correspondiente a un caso se puede obtener mediante el método getProccess() de la clase modelo, que retorna una instancia de la clase “Process” con sus métodos.

 

 

Operación

Descripción

Parámetros

getCdProcess()

Obtiene el código del proceso.


getCdVersion()

Obtiene la versión del proceso.


getIdApplication()

Obtiene el identificador de la aplicación del proceso.


getCdFirstActivity()

Obtiene un objeto Activity con la primera actividad del proceso,


getDsComment()

Obtiene el comentario del proceso.


getDsDescription()

Obtiene la descripción del proceso.


getDsName()

Obtiene el nombre del proceso.


 

Contenido de la Clase Servicio

 

El servicio permite realizar las siguientes operaciones sobre los casos:

 

 

Operación

Descripción

Parámetros

startCase(case)

 

 

 

startCase(case, user)

 

Inicia un caso, ejecutando la actividad inicial del proceso relacionado.

 

 

Retorna el código del caso creado.

 

Case case: Modelo del caso a iniciar. Los campos del formulario relacionado deben tener valores

 

 

Case case: Modelo del caso con los valores asignados a los campos del formulario relacionado

 

String user: Código del usuario que ejecuta la actividad. Se debe especificar cuando el responsable de la actividad es un rol

execute(case)

 

 

execute(case, user)

Ejecuta la actividad actual de un caso.

 

 

Retorna el estado del caso actualizado.

Case case: Modelo del caso con número de caso asignado

 

 

Case case: Modelo del caso con número de caso asignado

 

String user: Código del usuario que ejecuta la actividad. Se debe especificar cuando el responsable de la actividad es un rol

read(case)

Lee un caso.

Case case: Modelo del caso con número de caso asignado

cancelCase(case, observation)

 

Cancelar un caso.

Case case: Modelo del caso con número de caso a cancelar. La cancelación se realiza con el usuario online que ejecuta la regla sdk.

 

String observation: Motivo de la cancelación

 

Ejemplos de Uso

 

En los ejemplos se utiliza el proceso “Request Payment” y cada ejemplo contiene el uso de la clase modelo “RequestPayment” y la clase servicio “RequestPaymentService”.

 

Además se utilizan las clases “Request” y “Report” que representan a los modelos de los formularios vinculados al proceso “Request Payment”.

 

Los ejemplos detallan cómo iniciar un caso, leerlo, ejecutar sus actividades, finalizarlo y cancelarlo.

 

Diagrama del Proceso

 

 

CM0050~1_img1

 

 

 

1.Inicio de un caso

 

Para iniciar el caso, se ejecuta la primera actividad “Fill Request”. El caso pasa a la actividad “Evaluate Request” bajo responsabilidad del usuario “Afarias”, configurado en el lane “Authorizer”.

 

La ejecución de la actividad “Fill Request” realiza la operación “Crear” sobre el formulario “Request” con los valores asignados a sus campos.

 

Se crea una instancia de la clase modelo “RequestPayment”, al formulario “Request” obtenido mediante el método getRequestEntity() se le asignan valores a sus campos con los correspondientes métodos setter. Utilizando la clase servicio “RequestPaymentService” se inicia el caso con el método startCase(myFirstPaymentCase).

 

 

RequestPayment myFirstPaymentCase = new RequestPayment();

myFirstPaymentCase.getRequestEntity().setAmount(new Double(200));

 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

myFirstPaymentCase.getRequestEntity().setDueDate(new Date(format.parse("2020-06-28").getTime()));

myFirstPaymentCase.getRequestEntity().setMessage("This is my first payment request.. i need to buy more coffee!!");

 

RequestPaymentService myService = new RequestPaymentService(getApiClient());

String cdCase = myService.startCase(myFirstPaymentCase);

 

 

 

2.Lectura del caso

 

Se crea una instancia de la clase modelo “RequestPayment”, se le asigna el número de caso generado por el método startCase(myFirstPaymentCase) de la clase servicio “RequestPaymentService”, en el ejemplo anterior.

 

Se lee el caso con el método read(myFirstPaymentCase) de la clase servicio “RequestPaymentSercice” y el número de caso .

 

 

RequestPayment myPaymentCase = new RequestPayment();

myPaymentCase.setCdCase(cdCase);

myPaymentCase = myService.read(myFirstPaymentCase);

 

 

 

3.Ejecución de actividad que define botones modelados

 

El caso está en la actividad “Evaluate Request”, que tiene dos botones modelados. La siguiente actividad que se ejecute depende del botón que se seleccione, en este ejemplo se elige “Approve”. Si no se indica ningún botón se sigue el flujo modelado como predeterminado.

 

Se asigna el botón “Approve” a la clase modelo “Request Payment” mediante el correspondiente método setter. Se ejecuta la actividad “Evaluate Request” con el método execute(myPaymentCase) de la clase servicio “RequestPaymentService”.

 

Como resultado, el caso se encuentra en la actividad “Fill Report” y su estado es “ACTIVE”,

 

 

myPaymentCase.setLastPressedButton("Approve");

myService.execute(myPaymentCase);

 

 

 

4.Ejecución de una actividad que no define botones modelados

 

El caso está en la actividad “Fill Report”. La ejecución de esta actividad crea el formulario “Report”. Este formulario tiene un campo llamado “request” que está relacionado a la entidad “Request”.

 

Se completa el campo “request” mediante el correspondiente método setter, con el identificador de la entidad “Request” relacionada al caso y que es obtenido mediante el método getRequestEntity().

 

Se completa el resto de los campos y se ejecuta la actividad “Fill Report” con el método execute(myPaymentCase) de la clase servicio “RequestPaymentService”.

 

El caso se envía al evento de fin “Request approved” y su estado es finalizado.

 

 

Integer requestId = myPaymentCase.getRequestEntity().getRequestId();

 

myPaymentCase.getReportEntity().setRequest(requestId.toString());

myPaymentCase.getReportEntity().setPaymentMethod("Credit");

myPaymentCase.getReportEntity().setSummary("Filling the report using the SDK.");

myService.execute(myPaymentCase);

 

 

5.Cancelación de un caso

 

Se crea una instancia de la clase modelo “RequestPayment”, se le asigna el número de caso a cancelar.

Se ingresa el motivo de cancelación en el parámetro “observation” y se cancela el caso con el método cancelCase(myPaymentCase, observation) de la clase servicio “RequestPaymentService”.

 

 

RequestPaymentService myService = new RequestPaymentService(getApiClient());

RequestPayment myPaymentCase = new RequestPayment();

myPaymentCase.setCdCase("0000000091120000");

myService.cancelCase(myPaymentCase,"Duplicate case");

 

Envianos tu comentario
Compartir en Twitter Compartir en Linkedin Enviar por Email Imprimir