Herramientas de usuario

Herramientas del sitio


ada:tips:sicoferp:general:pbtows:procesos:workflowpb

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
ada:tips:sicoferp:general:pbtows:procesos:workflowpb [2019/12/10 20:26]
carlos.torres
ada:tips:sicoferp:general:pbtows:procesos:workflowpb [2019/12/11 19:17] (actual)
181.132.229.96 [Pasos para crear un workflow]
Línea 11: Línea 11:
 > temporizadores de retraso."​ > temporizadores de retraso."​
  
-Para el proyecto de migración SICOF se utilizará el concepto workflow backend el cual se define como un grupo de servicios ​asociados por conectores origen - destino por medio de acciones ​que determina el tipo de relación.+Para el proyecto de migración SICOF se utilizará el concepto workflow backend el cual se define como un grupo de servicios que estan relacionados y representan funcionalidades ​de SICOF ERP.
  
 === Consideraciones === === Consideraciones ===
  
   * Un workflow está asociado a un componente   * Un workflow está asociado a un componente
-  * Un workflow por menos debe contener un camino de ejecución +  * Un workflow por menos debe contener un paso de ejecución
-  * Un camino por lo menos debe contener un paso de ejecución +
-  * Todo camino de ejecución debe contener un paso base (con ordenamiento cero (0)) +
-  * Todos los pasos dentro de un camino deben estar ordenados deacuerdo a la secuencia de ejecución. +
-  * Cada bifurcación de un paso debe contener al menos 2 pasos de ejecución siguiente +
-  * Todo camino de ejecución debe implementar una secuencia de pasos que comience con el paso base, una serie de pasos siguientes y por último regresar al paso base.+
  
-===== Definiciones ​===== +===== Tipos de Workflow ​===== 
-A continuación se definen algunos conceptos generales que se aplican al workflow backend SICOF. Tener presente que algunas definiciones no se describen en este apartado ya que son obvias en el contexto de los desarrolladores ​de la fabrica ​proyecto de migración SICOF. Si el lector requiere aclaración de algun tema, favor comunicarse con el equipo de desarrollo backend.+Se han definido ​los siguientes tipos de workflow para describir las interacciones entre servicios ​componentes.
  
-==== WorkFlowPath ==== +  * **Window Workflow (WW)**Este tipo de workflow es el utilizado para describir las acciones que pueden generar las ventanas que son llamadas desde los menus **Usuario** y **CRUD** (Maestros). Se caracterizan por tener un conjunto ​de pasos que son identificados por tag (referencias) los cuales son registradas por las ventanas en lanzadores de acciones (Botones, Clicks, Tabs) de esta manera se pueden encadenar acciones que son representadas por servicios (Web Services). 
-Representa ​un camino ​de ejecución dentro ​de un workflow.+  * **Component Workflow (CW)**:Este tipo de workflow ​puede ser implementado en interacciones especiales que no estan relacionadas con el menu principal de la aplicación,​ por lo general presenta caminos de ejecución y permite la evaluacion de expresiones para determinar los flujos.
  
-==== WorkFlow: Step ==== +=== Notas === 
-Representa un paso dentro ​de un camino de un workflow. ​Esta compuesto por una relación Origen - Destino.+  * El tipo de workflow ​CW solo esta implementado en el componente Login. 
 +  * El tipo de workflow WW es el que se debe implementar en todas las opciones ​una vez iniciada la sesión en el sistema.
  
-==== WorkFlow: Source/​Target (Relación Origen/​Destino) ​==== +===== Definiciones Generales ===== 
-Representa ​los puntos ​de origen/​destino ​de un pasoEsta Compuesto por los siguientes atributos:+A continuación se definen algunos conceptos generales que se aplican a los workflow backend SICOF. Tener presente que algunas definiciones no se describen en este apartado ya que son obvias en el contexto ​de los desarrolladores ​de la fabrica y proyecto de migración SICOF. Si el lector requiere aclaración de algun tema, favor comunicarse con el equipo de desarrollo backend.
  
-  * Component: Referencia del componente. +  ​* **WorkFlow - Path**: Representa un camino de ejecución dentro de un workflow. 
-  * Service: Referencia del servicio. +  * **WorkFlow - Step**: Representa un paso dentro de un camino de un workflow. Esta compuesto por una relación Origen - Destino. 
-  * gui: Tipo de representación gráfica. +  * **WorkFlow - Source/​Target (Relación Origen/​Destino)**:​ Representa los puntos de origen/​destino de un paso. 
-  * action: Tipo de conector entre el origen/​destino (ver explicación a continuación).+  * **Component**: Referencia del componente. 
 +  ​* **Service**: Referencia del servicio. 
 +  * **GUI**: Tipo de representación gráfica. 
 +  * **Action**: Tipo de conector entre el origen/​destino (ver explicación a continuación).
  
 === Acción de Conectores === === Acción de Conectores ===
 Las acciones de conectores indican la relación entre el origen/​destno. A continuación se describen las acciones utiizadas en los pasos de los caminos de un workflow: Las acciones de conectores indican la relación entre el origen/​destno. A continuación se describen las acciones utiizadas en los pasos de los caminos de un workflow:
  
-  * END:​ Finaliza un camino de ejecución +  ​* **END**: Finaliza un camino de ejecución 
-  * BIFURCATE:​ Indica que ese paso permite bifurcaciones de ejecución y a continuación tendra por lo menos 2 pasos siguientes asociados. Solo aplica para el destino del paso. +  ​* **BIFURCATE**: Indica que ese paso permite bifurcaciones de ejecución y a continuación tendra por lo menos 2 pasos siguientes asociados. Solo aplica para el destino del paso. 
-  * CONNECT:​ Indica que ese paso puede conectar con el destino sin embargo no establece tiempo ni obligatoriedad. Solo aplica para el origen del paso. +  ​* **CONNECT**: Indica que ese paso puede conectar con el destino sin embargo no establece tiempo ni obligatoriedad. Solo aplica para el origen del paso. 
-  * CONTINUE:​ Indica que el paso actual es intermedio en un camino, es decir requiere al menos otro paso en la secuencia de ejecución. +  ​* **CONTINUE**: Indica que el paso actual es intermedio en un camino, es decir requiere al menos otro paso en la secuencia de ejecución. 
-  * NEXT:​ Indica que este paso es obligatorio en el flujo es decir que el origen/​destino debe ejecutarse.+  ​* **NEXT**: Indica que este paso es obligatorio en el flujo es decir que el origen/​destino debe ejecutarse. 
 + 
 +===== Configuración DB ===== 
 +Los workflow requieren de configuración las cuales deben realizarse en las siguientes tablas del esquema: 
 + 
 +  * **TBL_CONFIG_LAUNCHER_TYPE**:​ Permite configurar los tipos de lanzadores que se utilizarán (Botones, Click, etc). 
 +  * **TBL_CONFIG_WORKFLOW_ACTI**:​ Permite configurar los tipos de acciones. 
 +  * **TBL_CONFIG_WORKFLOW_RGUI**:​ Permite configurar los tipos de representaciones gráficas. 
 +  * **TBL_CONFIG_WORKFLOW_TYPE**:​ Permite configurar los tipos de workflow (Esta configuración no se debe modificar). 
 +  * **TBL_WORKFLOW**:​ Tabla principal de la configuración permite configurar los encabezados de los workflow. 
 +  * **TBL_WORKFLOW_COMPONENT**:​ Tabla principal de la configuración permite configurar las interaciones de los servicios. 
 + 
 +==== Pasos para crear un workflow ==== 
 +No todas las tablas son requeridas para la creación de un workflow porque por defecto ya existe una configuración basica realiza. Para crear un workflow debe seguir los siguientes pasos: 
 + 
 +  - Configurar Metadata de consumo y respuesta de los servicios 
 +  - Configurar el cataogo del componente con sus servicios 
 +  - Crear encabezado del workflow (Por concenso se recomienda utilizar el mismo nombre del componente) 
 +  - Crear los pasos que definen el servicio y registrar adecuadamente los tag de identificación de los lanzadores de acciones. 
 + 
 +Una vez finalizada la configuración el workflow estará listo para vincularlo (según su tipo) a los procesos del ERP. 
 + 
 +===== Consumo de Workflow ===== 
 +La funcionaidad de los workflow puede ser consumida por un servicio SOAP el cual en el ambiente de desarrollo está registrado en la url: http://​10.1.40.170:​88/​ws00_workflow/​n_ws00_workflow.asmx el cual cuenta con 2 operaciones expuestas:​ 
 + 
 +  * ws_get: Versión inicial (obsoleta, se mantiene por compatibilidad de validaciones) la cual solo soporta workflow de tipo CW. 
 +  * ws_get2: Versión actual (estable) la cual soporta todos los tipos de workflow. 
 + 
 +===== Ejemplo de consumo SOAP ===== 
 + 
 +  * ws_get: {"​workflow_code":"​NOVEDAD_DESCUENTO",​ "​workflow_path":​ "​-1",​ "​workflow_component":​ "​-1"​} 
 +  * ws_get2: {"​workflow_code":"​NOVEDAD_DESCUENTO",​ "​workflow_component":​ "​-1"​} 
 + 
 +==== Notas ==== 
 + 
 +  * Los argumentos de consumo son requeridos, sin embargo sin algun argumento no quiere utilizarse en el filtro debe enviar un valor de -1 en el atributo (según su tipo). 
 + 
 +==== Ejemplo visual (SOAP-UI) ==== 
 + 
 +{{:​ada:​tips:​sicoferp:​general:​pbtows:​procesos:​ejemplo_grafico.png?​600|}} 
 + 
 +==== Ejemplo estructura de respuesta (JSON) ==== 
 + 
 +<​code>​ 
 +
 +    "​return_code":​ "​1",​ 
 +    "​return_user_message":​ "Flujo de trabajo generado correctamente",​ 
 +    "​return_technical_message":​ "​consulta de datos existosa",​ 
 +    "​return_response_date":​ "​11/​12/​2019 16:​14:​01",​ 
 +    "​return_object": ​    { 
 +        "​workflow_code":​ "​NOVEDAD_DESCUENTO",​ 
 +        "​workflow_description":​ "Flujo de trabajo para los procesos del componente: novedad_descuento",​ 
 +        "​workflow_type":​ "​WINDOW_COMPONENT_WORKFLOW",​ 
 +        "​workflow_component_code":​ "​NOVEDAD_DESCUENTO",​ 
 +        "​workflow_service_code":​ "​NOVEDAD_DESCUENTO_LISTAR",​ 
 +        "​step":​ [ 
 +        { 
 +            "​step_number":​ 1, 
 +            "​step_order":​ 0, 
 +            "​step_tag":​ null, 
 +            "​step_launcher_type":​ null, 
 +            "​step_launcher_tag":​ "​list_novedad",​ 
 +            "​step_source": ​            { 
 +                "​step_source_component":​ "",​ 
 +                "​step_source_service":​ "",​ 
 +                "​step_source_gui":​ "",​ 
 +                "​step_source_action":​ "",​ 
 +                "​step_source_endpoint":​ ""​ 
 +            }, 
 +            "​step_target": ​            { 
 +                "​step_target_component":​ "​NOVEDAD_DESCUENTO",​ 
 +                "​step_target_service":​ "​NOVEDAD_DESCUENTO_LISTAR",​ 
 +                "​step_target_gui":​ "​GRID",​ 
 +                "​step_target_action":​ null, 
 +                "​step_target_endpoint":​ ""​ 
 +            } 
 +        }, 
 +        { 
 +            "​step_number":​ 2, 
 +            "​step_order":​ 10, 
 +            "​step_tag":​ null, 
 +            "​step_launcher_type":​ null, 
 +            "​step_launcher_tag":​ "​show_novedad",​ 
 +            "​step_source": ​            { 
 +                "​step_source_component":​ "",​ 
 +                "​step_source_service":​ "",​ 
 +                "​step_source_gui":​ "",​ 
 +                "​step_source_action":​ "",​ 
 +                "​step_source_endpoint":​ ""​ 
 +            }, 
 +            "​step_target": ​            { 
 +                "​step_target_component":​ "​NOVEDAD_DESCUENTO",​ 
 +                "​step_target_service":​ "​NOVEDAD_DESCUENTO_CONSULTAR_DETALLE_NOVEDADES",​ 
 +                "​step_target_gui":​ "​TABULAR",​ 
 +                "​step_target_action":​ null, 
 +                "​step_target_endpoint":​ ""​ 
 +            } 
 +        }, 
 +        { 
 +            "​step_number":​ 3, 
 +            "​step_order":​ 20, 
 +            "​step_tag":​ null, 
 +            "​step_launcher_type":​ null, 
 +            "​step_launcher_tag":​ "​edit_novedad",​ 
 +            "​step_source": ​            { 
 +                "​step_source_component":​ "",​ 
 +                "​step_source_service":​ "",​ 
 +                "​step_source_gui":​ "",​ 
 +                "​step_source_action":​ "",​ 
 +                "​step_source_endpoint":​ ""​ 
 +            }, 
 +            "​step_target": ​            { 
 +                "​step_target_component":​ "​NOVEDAD_DESCUENTO",​ 
 +                "​step_target_service":​ "​NOVEDAD_DESCUENTO_CONSULTAR_DETALLE_NOVEDADES",​ 
 +                "​step_target_gui":​ "​FORM",​ 
 +                "​step_target_action":​ null, 
 +                "​step_target_endpoint":​ ""​ 
 +            } 
 +        }, 
 +        { 
 +            "​step_number":​ 4, 
 +            "​step_order":​ 30, 
 +            "​step_tag":​ null, 
 +            "​step_launcher_type":​ null, 
 +            "​step_launcher_tag":​ "​save_novedad",​ 
 +            "​step_source": ​            { 
 +                "​step_source_component":​ "",​ 
 +                "​step_source_service":​ "",​ 
 +                "​step_source_gui":​ "",​ 
 +                "​step_source_action":​ "",​ 
 +                "​step_source_endpoint":​ ""​ 
 +            }, 
 +            "​step_target": ​            { 
 +                "​step_target_component":​ "​NOVEDAD_DESCUENTO",​ 
 +                "​step_target_service":​ "​NOVEDAD_DESCUENTO_GUARDAR_NOVEDADES_DESCUENTO",​ 
 +                "​step_target_gui":​ null, 
 +                "​step_target_action":​ null, 
 +                "​step_target_endpoint":​ ""​ 
 +            } 
 +        }, 
 +        { 
 +            "​step_number":​ 5, 
 +            "​step_order":​ 40, 
 +            "​step_tag":​ null, 
 +            "​step_launcher_type":​ null, 
 +            "​step_launcher_tag":​ "​cancel_novedad",​ 
 +            "​step_source": ​            { 
 +                "​step_source_component":​ "",​ 
 +                "​step_source_service":​ "",​ 
 +                "​step_source_gui":​ "",​ 
 +                "​step_source_action":​ "",​ 
 +                "​step_source_endpoint":​ ""​ 
 +            }, 
 +            "​step_target": ​            { 
 +                "​step_target_component":​ "​NOVEDAD_DESCUENTO",​ 
 +                "​step_target_service":​ "​NOVEDAD_DESCUENTO_LISTAR",​ 
 +                "​step_target_gui":​ "​GRID",​ 
 +                "​step_target_action":​ null, 
 +                "​step_target_endpoint":​ ""​ 
 +            } 
 +        } 
 +        ] 
 +    }, 
 +    "​return_workflow_step_tag":​ "",​ 
 +    "​return_execution_time":​ "​282",​ 
 +    "​metadata_json__":​ "​GENERIC_METADATA_RESPONSE"​ 
 +
 +</​code>​ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
  
  
  
ada/tips/sicoferp/general/pbtows/procesos/workflowpb.1576009608.txt.gz · Última modificación: 2019/12/10 20:26 por carlos.torres