Compartir vía


Conexión a Azure DevOps desde Power Apps

El conector de Power Apps para Azure DevOps le permite trabajar con una instancia de Azure DevOps. Puede ver consultas de Azure DevOps, seleccionar elementos de trabajo en función de diferentes tipos de elementos de trabajo, y ver o editar detalles, todo desde dentro de una aplicación de lienzo que se conecta a Azure DevOps.

Sugerencia

Para obtener una lista completa de todas las acciones, consulte acciones del conector de Azure DevOps.

El objetivo de este artículo es guiarlo en la creación de una aplicación de lienzo que pueda conectarse con Azure DevOps para recopilar una lista de consultas e interactuar con los elementos de trabajo del proyecto.

Requisitos previos

Los siguientes requisitos son necesarios:

Paso 1: Agregar un origen de datos de Azure DevOps

Para conectarse a Azure DevOps, edite la aplicación de lienzo en blanco y agregue el origen de datos Azure DevOps.

Conectarse a Azure DevOps.

Si aún no tiene una conexión de Azure DevOps, seleccione Conectar y siga las indicaciones para proporcionar sus datos y luego permita que la aplicación se conecte.

Paso 2: Lista de consultas compartidas

En esta sección, usaremos la acción ListQueriesInFolder para el conector de Azure DevOps para listar las consultas disponibles.

  1. En el panel izquierdo, seleccione Insertar > Diseño > Galería vertical en blanco.

  2. Introduzca la siguiente fórmula para la propiedad Items de la galería, reemplazando los valores de los parámetros de ejemplo según corresponda.

    AzureDevOps.ListQueriesInFolder("Project","Organization","Folder").value
    

Enumere las consultas de la carpeta usando la fórmula agregada a la propiedad Elementos de la galería vertical.

Si el ejemplo utiliza las variables "Proyecto", "Organización" y "Carpeta" y los valores reales están en los cuadros de texto debajo de la barra de fórmulas (resaltados). Puede encontrar los valores de su proyecto y organización en la dirección URL utilizada para conectarse a Azure Dev Ops. La carpeta normalmente será "Consultas compartidas" o "Mis consultas".

Busque el nombre del proyecto y la organización de su instancia de Azure Dev Ops.

Si obtiene el siguiente error en la fórmula anterior, habilite acceso a aplicaciones de terceros mediante OAuth en su organización de Azure DevOps y vuelva a intentarlo.
"AzureDevOps.ListQueriesInFolder failed:{"status":401,"message":"TF400813:El 'GUID' de usuario no está autorizado a acceder a este recurso."}

  1. Seleccione el Diseño para la galería en Título y subtítulo.

  2. Elija los campos apropiados para Azure Dev Ops como Nombre y Opciones de carpeta para el título y los subtítulos.

Campos de galería para lista de consultas.

Paso 3: Lista de elementos de trabajo

Ahora usamos la accción GetQueryResultsV2 para el conector de Azure DevOps para enumerar todos los elementos de trabajo para la consulta seleccionada. Esto enlaza la galería al origen de datos.

  1. Inserte otra galería vertical en blanco y colóquela en el lado derecho de la galería existente.

  2. Introduzca la siguiente fórmula para la propiedad Items de la galería, reemplazando los valores de los parámetros de ejemplo según corresponda. Sustituya los nombres de su proyecto y organización según corresponda.

    AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value
    

Obtenga los resultados de la consulta de la galería existente en función de la consulta seleccionada.

Esta fórmula utiliza la acción GetQueryResultsV2 con el nombre del proyecto, el ID de la consulta y el nombre de la organización. El ID de consulta en este ejemplo (Gallery2.Selected.Id) se refiere a la consulta seleccionada de la lista de consultas disponibles a través de la galería agregada anteriormente. Reemplace el nombre de la galería según corresponda.

El resultado devuelto por GetQueryResultsV2 es dinámico. Y, por lo tanto, los valores tampoco están tipificados.

Mostrar campos de elementos de trabajo de título, tipo de elemento de trabajo.

Sin embargo, puede acceder a algunos de los valores. Azure Dev Ops devuelve un conjunto básico de valores para todos los elementos que se escriben. Seleccione la tarjeta de datos en la galería e inserte dos etiquetas de texto. Seleccione la propiedad de texto de las etiquetas como se muestra:

    ThisItem.Value.'System.WorkItemType'
    ThisItem.Value.'System.Title'

Paso 4: Mostrar elementos de trabajo

La aplicación muestra una lista de todas las consultas y la lista de elementos de trabajo para la consulta seleccionada. Ahora podemos agregar un formulario de edición que usaremos para simplemente mostrar datos.

  1. Organice las dos galerías en la pantalla para hacer espacio para el formulario de edición que agregaremos moviendo ambas galerías a la izquierda de la pantalla.

  2. Agregue Editar formulario a la pantalla y muévala al lado derecho de las galerías.

Agregar Editar formulario.

  1. Establezca la propiedad DataSource del formulario de edición en AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value. Sustituya los nombres de su proyecto y organización según corresponda.

  2. Establezca la propiedad Item del formulario de edición en Gallery2.Selected.

    Esta fórmula establece la propiedad Item para el formulario de edición en el elemento de trabajo que está seleccionado en la lista de elementos de trabajo.

  3. Seleccione Editar campos desde el panel de propiedades en el lado derecho de la pantalla.

  4. Seleccione ... (puntos suspensivos) > Agregar una tarjeta personalizada.

    Agregar una tarjeta personalizada.

  5. Reorganice la tarjeta de datos en el formulario de edición en la parte superior.

    Tarjeta personalizada movida a la sección superior dentro del formulario de edición.

  6. Manteniendo seleccionada la tarjeta personalizada, inserte un control Entrada de texto. Una vez seleccionado, el control se agrega dentro de la tarjeta personalizada.

  7. Aumente el tamaño del control Entrada de texto.

