Configuración del motor de tareas

De Plataforma COA Crowd
Saltar a: navegación, buscar

ESPECIFICACIÓN PARA CONFIGURACIÓN DE TAREAS


GRAMÁTICA FORMAL


CONFIGURACIÓN-> [MICROTAREA*]

MICROTAREA-> {"sla_secs": NUMBER, "stage_id": NUMBER, "stage_list":  STRING, "task_identifier": STRING, "task_identifier_data": STRING, “task_config”: TASK_CONFIG, “result_conf”: RESULT_CONF }

TASK_CONFIG-> [PUBLISH_TASK_CONFIG*]

TASK_CONFIG_FOR_PUBLISHING->{“stage_id”: NUMBER, “stage_list”: STRING, “task_evaluation”: STRING, “task_identifier”: STRING, “task_identifier_data”: STRING, “microtask_identifier”:STRING,“service_call_preaction”: STRING, “service_data_preaction”: STRING, “service_method_preaction”: STRING, “service_call_postaction”: STRING, “service_data_postaction”: STRING, “service_method_postaction”: STRING, “service_preaction”: [SERVICE_DATA*], “service_postaction”: SERVICE_DATA }

RESULT_CONF-> [BUILD_TASK_RESULT_CONFIG*]

BUILD_TASK_RESULT_CONFIG->{“result_word”: STRING, “result_action”: STRING, “result_evaluation”: STRING, “result_action_data”: STRING, “complete_result_data”:  STRING, “service_call_preaction”: STRING, “service_data_preaction”: STRING, “service_method_preaction”: STRING, “service_call_postaction”: STRING, “service_data_postaction”: STRING, “service_method_postaction”: STRING }

SERVICE_DATA: {"url": STRING,    "data": STRING,   "method":STRING, "codes":[NUMBER+]}


Descripción de elementos


sla_secs: es el numero de segundos que debe considerarse a la hora de asignar una tarea (actualmente no se está contemplando)

stage_id: Es un número que se usará para identificar el segmento de esta tarea. En caso de ausencia se usa el secuencial. Aunque de presentarse o no todas las microtareas deberán tenerlo o no de otra forma se puede tener un comportamiento inadecuado.

stage_list: Es la petición que se le pasará al servicio que nos regresará el cuestionario a aplicarse. Puede incluir 1 o mas stages, por ejemplo: “stage=1”, “stage=1&stage=2&stage=8”, etc

task_identifier: Es una cadena que identifica el front al que se dirijirá la tarea, por lo tanto el nombre debe coincidir con el nombre que el front tiene en el path, dado que es allí donde se pondrá.

task_identifier_data: Es una expresión que será interpretada usando la biblioteca JMESPATH  sobre el json recibido para atender esta tarea.

task_config: Es la configuración específica que se  aplicará a una microtarea. Está pensada  para  poder aplicar configuraciones diferentes de acuerdo a los datos de entrada.

task_evaluation: Es una expresión de JMESPATH, aplicada sobre los datos recibidos para atender la tarea, la cual debe dar true para que se aplique la configuración de esta TASK_CONFIG_PUBLISHING  se aplique. En caso de no encontrarse una configuración específica que se cumpla la tarea se publica con todos los datos recibidos y con el front especificado por el task_identifier general de la microtarea.

result_conf: Es la configuración específica que se aplicará al resultado de una microtarea. Está pensada para poder aplicar configuraciones específicas de acuerdo al los datos de entrada / salida ed una microtarea.

result_word: Esta es una cadena que es obligatoria cuando se debe publicar una microtarea en base a una respuesta. La cadena especificada  será utilizada para determinar el tipo de microtarea que se generará por el resultado obtenido.

result_evaluation: Es una expresión de JMESPATH aplicada sobre  el JSON {data_received, data_result}, la cual debe ser evaluada true para que el BUILD_TASK_RESULT_CONFIG  en cuestión sea ocupado.

result_action: Es una cadena que será usada para determinar que debe hacerse en caso de aplicarse la respuesta. Las acciones válidas son: 

  • answer (significar establecer la resolución de la tarea)
  •  task (una tarea debe publicarse, en este caso result_word es obligatorio)
  • reactivate (la tarea debe volver a publicarse tal cual está)


result_action_data: Es una expresión de JMESPATH que se aplica sobre  el JSON {data_received, data_result}, el resultado es  el data que se usará para realizar el action.

complete_result_data: Es JSON que se aplicará para ir formando el json con el resultado final de la macrotarea asociada.

service_call_preaction: Es el url de algún webservice que deba ser hecho antes de realizar la ejecución indicada para el BUILD_TASK_RESULT_CONFIG . En caso de que inicie con un valor diferente a http, se asume que es una expresión de jmespath que debe aplicarse al mismo json que se usa para obtener los datos de la petición.

service_data_preaction: Es el data que será enviado en el body como json al hacer la llamada al webservice service_call_preaction

service_method_preaction:  Es la cadena que nos indica que tipo de petición debe hacerse al webservice service_call_preaction. Los aceptados son: GET, POST

service_call_postaction:Es el url de algún webservice que deba ser hecho después de realizar la ejecución indicada para el BUILD_TASK_RESULT_CONFIG. En caso de que inicie con un valor diferente a http, se asume que es una expresión de jmespath que debe aplicarse al mismo json que se usa para obtener los datos de la petición.

service_data_postaction:  Es el data que será enviado en el body como json al hacer la llamada al webservice service_call_postaction

service_method_postaction: Es la cadena que nos indica que tipo de petición debe hacerse al webservice service_call_postaction. Los aceptados son: GET, POST

url: es una cadena que si inicia con http, se interpreta como una dirección, de no ser así se asume es una expresión de jmespath que se le aplica al mismo data al que se le aplica para obtener el json asociado al servicio.

data: es el json data que se va a enviar en el llamado del servicio pero como expresión de jmespath. Para el caso del publisher, se le aplican los datos recibidos en el request. Para el caso del builder se aplica sobre un json que está compuesto por estos elementos: {"task_request_uuid", "data_received", "data_result", "service_call_preaction_json": {}, "task_request_data"}. Donde data_received se refieren a los valores que se recibieron para crear el segmento (los que están el la tabla de task_segment en el campo de data_received.data_received.

method: Es una cadena que identifica el tipo de petición. Los soportados al día de hoy son: POST/GET.

codes: Es un json array que tiene valores enteros para indicar los códigos de resolución que son soportados para dar por buena una petición de servicio.