sábado, 28 de marzo de 2015

SharePoint está muriendo… ¡¡Larga vida a Office 365!!

El paradigma de las “intranets” está cambiando, es un hecho cada vez más constatado que algunas empresas incluso eluden el uso de la palabra “intranet” para evitar fomentar una idea anacrónica del término y prefieren utilizar de nuevo otras fórmulas ya olvidadas como “portal del empleado” o le otorgan nombres propios (por ejemplo: “The Hive”) para evidenciar que es “algo más” que una intranet tradicional.

A lo largo de los últimos años nos hemos acostumbrado sin darnos cuenta al uso del móvil y las redes sociales, a “seguir” la actividad de alguien o de una corporación, a expresar lo que “me gusta” o “no me gusta”, a las búsquedas relacionadas, a las cookies, a que sea el sistema quien me envíe la información “que sabe que me interesa”, al dinamismo de dicha información que nos incita a consultarla diversas veces al día… Todas estas costumbres derivan en la necesidad de extrapolarlo a nuestra vida laboral. ¿Por qué tener que pasar siempre por las mismas páginas de información cuando yo busco algo muy concreto debido a mi perfil/posición en la empresa o incluso a mis intereses personales?. Podemos observar que las intranets se van convirtiendo cada vez más en sistemas distribuidos, donde integrándonos a diversos sistemas/redes y basándonos en una lógica de distribución personal de la información, es el propio sistema quien nos “acerca” la información a cualquier dispositivo (móvil o no) y documentos que realmente necesitamos de forma dinámica y que nos genera simpatía hacia el sistema (y no el “aburrido” rechazo que muchos experimentan al oír la palabra “intranet”).

Pero… ¿Cómo se extrapola este cambio de paradigma en las “intranets” a corto plazo dentro del mundo SharePoint?

LA SENTENCIA

SharePoint como “caja negra” o producto On-Premise aislado del resto, está muriendo. Hace ya algún tiempo que empezó a ser evidente, y cada goteo de información (oficial o rumores) que nos va llegando de SharePoint 2016 parece ir confirmando todavía más lo que va a ser un inevitable desenlace hacia sistemas más distribuidos, como Office 365. Será precisamente Office 365 (SharePoint Online se está diluyendo ya en él también) el baluarte de Microsoft en la nueva era de los portales corporativos, y no descartemos la llegada de posibles nuevos competidores aprovechando este cambio de paradigma.

LAS EVIDENCIAS

Recientemente estamos observando que Office 365 se está convirtiendo cada vez más en “un conjunto de aplicaciones separadas, pero interconectadas entre sí”. Microsoft está lanzando muchas novedades en la nube, y se nota claramente que es aquí donde están poniendo su principal foco y esfuerzo. Muchas de las novedades no están incluidas dentro del propio SharePoint Online, aunque la idea es que SharePoint pueda servir como front-end para muchas de ellas, y conectarse entre ellas de diversas formas, como  API’s, Apps, WebServices o Azure AD.

Viendo tamaño esfuerzo en alimentar los servicios en la nube, es lógico pensar que SharePoint 2016 tendrá pocas novedades en On-Premise como tal, quizás la más esperada sea la de venir con HTML5, CSS3 i JQuery para poder facilitar la experiencia “mobile” y poder, al fin, crear portales responsive en cualquier dispositivo. Sin embargo, yo no esperaría grandes “servicios” o “features” DENTRO del propio SharePoint 2016, sino más bien la posibilidad de conectar a los nuevos servicios de Office 365 mediante un modelo híbrido de arquitectura… pero esta claro como el agua que ese modelo híbrido no es más que un empujón descomunal a “subir” a las corporaciones a la nube.

Tened en cuenta que es muy posible que incluso en SharePoint Server 2016 algunos de los servicios que hasta ahora estaban en On-Prem “se muevan” a la nube (parece muy claro, por poner un ejemplo, que “Performance Point” dejará de existir en favor de “Power BI”, servicio exclusivo del cloud). El panorama que personalmente veo venir es una disminución significativa de servicios On-Prem, y un aumento progresivo de Servicios On-Cloud. A continuación pasamos a revisar algunas de las recientes grandes novedades de servicios de Office 365 y Azure, para poder hacernos una idea de la “revolución” que Microsoft está montando en el cloud:

  • Office Delve – Nuevo servicio de Office 365 vivo reflejo del cambio de paradigma de las intranets que hemos comentado, ya que la información va directamente al usuario, de forma totalmente dinámica y en base a ciertos alegorismos de priorización (un correo con un documento adjunto será mucho más prioritario que el resto, por ejemplo). Office Delve genera una página de notificaciones en forma de “Tiles” donde recibiremos las notificaciones más relevantes de diversas fuentes de Office 365, tales como Exchange, SharePoint Online, OneDrive for business, Office 365 Video, Yammer, aunque se espera una apertura de la API en breve para poder desarrollar Apps propias que envien notificaciones a Office Delve.

Office Delve

  • Office 365 Video – Nuevo portal de Office 365 para la gestión de vídeos multimedia potenciado por Azure media services para su mejor renderización y velocidad de reproducción. El portal tiene una estética moderna y user friendly y se adapta perfectamente a las visualizaciones desde dispositivos móviles. Se conecta con Office Delve para que el usuario pueda descubrir fácilmente nuevos vídeos.

image 

  • Power BI – El Business Intelligence sube a la nube (bye bye Performance Point). Está basado en Excel, pero potenciado con Office 365 para ser compartido en la nube y está preparado para ser visualizado desde dispositivos móviles. Incluye diversas características como Power Query, Power Map, Power Pivot, Power View, Power BI Sites, un nuevo lenguaje “natural” de consultas a datos y construcción en HTML5 para facilitar su capacidad responsive en todo tipo de dispositivos.

  • Azure AD - Es una solución integral para la administración de acceso e identidades que va a permitir una API de servicios comunes entre aplicaciones de Office 365, ejerciendo también como Single Sign On entre los diversos componentes del cloud. Permitirá por ejemplo a una aplicación de SharePoint acceder a tus contactos de Exchange mediante una invocación simple al servicio, y utilizarla, por ejemplo para enviarles un mail desde un Workflow de SharePoint. Además, impide el acceso no autorizado a aplicaciones locales y en la nube, ya que proporciona un nivel más de autenticación. Una estrategia muy inteligente de Microsoft para “empujarnos hacia la nube”. Si hasta AD está On-Cloud, más sencillo todavía sería migrar/sincronizar nuestro AD On-Premise con nuestro AD On-Cloud.

  • Azure App Services – Es una nueva gran agrupación de servicios para construir aplicaciones (Apps) en la nube de Azure, tanto web como mobile (cualquier dispositivo) que facilitará la integración entre servicios On-Premise y On-Cloud, automatizando procesos de negocio. De nuevo un claro ejemplo de facilitar la subida a la nube. Seguro que SharePoint 2016 puede utilizarlo para conectar con múltiples servicios, pero de nuevo… ¿Donde está la revolución? En la nube, claro… Azure App Services se descompone en los siguientes grandes servicios:
  • Web Apps – Permite hospedar cualquier sitio web, API y Web App en la nube proporcionando un conjunto de capacidades para el desarrollo tales como soporte para múltiples lenguajes/frameworks (.NET, Java, PHP, NodeJS, Python, and more), integración contínua y debugging directamente en la nube.

Level 3

  • Mobile Apps – Ofrece una plataforma de desarrollo para aplicaciones móviles basándose en Azure Mobile Services y proporcionando un amplio conjunto de SDKs de clientes que incluyen Windows, iOS y Android así como entornos multi-plataforma como  Xamarin y Cordova. Permite crear notificaciones push en las Apps creadas y añadir controles de login, así como almacenamiento en la nube con sincronización offline para cualquier cliente móvil.
IOS

 

  • Logic Apps – Es un nuevo motor de automatización de procesos de negocio (workflows) mediante un diseñador visual que incluirá los conectores de API Apps a múltiples redes sociales y aplicaciones (entre ellas SharePoint Server 2016, pero de nuevo vemos que SharePoint Server es aquí un actor secundario más). Permitirá la integración entre redes tan dispares como por ejemplo DropBox, Facebook y Twitter.

  • API Apps – Permite gestionar y almacenar API’s y conectores SaaS en la nube. Con API Apps, los desarrolladores pueden seleccionar una extensa librería de APIs On-Cloud y On-Premise así como publicar APIs propias públicas o privadas que se integren con el resto mediante Apps Logic, Web, y Mobile en Azure App Service.