Control Entrada de texto dentro de tarjeta personalizada.

  1. Seleccione la propiedad Default del control Entrada de texto para Text(ThisItem.Value.'System.Title'). La función Texto 'escribe' la devolución como Texto.

Este es un control de entrada de texto que hace referencia al título del elemento de trabajo.

Esta fórmula establece el texto predeterminado dentro del control Entrada de texto en el campo Título del elemento de trabajo de Azure DevOps seleccionado.

Sugerencia

Si su proyecto de Azure DevOps utiliza el campo Descripción con HTML o texto enriquecido, también puede utilizar el control de entrada Editor de texto enriquecido en lugar del control Entrada de texto o controles de etiqueta. Utilizando el control Editor de texto enriquecido en este caso también ayuda a resolver cualquier problema, como que la descripción se muestre con código HTML en lugar de texto sin formato o enriquecido.

  1. Repita los pasos anteriores para agregar otra tarjeta personalizada, con un control Entrada de texto dentro de la propiedad Default establecida en Text(ThisItem.Value.'System.State').

    Esta fórmula establece el texto predeterminado dentro del control Entrada de texto en el campo Estado del elemento de trabajo de Azure DevOps seleccionado.

  2. Reorganice las tarjetas de datos dentro del formulario de edición para crear un espacio donde agregaremos el icono de guardar.

Agregar valores de retorno dinámicos y sin tipo a sus formularios

Hasta ahora hemos estado usando el formulario Editar, que simplifica la historia de acceso a los datos al proporcionar una propiedad DataSource y Item común con la que pueden trabajar todas las tarjetas de datos del formulario. Si utiliza el formulario Editar, para acceder a los valores sin tipo, asegúrese de configurar tanto origen de datos como las propiedades del elemento de la siguiente manera: (Sustituyendo en sus valores por Organización y Proyecto.)

   AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType')

Cuando pasa la propiedad de texto "WorkItemType", por ejemplo, "Función", le permite cambiar entre elementos como Funciones y Elementos de trabajo. Dado que el conjunto de campos para estos elementos difiere entre sí, el tipo de devolución de esta llamada es dinámico.

Puede acceder a valores específicos utilizando el método común Text(ThisItem.Value.'System.Id'). Alternativamente, puede acceder a ellos a través de la respuesta dinámica más general usando Text(ThisItem.fields.System_Id). Estos nombres de valores dinámicos normalmente no están documentados. Para encontrar los nombres correctos para estos campos, incluidos los campos no estándar, abra la herramienta de monitoreo y examine la respuesta de datos para la llamada GetWorkItemDetails. Consulte la imagen a continuación para obtener más orientación.

Si no está utilizando un formulario de edición, sino un contenedor, puede recuperar estos valores utilizando una fórmula como la siguiente, que recupera información de un campo de equipo personalizado.

Text(AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType').fields.One_custom_CustomField1)

Control Entrada de texto que hace referencia al título del elemento de trabajo.

Actualizando valores en Azure DevOps

Para actualizar un valor en Azure Dev Ops, use UpdateWorkItem en OnSelect de un botón.

AzureDevOps.UpdateWorkItem(
    Gallery2.Selected.Value.'System.Id', 
    Organization, 
    {   description: "This is a new description", 
        dynamicFields: ParseJSON(JSON({'Custom Field 1': "This is new custom text" })) 
    }
);

La fórmula agrega nuevo texto de muestra, pero también puede usar una expresión PowerFx.

Asegúrese de que la fórmula utilice minúsculas para los nombres de campo no personalizados o integrados. Por ejemplo, cuando se refiera al campo "Descripción", utilice description: "This is a new description" en lugar de Description:"This is a new description". Las mayúsculas y minúsculas incorrectas pueden generar el error "400 Parámetro requerido: falta para la operación solicitada: 'UpdateWorkItem'". Para valores personalizados/dinámicos, puede utilizar la mayúscula normal del campo de visualización. Por ejemplo, el nombre del campo personalizado es simplemente nombre 'Campo personalizado 1'. Esta convención de nomenclatura de los valores devueltos es específica de Azure DevOps y puede diferir de otros servicios.

Pasos siguientes

Reproduzca la aplicación. Seleccione una consulta de la lista de consultas. Y luego elija un elemento de trabajo cuyo título o descripción desee actualizar. Realice un cambio y luego seleccione el botón Guardar. Los cambios se guardan en el elemento de trabajo Azure DevOps. Cambie a otra consulta y vuelva a cambiar para ver los cambios que se muestran dentro de la aplicación.

Del mismo modo, personalice aún más la aplicación o cree una aplicación con tarjetas de datos adicionales en los formularios. También puede usar el formulario de visualización en lugar del formulario de edición para mostrar datos en diferentes tarjetas de datos. Al utilizar el formulario de visualización, asegúrese de utilizar el control Etiqueta de texto para mostrar texto. Cuando utilice formato de texto enriquecido o HTML (como el capo Descripción en Azure DevOps), utilice el control Texto HTML. Para obtener más información sobre cómo personalizar esa aplicación, consulte controles, galería, formularios y tarjetas.

Consulte también

Trabajar con orígenes de datos de esquema dinámico en Power Apps (experimental)

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).