En este artículo os voy a contar una sencilla solución para que los adjuntos de los formularios customizados de SharePoint Online se abran en una nueva pestaña de vuestro navegador en lugar de descargarse en local.

NOTA: En este artículo utilizaré los formularios personalizados con Power Apps, aunque sirve igualmente para aplicaciones Canvas de Power Apps que utilicen listas de SharePoint como fuente de datos.

PROBLEMÁTICA

Si utilizamos el formulario estándar de SharePoint de los elementos de una lista, podréis comprobar que los adjuntos que hayáis incluido en cada elemento se abren en una nueva pestaña del navegador que estéis utilizando.

Adjuntos de un elemento de la lista con un formulario estándar (predeterminado)

Sin embargo, si personalizáis este formulario utilizando Power Apps, observaréis que, en lugar de seguir este comportamiento, el fichero es descargado en local o bien, dependiendo del navegador, aparecerá un PopUp para preguntarnos si queremos descargar el fichero o abrirlo con alguna aplicación:

Pulsar sobre un adjunto en un formulario personalizado

Este comportamiento no es muy «amigable» ya que lo que nuestros usuarios lo que quieren es que sus ficheros se abran cuanto antes y no tener que ejecutar acciones adicionales.

Para solventar este problema, vamos a reemplazar el componente estándar de adjuntos de SharePoint por un componente que sí que abra los ficheros en una pestaña nueva del navegador. Para ello realizaremos los siguientes pasos:

NOTA: Sólo vamos a sustituir el componente de adjuntos en el formulario de visualización de datos. En el formulario de Edición, continuaremos utilizando el componente estándar.

PASO 1

El primer paso será incluir el componente que vamos a utilizar para mostrar los adjuntos en el formulario de visualización. Este componente es el de texto HTML (HTML text) que se encuentra ubicado en la zona de componentes Text.

HTML text component

Lo que haremos es desbloquear la DataCard de adjuntos de nuestro formulario e insertar en ella este nuevo componente:

Agregar el componente en la DataCard de adjuntos

PASO 2

Como podemos tener varios adjuntos asociados a nuestro elemento, vamos a mostrarlos utilizando un listado de elementos HTML (unordered list).
Para ello, en la carga inicial de nuestro formulario, en el evento OnView de la parte SharePoint Integration, antes de ejecutar el comando «ViewForm», crearemos una colección con todos los adjuntos que tiene el elemento en cuestión y concatenaremos los adjuntos en una variable global utilizando elementos HTML de lista ‘<li>‘ y Anchors ‘<a>‘ con los enlaces a los ficheros.
Dado que en esta parte no podemos acceder al ThisItem, obtendremos los adjuntos utilizando el ID del elemento que nos devuelve la integración con SharePoint. Así, implementaremos estos objetos de la siguiente forma:

ClearCollect(ColAdjuntos,LookUp([Nombre de la lista],ID=SharePointIntegration.SelectedListItemID).'Datos adjuntos');

Set(_varAttachmentsHTML,Concat(ColAdjuntos As A,"<li><a href='" & A.AbsoluteUri & "' >" & A.DisplayName & "</a></li>"));
SharePointIntegration.OnView

PASO 3

Ahora que tenemos todos los adjuntos en formato HTML en una variable global (_varAttachmentsHTML) podemos proceder a configurar el componente que insertamos en el primer paso.
Lo primero que haremos es modificar la propiedad HtmlText del mismo, para que pase a contener la variable global de adjuntos dentro de un contenedor de etiquetas ‘<ul>‘ que agrupará las etiquetas ‘<li>‘ de los ficheros que se generaron en el paso anterior.
Será, por tanto, la siguiente instrucción:

"<ul>" & _varAttachmentsHTML & "</ul>"
HtmlText1Attachments.HtmlText

PASO 4

Lo único que nos falta es adaptar el componente HTML para que tenga el mismo tamaño que el componente de adjuntos original, e indicar que este componente es el que queremos visualizar cuando estemos en modo vista del formulario. Para ello, en la propiedad Visible de nuestro componente indicaremos lo siguiente:

If(SharePointForm1.Mode = FormMode.View,true,false)
HtmlText1Attachments.Visible

Mientras que en el componente estándar de Adjuntos (en mi caso DataCardValue8) indicaremos lo contrario en su propiedad Visible:

If(SharePointForm1.Mode = FormMode.View,false,true)
DataCardValue8.Visible

LISTO

Una vez completados todos estos pasos, sólo queda Guardar los cambios, Publicar el formulario y verificar que nuestro componente se muestra correctamente y que los adjuntos se abren en una nueva pestaña, tal y como deseábamos.

Visualización de los adjuntos con el nuevo componente en el formulario de visualización

Por supuesto, podéis aplicar ahora los estilos que consideréis adecuados al componente HTML para mejorar la visualización del mismo.

Con esto termino este nuevo post. Espero que os haya resultado interesante.

¡Muchas gracias por leerme!

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s