API

Como veis es una evidencia que el nuevo catálogo de servicios en la nube es impresionante y muchos de ellos suponen una gran revolución en cuando a adecuación de los nuevos estándares (HTML5, CSS 3…) e integración con otros servicios de la nube. Tampoco he enumerado todas las novedades de 365/Azure y seguro que veremos cómo estas van mejorando e incluso ir llegando otras nuevas durante los próximos meses.

Sin embargo, en el lado opuesto (On-Prem) encontramos ejemplos de justamente lo contrario (ausencia de novedades o características revolucionarias) ¿Por qué Microsoft, tras escenificar la “muerte” de infopath en la SPC14 y anunciar la llegada de FoSL como sustituto natural finalmente ha retrasado indefinidamente la llegada del mismo y ha tenido que anunciar que en SP2016 el motor de formularios va a seguir siendo InfoPath 2013 (ni siquiera habrá un InfoPath 2016)? De nuevo obtenemos la misma respuesta: Todos los esfuerzos del equipo de desarrollo de SharePoint han ido dedicados a evolucionar Office 365, dejando a muy baja prioridad todas las “features” nuevas de SharePoint propiamente dichas. SharePoint 2016 tendrá novedades, sí, las justas para justificar una migración desde 2013, y muchas de ellas serán… la posibilidad de conectar con nuevos servicios en la nube (Office 365).

A parte del gran volumen de novedades en 365/Azure y la ausencia de grandes novedades esperadas para SharePoint 2016, añadiré como evidencia de la sentencia de la muerte de SharePoint que incluso la gran conferencia mundial (SharePoint Conference) que se ha venido celebrando anualmente sobre SharePoint se ha “diluido” esta vez en la “Ignite”, donde si miramos el número de conferencias que se van a dar, vemos que los 2 productos de los que se va a hablar más son Office 365 y Azure con 183 y 155 charlas respectivamente. En tercera posición con 107 charlas está “Windows” (entendemos que Windows 10 será esta vez “la estrella”) y ya por fin en cuarta posición con 102 charlas SharePoint (4 de ellas dedicadas a SharePoint 2016)

image

Resumiendo todas las evidencias de la muerte de SharePoint: Enormes novedades en la nube, pocas novedades esperadas en On-Premise (a confirmar en la “Ignite”), posible “subida” de algunos servicios actuales de SharePoint Server al cloud, y una presencia “diluida” del propio SharePoint en el marketing global de Microsoft.

LAS CONCLUSIONES

Con todo lo anteriormente expuesto, queda bastante claro que Microsoft no se está enfocando en hacer crecer SharePoint como tal, sino en ampliar la gama de servicios en la nube de Office 365/Azure. Si consideramos que el nuevo paradigma de los portales corporativos está en la información distribuida en diversos sistemas y aplicaciones, está claro que la clave de todas las preguntas va a ser: ¿Quien ejerce de “campo gravitacional” o “fuerza de tracción” de toda esta información? La apuesta de Microsoft es clara: Office 365 y su creciente gama de servicios. Quizás sea alguno de sus servicios de front-end, como SharePoint Online o la evolución de un futuro Office Delve mejorado, la mezcla de varios servicios o alguno nuevo que sirva de unión para todos, aunque si todo tiende hacia la estandarización de formatos, integración ágil con otros sistemas y fuentes de información y visualización multi-dispositivo (aquí Microsoft ya está poniendo foco), no sería nada descartable que otros sistemas pudieran consumir información y servicios de Office 365, mediante las correspondientes API’s de servicio o Web Services… ¿Veremos próximamente algún rival fuerte para Microsoft en el nuevo paradigma de los servicios distribuidos?

Está claro que la muerte de SharePoint será lenta, pues está instaurado en un número tan grande de empresas que se tardará bastante tiempo en hacer la transición completa hacia los nuevos sistemas distribuidos. También es cierto que Microsoft dará soporte todavía muchos años a dicha tecnología, aunque yo no apostaría por futuras versiones con grandes novedades en cuanto a funcionalidad, quizás sigan haciendo algo en el sentido de que los clientes reacios a subir a la nube puedan seguir teniendo su base de SharePoint On-Prem, conectando a los servicios On-Cloud (justo como hará SP 2016), pero evidentemente no va a ser este el foco ni la clave del negocio de Microsoft. Sin embargo, os dejo aquí unas últimas preguntas dignas de ser bien meditadas: ¿De qué sirve tener un SharePoint On-Prem si para la gran mayoría de servicios tienes que conectarte a 365? ¿Alguien le ve sentido a SharePoint 2019 o 2020 si al final TODAS las grandes novedades van a estar en la nube?

Hasta aquí, SharePointers, la reflexión de hoy. De hecho, lo que hoy he comentado aquí no es ningún secreto, pero quería publicar mi punto de vista al respecto. Si queréis profundizar un poco más en el tema, os recomiendo leer también esta entrada de Guido Stevens, que está ciertamente muy interesante.

Un nuevo futuro se acerca… SharePoint está muriendo… ¡¡Larga vida a Office 365!!

viernes, 27 de marzo de 2015

Cómo modificar la SuiteBar de SharePoint 2013

Hoy vamos a explicar diversas formas de modificar la SuiteBar de SharePoint 2013.
La suitebar es esa barra azul Microsoft en la zona superior de la pantalla que SharePoint nos impone por defecto en todos sus portales. Esta barra está dividida en dos zonas claramente diferenciadas, que además, son de dificultad muy distinta en su modificación.
Por un lado tenemos la zona izquierda de la suitebar, donde por defecto veremos el literal “SharePoint”. En el otro lado tenemos la zona derecha, donde veremos algunos enlaces impuestos por la plataforma de forma predeterminada.
image
Cómo modificar la suitebar izquierda (“SharePoint”)
Para modificar la suitebar de la izquierda (donde aparece el literal “SharePoint” por defecto) tomaremos el ejemplo de la plantilla del MySite.
image
Para modificar ese literal en todos la aplicación web del MySite es muy sencillo, pues existe una propiedad en PowerShell que permite hacerlo directamente (SuiteBarBrandingElementHtml).
Podemos consultar el valor actual de esta variable mediante las siguientes líneas de PowerShell:
$web = Get-SPWebApplication http://(URL de tu app web)
$ web.SuiteBarBrandingElementHtml
 image
por defecto retornará “<div class=’ms-core-brandingText’>SharePoint</div>
La modificación de la variable se puede hacer con el siguiente PowerShell:
$web = Get-SPWebApplication http://(URL de tu app web)
$web.SuiteBarBrandingElementHtml = “Tu literal/código HTML aquí”
$web.Update()
Para modificar ese literal y poner, por ejemplo, un enlace que retorne a la intranet (estaría bien que Microsoft hubiera puesto esto por defecto en los MySites porque no hay forma de volver al portal principal sin este tipo de retoques) deberemos ejecutar el siguiente PowerShell:
$web = Get-SPWebApplication http://(URL de tu app web)
$web.SuiteBarBrandingElementHtml = “<div class = ‘ms-core-brandingText’ ><a style=’color:white;’  href=’https://ignasitt.es>BACK TO INTRANET</a></div>”
$web.Update()
image
Puesto que suitebar está definida a nivel de aplicación web, así que habiendo realizando una única modificación, aplicará de forma automática a todos los Site Collections (My Sites de cada empleado).
image
En caso de querer retornar al valor original, deberemos volver a modificar el valor de la variable por el que tenía originalmente
image
Y ahora algo curioso: Pensad que el valor de dicha variable almacena código html, y eso significa que con un poco de traza podremos no solo poner textos o enlaces, sino también imágenes u otros componentes. Quizás el caso más curioso que he visto ha sido uno que ha substituido el literal por defecto de la suitebar por un control de breadcrum.
image
Por último, comentar que también se podría modificar con jquery, mediante una sentencia del siguiente estilo:
$('.ms-core-brandingText').text('El texto que quieras aquí');
Cómo modificar la suitebar derecha (“Links”)
Para modificar la suitebar de la derecha que contiene los enlaces que por defecto ha definido Microsoft no lo vamos a tener tan sencillo. No existe ninguna propiedad de PowerShell que permita modificarla (no me preguntéis a mí por qué… yo lo hubiera hecho como su homónima).
Para añadir enlaces en esa zona tendríamos que hacerlo o bien mediante JQuery o bien mediante Visual Studio sobreescribiendo el user control CustomSuiteBar.ascx (para no hacer más largo este post, enlazo directamente con otros posts de otras fuentes que narran todo el proceso).
En caso de querer ocultar enlaces, siempre se puede hacer de forma fácil e indolora mediante estilos CSS, del tipo:
#suiteLinksBox > ul > li:nth-child(1){
display:none;
}
donde “(1)” es el número del enlace que queremos ocultar (empezando por la izquierda).
Pues hasta aquí la sesión de hoy, como veis es mucho más fácil modificar la suitebar de la izquierda que la de la derecha… Pero a esas alturas ya sabemos todos que SharePoint siempre tiene “esas” cosas… ¡¡Un saludo!!

¡¡SUG.CAT arranca fuerte este 2015!!


El pasado sábado 21 de marzo (2015) se celebró en Casa Golferichs el primer evento trimestral de este 2015 del SUG.CAT (grupo de usuarios de SharePoint de Catalunya) del que tuve el privilegio de co-fundar con diversos amigos y compañeros de profesión.

El tema era “Quiero hacer formularios con SharePoint, ¿qué hago?” y tuvimos una asistencia de unas 30 personas aprox. a pesar del día lluvioso con el que la primavera nos obsequió en Barcelona. Todo un éxito para este tipo de eventos, no sabemos si por la calidad de los regalos que sorteamos o por la temática de las ponencias sobre el futuro de los formularios en SharePoint:
  • Formularios con SharePoint y JavaScript (por Rubén Toribio)
  • InfoPath: Despejando las dudas (por Ignasi Tebé y Leonel Abreu)
  • Building SharePoint Forms Solutions with 3rd party solutions (por Nimrod Geva)
DSC_0922
Personalmente fue una jornada muy especial y gratificante (a pesar de todas las incidencias/anécdotas del día) y desde mi blog personal quería agradecer tanto al equipo más dinámico del SUG.CAT (especialmente Edin Kapic, su presidente y principal motor) como a todos los asistentes que decidieron afrontar el mal tiempo pasando la mañana del sábado con nosotros. Confío en que la calidad de las ponencias estuvieran a la altura de vuestras expectativas: Tuvimos un invitado especial que vino expresamente desde Canadá para hablar de 3rd party solutions Forms, Nimrod Geva (y “también” para aprovechar y ver el Barça-Madrid, todo hay que decirlo, Risa ).

También quería aprovechar este post para ir añadiendo los enlaces a las presentaciones de los ponentes a medida que nos vayan llegando. Para acceder a las presentaciones y documentos del evento, pulsa aquí.

Por último comentar que nuestro próximo evento oficial está previsto para Mayo, tras la Microsoft Ignite, y como esperamos tener información “fresca” sobre SharePoint 2016, el evento seguramente irá dedicado a esta temática: Novedades de SharePoint 2016 (¡No os lo perdáis!).

En septiembre también tenemos planificado el SharePoint Saturday donde esperamos recibir multitud de asistentes de toda Europa (y algún speaker seguro que también).

Para todos aquellos que queráis sumaros a nuestro grupo y recibir o compartir conocimientos  sobre SharePoint, os invito también al próximo “first monday” (reuniones del grupo el primer lunes de cada mes). Como el lunes 6 de abril cae en festivo de Semana Santa, esta vez lo hemos aplazado al martes 7 de abril. Nos reuniremos en la antigua fábrica Moritz en Barcelona a las 19:00.

Como veis SUG.CAT empieza con fuerza este año. La comunidad está más fuerte que nunca y con muchas ganas de seguir compartiendo el conocimiento acumulado por todos… ¡¡Y el que está por venir!!
DSC_4469
Un saludo a tod@s desde la ¡¡Comunidad de usuarios de SharePoint de Cataluña!!

(Si quereis ver más fotos del evento del 21 de marzo, os recomiendo visitar esta entrada del blog de Edin Kapic)

sábado, 21 de marzo de 2015

Cómo auto-numerar repeating sections en un formulario InfoPath

En un post anterior vimos cómo hacer para mostrar múltiples datos retornados en una conexión externa de datos desde un propio formulario de InfoPath. El ejemplo que os mostré era mediante Repeating Sections. Hoy vamos a seguir explicando algo más sobre el mismo ejemplo base: ¿Cómo podríamos auto-numerar cada Repeating Section mostrada en el formulario?
Como requerimiento previo, deberíamos tener una Repeating Section cuyos “bindings” estén vinculados a una fuente de datos externa, y tener ya maquetado el diseño de esa parte del formulario, con los campos de dicha fuente ya visibles en él.
A partir de tener ya una Repeating Sectionfuncional, podremos agregar directamente en ella (donde visualmente nos cuadre mejor) un campo de tipo “Calculated Value”.
image
Una vez el valor calculado esté en el formulario, lo seleccionamos y con el botón derecho accedemos a su panel de propiedades. Una vez dentro de dicho panel, pulsaremos sobre el icono de fórmula que encontramos bajo la sección “Data source”.
En la fórmula añadiremos primero la función “concat”, que nos permitirá enlazar diversos strings en un solo campo textual. Como primer valor del “concat” le podemos poner un literal fijo del tipo “Nº ”, “Resultado de búsqueda nº ” o similar. Como segundo valor del concat añadiremos la función “count”, con el siguiente parámetro “(preceding-sibling::*) + 1”. Es
La fórmula resultante debería ser algo similar a lo siguiente:
concat("Nº "; count(preceding-sibling::*) + 1)
Donde “count(preceding-sibling::*) + 1 ) es en concreto la fórmula que nos devuelve el número de Repeating Section a mostrar.
image
Nuestra Repeating Table debería tener ahora un aspecto similar al de la siguiente imagen:
image
De manera que al ejecutar el formulario podamos visualizar la variable que hemos definido correctamente, enumerando correctamente cada Repating Section que retorne la fuente de datos consultada.
image
Y hasta aquí el conjunto de posts temáticos de este mes a cerca de InfoPath. Nos vemos pronto para seguir compartiendo otros campos de experiencia del mundo SharePoint.
¡Un saludo a tod@s!

Cómo mostrar múltiples resultados de una fuente de datos en InfoPath

Al contrario de lo que muchos creen, InfoPath no solo se puede utilizar como formularios de inicio para flujos y entrada de datos, también se puede utilizar para consultar datos de otras fuentes (SharePoint, SAP, JD Edwards, CRM u otras fuentes con Web Services).

Imagino que una vez establecida la conexión mediante la invocación a un Web Services o conexión a un listado de SharePoint todos seríamos capaces de pintar una primera entrada retornada, pero ¿Cómo hacerlo cuando se deben mostrar n elementos?

La respuesta está en el uso de los elementos de repeating (repeating tables o repeating sections). Hoy os mostraré un ejemplo de cómo hacerlo con una Repeating Section.

Como pre-requisito, deberemos haber creado una conexión a una fuente de datos externa para recibir datos. Una vez configurada correctamente esta conexión, crearemos en nuestro formulario una Repeating Section en el lugar donde vayamos a mostrar los datos retornados por la consulta.
image
Una vez tengamos la Repeating Section en nuestro diseñador de formularios, la seleccionamos y pulsamos el botón derecho del ratón para seleccionar la opción “Change Binding…”
image
Aquí deberemos seleccionar primero nuestro “Data source” definido previamente y luego el agrupador de elementos que retorna la respuesta de la invocación (el nodo por debajo de “dataFields”)
image
Al pulsar OK retornaremos a la pantalla principal del diseñador de formularios, pero veremos que al seleccionar la Repeating Section, en el panel de Campos (Fields) a la derecha de la pantalla tenemos como fuente de datos nuestra conexión secundaria, y no la primaria como habitualmente.
image
Llegados a este punto ya solo tendrás que arrastrar los campos hacia la Repeating Section y configurar la visualización a tu gusto (normalmente con la ayuda de alguna “tabla”). En mi caso creé una visualización dentro de la Repeating Section como la que muestra la siguiente imagen:
image
Al publicar y usar el formulario creado, veremos que, efectivamente, muestra múltiples resultados al ejecutar la llamada a la fuente externa de datos:
image
Ahora que sabemos que al viejo Infopath todavía le queda recorrido y que continuará siendo la principal herramienta gratuita de creación de formularios en SharePoint 2016, no está de más compartir algunas de estas funcionalidades quizás más desconocidas.
¡Hasta la próxima!

viernes, 20 de marzo de 2015

Cómo mostrar un mensaje de error cuando InfoPath no retorna datos.

Pongamos el caso que tenemos un formulario InfoPath donde en una determinada vista del formulario queremos realizar una llamada a un Web Services y mostrar todos los resultados retornados por el mismo en el propio formulario. Si todo funciona bien, perfecto, pero… ¿Cómo haríamos para mostrar un mensaje de error en caso de que no retornara ningún dato?
El método que os propongo es el siguiente: Primero creamos una sección por debajo de la que nos tiene que mostrar los resultados de la búsqueda
image
En la sección recién creada añadimos un control de tipo caja de texto, al que le eliminamos los bordes y el color de fondo para hacerlo transparente y que no parezca una caja de texto “donde introducir datos”
image
Una vez hecho esto, seleccionamos de nuevo el campo de texto y vamos a su panel de propiedades, donde escribiremos el texto que querremos mostrar en caso de no recibir ningún dato en la consulta:
image
En el mismo panel de propiedades, en la pestaña de “display” nos aseguraremos de que está marcada la opción de “Read-only” para evitar que nadie pueda escribir nada en la línea de texto a parte del mensaje que le hemos configurado por defecto.
image
En este punto deberíais ver más o menos así el control en vuestro diseñador de formulario:
image
Ahora ya solo nos falta añadir la lógica para mostrarlo solo cuando la consulta no retorne resultados. Para ello seleccionaremos toda la sección que contiene el nuevo control de texto y crearemos la siguiente regla:
Cuando el grupo de campos un nivel por debajo de la sección “dataFields” de la consulta “esté presente”, entonces ocultaremos el control (únicamente se mostrará el mensaje de error si la estructura no está presente)
image
Al aplicar esta regla, el comportamiento debería ser el esperado:
image
Eso es todo por hoy, amig@s, ¡¡Un saludo!!

jueves, 19 de marzo de 2015

Dar permisos a formularios InfoPath que forman parte de un Workflow

Recientemente me encontré la siguiente casuística trabajando para un cliente:
Se creó un Workflow de validación en SharePoint Designer 2013 con formularios personalizados (retocados con InfoPath 2013). Todo funcionaba perfectamente, hasta que las tareas de validación se empezaron a mandar a usuarios ajenos al site que contenía el Workflow. Estos usuarios no tenían permiso de acceso a dicho site, así que cuando les llegaba el mail de validación con el enlace a la tarea les daba un error de acceso al intentar acceder al Infopath de validación/rechazo. La pregunta con la que estuve lidiando un rato y que ha motivado la creación de este post fue: ¿Dónde asigno los permisos de los ficheros infopath (.xsn) que forman un workflow? Sí… podría haber dado permisos en el “site” a los usuarios validadores, pero era requerimiento específico que esos usuarios no tuvieran acceso a la información de dicho site, solo a las tareas de validación.
Algunos podríais pensar que bastaría con ir a la lista de tareas y darles permisos desde allí, pero no es así, porque el problema de permisos no está en el listado de tareas en sí, sino en que Infopaht intenta acceder a su plantilla .xsn (que no está guardada en el propio listado de tareas) y por eso continuará dando error de acceso.
¿Dónde está pues dichas plantillas .xsn creadas? Definitivamente no las vais a encontrar navegando por la interface estándar de SharePoint, no aparece ni en “Contenido del sitio” ni tampoco en el árbol de “contenido y estructura”.
Para acceder a los permisos de dichas plantillas InfoPath, tendremos que usar SharePoint Designer, y una vez tengamos nuestro site abierto, abrir la carpeta de “All Files” y pulsar el botón derecho en la subcarpeta “Workflows”. Aquí seleccionaremos en el menú desplegable la opción de “Propiedades…”
image
En la pantalla de información de la lista “Workflows” (invisible desde SharePoint), pulsar en “Permissions for this list” desde la sección de “Customization”
image
Esto nos abrirá el navegador con una URL del tipo:
http://Site_URL/_layouts/15/user.aspx?obj={34898645-4AF5-40BC-8176-9E27610867F6},doclib&list={34898645-4AF5-40BC-8176-9E27610867F6}
donde podremos gestionar los permisos de los usuarios para los .xsn que participan en los workflows de este site.
image
Como veis, una combinación un tanto extraña, que os puede dar algún que otro quebradero de cabeza… si no sois seguidores de este blog :-p
¡¡Saludos!!