Share via


Escribir scripts para flujos de procesos de negocio

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Con Microsoft Dynamics 365 (en línea y local) hay un objeto del lado del cliente que puede usar para interactuar con flujos de proceso de negocio en sus scripts. El espacio de nombres de Xrm.Page.data se amplía para incluir métodos en Xrm.Page.data.process. El espacio de nombres de Xrm.Page.ui se amplía para incluir métodos en Xrm.Page.ui.process.

En este tema

Estructura de flujos de proceso de negocio

Acciones que se pueden automatizar

Eventos para flujos de proceso de negocio

Estructura de flujos de proceso de negocio

Los flujos de proceso de negocio estén formadas por una serie de fases, cada una con varios pasos. Sólo una fase es la fase activa. Cuando los pasos requeridos en cada fase se completan, el proceso puede pasar a la siguiente fase y se convierte en la fase activa. La fase siguiente se puede definir según las condiciones del flujo de proceso de negocio tal como se muestra en el siguiente diagrama.

Objetos de flujo de proceso de negocio

Las fases se pueden asociar con entidades relacionadas específicas, por lo que un flujo de proceso de negocio pueden abarcar varias entidades. El proceso de negocio se mantiene igual y lleva al usuario a una conclusión deseada.

A partir de Actualización de diciembre de 2016 para Dynamics 365 (online y local), pueden asociar diferentes definiciones de flujo de proceso de negocio a distintos roles y las instancias pueden ejecutarse en paralelo con el mismo registro de entidad. Los usuarios pueden cambiar entre instancias de proceso de negocio simultáneo y reanudar el trabajo en una fase actual del proceso.

Más información:TechNet: Flujos de proceso de negocio

Acciones que se pueden automatizar

Normalmente, el progreso a lo largo del proceso de negocio depende de los datos introducidos por el usuario. Como programador, puede realizar las mismas acciones mediante programación en scripts de formularios.

  • Cambie el proceso cuando hay más de un proceso disponible para la entidad.
    Use Xrm.Page.data.process.getEnabledProcesses para recuperar la información acerca de los procesos habilitados que el usuario puede elegir para la entidad. A continuación use Xrm.Page.data.process.setActiveProcess para convertir una de las instancias de proceso habilitadas en la activa o crear una nueva instancia de proceso.

  • Cambiar la instancia de proceso para un registro de entidad
    Use getProcessInstances para recuperar información sobre todas las instancias de proceso para que un registro de entidad y setActiveProcessInstance para establecer una instancia de proceso como instancia activa.

  • Pase a la siguiente fase cuando se completen todos los pasos obligatorios para convertirlo en la fase activa actual.
    Usar Xrm.Page.data.process.moveNext.

  • Vaya a la fase anterior y conviértala en la fase activa actual.
    Usar Xrm.Page.data.process.movePrevious.

  • Seleccione una fase para ver el estado de los pasos de la fase.
    Use Xrm.Page.data.process.getActivePath para recuperar información acerca de las fases que se han completado, la fase activa actual, y las fases válidas disponibles desde la fase activa actual. Examine los pasos incluidos en esa fase y compare los valores de atributo correspondientes del formulario para determinar si se han completado.

  • Complete un paso
    Los pasos se completan cuando se escriben los datos correspondiente del formulario. Puede determinar el atributo mediante el método getAttribute del paso. Esto devolverá el nombre lógico del atributo. Después use Xrm.Page.getAttribute para recuperar el atributo de la recopilación de Xrm.Page.data.entity.attributes y luego use el método 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue del atributo para establecer el valor.

  • Detecte si un paso es necesario
    Use el método de isRequired del paso para determinar si un paso es necesario para el flujo de proceso de negocio.

  • Expanda o contraiga el control del flujo de proceso de negocio
    Usar Xrm.Page.ui.process.setDisplayState.

  • Vaya a una fase válida completada.
    Use Xrm.Page.data.process.setActiveStage para establecer una de las fases válidas completadas en la entidad actual.

También hay algunas tareas que puede realizar como programador que un usuario no puede realizar.

  • Ocultar el control del proceso
    Use Xrm.Page.ui.process.setVisible para controlar si desea mostrar el control del flujo de proceso de negocio.

  • Consulte la definición de proceso incluidas las fases no visibles actualmente
    Use Xrm.Page.data.process.getActiveProcess para consultar la definición del flujo de proceso de negocio, incluidas las fases que podrían no ser visibles debido a la lógica de bifurcación del proceso.

Eventos para flujos de proceso de negocio

Puede interactuar con cualquier evento proporcionado por el formulario con flujos de proceso de negocio, pero los nuevos eventos siguientes permiten ejecutar código basándose en eventos solo para el control de flujo de proceso de negocio.

  • Puede ejecutar código cuando la fase activa de un flujo de proceso de negocio cambie (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange) o cuando se seleccione una fase (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected).

  • Puede ejecutar código cuando cambia el estado de una instancia de flujo de proceso de negocio (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange). Una instancia de flujo de proceso de negocio puede tener uno de los siguientes estados: Active, Finished, o Aborted.

Cualquiera de estos nuevos eventos proporciona una interfaz de usuario para registrar los controladores de eventos. Debe usar los métodos que se proporcionan para agregar o quitar controladores para estos eventos en el evento OnLoad del formulario.Más información:f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl

Ver también

Use el modelo de objeto Xrm.Page
Xrm.Page.data.process (referencia del lado del cliente)
Ejemplo: Xrm.Page.data.process.getEnabledProcesses
Ejemplo: Xrm.Page.data.process.getActivePath
f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl
TechNet: Flujos de proceso de negocio

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright