Paso 3. Uso de Power Automate para crear el flujo para procesar los contratos
Ha creado el canal de administración de contratos y ha adjuntado la biblioteca de documentos de SharePoint. El siguiente paso es crear un flujo de Power Automate para procesar los contratos que el modelo de Syntex identifica y clasifica. Para realizar este paso, cree un flujo de Power Automate en la biblioteca de documentos de SharePoint.
Para la solución de administración de contratos, quiere crear un flujo de Power Automate para realizar las siguientes acciones:
- Una vez clasificado un contrato por el modelo de Syntex, cambie el estado del contrato a En revisión.
- A continuación, se revisa el contrato y se aprueba o se rechaza.
- En el caso de los contratos aprobados, la información del contrato se contabiliza en una pestaña para el procesamiento de pagos.
- En el caso de los contratos rechazados, se notifica al equipo para su análisis posterior.
En el diagrama siguiente se muestra el flujo de Power Automate para la solución de administración de contratos.
Preparar el contrato para su revisión
Cuando el modelo de procesamiento de documentos no estructurado identifica y clasifica un contrato, el flujo de Power Automate cambiará primero el estado a En revisión.
Después de extraer el archivo, cambie el valor de estado a En revisión.
El siguiente paso es crear una tarjeta adaptable que indique que el contrato está esperando su revisión y su publicación en el canal de administración de contratos.
El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Contract approval request",
"size": "large",
"weight": "bolder",
"wrap": true
},
{
"type": "Container",
"items": [
{
"type": "FactSet",
"spacing": "Large",
"facts": [
{
"title": "Client",
"value": "@{triggerOutputs()?['body/Client']}"
},
{
"title": "Contractor",
"value": "@{triggerOutputs()?['body/Contractor']}"
},
{
"title": "Fee amount",
"value": "@{triggerOutputs()?['body/FeeAmount']}"
},
{
"title": "Date created",
"value": "@{triggerOutputs()?['body/Modified']} "
},
{
"title": "Link",
"value": "[@{triggerOutputs()?['body/{FilenameWithExtension}']}](@{triggerOutputs()?['body/{Link}']})"
}
]
}
]
},
{
"type": "TextBlock",
"text": "Comment:"
},
{
"type": "Input.Text",
"placeholder": "Enter comments",
"id": "acComments"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Approve",
"data": {
"x": "Approve"
}
},
{
"type": "Action.Submit",
"title": "Reject",
"data": {
"x": "Reject"
}
}
]
}
Contexto condicional
En el flujo, a continuación, debe crear una condición en la que el contrato se aprobará o rechazará.
Si se aprueba el contrato
Cuando se ha aprobado un contrato, se producen las siguientes cosas:
En la pestaña Contratos , el estado de la tarjeta de contrato cambiará a Aprobado.
En el flujo, el estado cambia a Aprobado.
En esta solución, los datos del contrato se agregarán a la pestaña Para pago para que se puedan administrar los pagos. Este proceso se puede ampliar para permitir que el flujo envíe los contratos de pago por parte de una aplicación financiera de terceros (por ejemplo, Dynamics CRM).
En el flujo, se crea el siguiente elemento para mover los contratos aprobados a la pestaña Para pago .
Para obtener las expresiones de la información necesaria de la tarjeta de Teams, use los valores que se muestran en la tabla siguiente.
Nombre Expression Estado de aprobación body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId'] Aprobado por body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['respondedor'] ['displayName'] Fecha de aprobación body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responseTime'] Comentario body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ¿['data']? ['acComments'] En el ejemplo siguiente se muestra cómo usar el cuadro de fórmula de Power Automate para escribir una expresión.
Se crea una tarjeta adaptable que indica que el contrato se ha aprobado y se publica en el canal de administración de contratos.
El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.
{
"type": "AdaptiveCard",
"body": [
{
"type": "Container",
"style": "emphasis",
"items": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"size": "Large",
"weight": "Bolder",
"text": "CONTRACT APPROVED"
}
],
"width": "stretch"
}
]
}
],
"bleed": true
},
{
"type": "Container",
"items": [
{
"type": "FactSet",
"spacing": "Large",
"facts": [
{
"title": "Client",
"value": "@{triggerOutputs()?['body/Client']}"
},
{
"title": "Contractor",
"value": "@{triggerOutputs()?['body/Contractor']}"
},
{
"title": "Fee amount",
"value": "@{triggerOutputs()?['body/FeeAmount']}"
},
{
"title": "Approval by",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responder']['displayName']}"
},
{
"title": "Approved date",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responseTime']}"
},
{
"title": "Approval comment",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['data']?['acComments']}"
},
{
"title": " ",
"value": " "
},
{
"title": "Status",
"value": "Ready for payout"
}
]
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
}
Si se rechaza el contrato
Cuando se ha rechazado un contrato, se producen las siguientes cosas:
En la pestaña Contratos , el estado de la tarjeta de contrato cambiará a Rechazado.
En el flujo, descarte el archivo de contrato, cambie el estado a Rechazado y vuelva a comprobar el archivo.
En el flujo, se crea una tarjeta adaptable que indica que se ha rechazado el contrato.
El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.
{
"type": "AdaptiveCard",
"body": [
{
"type": "Container",
"style": "attention",
"items": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"size": "Large",
"weight": "Bolder",
"text": "CONTRACT REJECTED"
}
],
"width": "stretch"
}
]
}
],
"bleed": true
},
{
"type": "Container",
"items": [
{
"type": "FactSet",
"spacing": "Large",
"facts": [
{
"title": "Client",
"value": "@{triggerOutputs()?['body/Client']}"
},
{
"title": "Contractor",
"value": "@{triggerOutputs()?['body/Contractor']}"
},
{
"title": "Fee amount",
"value": "@{triggerOutputs()?['body/FeeAmount']}"
},
{
"title": "Rejected by",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responder']['displayName']}"
},
{
"title": "Rejected date",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responseTime']}"
},
{
"title": "Comment",
"value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['data']?['acComments']}"
},
{
"title": " ",
"value": " "
},
{
"title": "Status",
"value": "Needs review"
}
]
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
}
La tarjeta se contabiliza en el canal de administración de contratos.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de