Subproceso es una opción para encapsular los pasos relacionados lógicamente dentro de un proceso padre. Los pasos de un subproceso pueden acceder directamente a los objetos de negocio (variables) desde el proceso padre. No es necesaria la correlación de datos. No obstante, a diferencia de un proceso enlazado, sólo se puede acceder y crear una instancia de un subproceso desde la BPD padre, y no es reutilizable por ningún otro proceso o subproceso.
Un subproceso representa una colección de pasos relacionados lógicamente contenidos en un proceso padre. Puede ver un subproceso como una actividad única, que proporciona una vista simplificada de alto nivel del proceso padre, o puede ver los detalles del subproceso para obtener una vista más detallada de su contenido.
Un subproceso se puede incluir en otro subproceso. Para obtener detalles de un subproceso contraído y ver el contenido, efectúe una doble pulsación en la actividad de subproceso del padre. Para navegar de nuevo hasta el proceso padre desde un subproceso o un suceso de subproceso, utilice el rastro de navegación en la esquina superior izquierda del diagrama. Para volver a un proceso padre desde un proceso enlazado, utilice el menú situado sobre el lienzo.
Los subprocesos pueden contener carriles que son distintos del proceso padre. Por ejemplo, las actividades del subproceso puede llevarlas a cabo un conjunto de participantes distinto del conjunto de participantes que lleva a cabo las actividades en el proceso padre.
Al igual que otras actividades, se pueden configurar los subprocesos para que se ejecuten varias veces en la ejecución del proceso padre configurando un comportamiento de bucle en el elemento de actividad de subproceso del proceso padre.
Hay tres tipos de subprocesos que puede modelar en una BPD. Sus características se describen en la tabla siguiente.
| Implementación | Descripción | Características | Ámbito de variable |
|---|---|---|---|
| Subproceso | Subproceso reutilizable que existe solo en el proceso padre. | Cada subproceso debe contener por lo menos un suceso de inicio
con un tipo de implementación de Ninguno. Los nombres de actividad deben ser exclusivos con respecto a las actividades de proceso de nivel superior y todos los demás subprocesos y subprocesos de sucesos bajo el mismo proceso de nivel superior. |
Hereda variables del proceso padre y puede contener variables locales privadas visibles solo en el subproceso. Los nombres de las variables declaradas en un subproceso no pueden ser iguales que los nombres de variable declarados en ninguno de sus proceso padre. Si hay varias capas de inclusión, con subprocesos contenidos en otros subprocesos, los nombres de variable deben ser exclusivos en toda la jerarquía de subproceso. |
| Proceso enlazado | Una llamada a otro proceso reutilizable. | El proceso al que llama la actividad del proceso enlazado puede contener varios sucesos de inicio, pero debe contener como mínimo un suceso de inicio con un tipo de implementación de Ninguno. | Los datos de variables son locales a cada proceso, por lo tanto, es necesaria la correlación de datos para pasar datos a y desde el proceso enlazado. |
| Subproceso de suceso | Un tipo especializado de subproceso reutilizable que no es parte del proceso de flujo de secuencia normal del padre y que podría ocurrir ninguna o muchas veces durante la ejecución del proceso padre. | Debe contener un solo suceso de inicio, que puede ser uno de los siguientes :
La ejecución del subproceso de suceso puede interrumpir el proceso padre o se puede ejecutar en paralelo. Los nombres de actividad deben ser exclusivos con respecto a las actividades de proceso de nivel superior y todos los demás subprocesos y subprocesos de sucesos bajo el mismo proceso de nivel superior. No se admiten los sucesos límite en un subproceso de suceso. |
Hereda variables del proceso padre y puede contener variables locales privadas visibles solo en el subproceso. Los nombres de las variables declaradas en un subproceso de suceso no pueden ser iguales que los nombres de variable declarados en ninguno de sus procesos padre. Si hay varias capas de inclusión, con subprocesos de suceso contenidos en otros subprocesos, los nombres de variable deben ser exclusivos en toda la jerarquía de subproceso. |