El poder de la enseñanza en la comunidad de usuarios

Recientemente fui contactado por facebook de manera directa con preguntas técnicas sobre PowerApps, una de las tecnologías clave de la familia de productos Power Platform de Microsoft y Office 365. Después de una serie de preguntas y respuestas mediante correo electrónico se pudo entender mejor el escenario y sobre todo comprender mejor como auxiliar.

Esta es la historia:

En vez de responder en privado y que el conocimiento producto de esta interacción quedara solamente reflejada en tan solo dos bandejas de correo electrónico y en el intelecto de dos personas, se procedió a recomendar el postear la pregunta y escenario en un grupo de usuarios con el fin de beneficiarnos de la experiencia y conocimiento de no nada mas una persona. El concepto de grupo de usuarios es algo común en la industria de las tecnologías de la información en donde mensualmente sus miembros se reúnen en algún lugar para compartir ponencias sobre algún tema de moda o tema crucial. Pertenecer a un grupo de usuarios normalmente no tiene costo y es por puro amor al arte, en aras de aprender y obtener mas conocimiento sobre el tema en cuestión entre personas interesadas. Hoy en día, utilizamos los avances tecnológicos para reunirnos y exponer un tema de manera virtual, tomando con ello ventaja de los beneficios de tener grabadas las sesiones y dejar documentadas las preguntas para su seguimiento futuro.

Volviendo al tema:

Esto fue lo que hicimos con la pregunta sobre PowerApps que decidimos compartir en el grupo de usuarios Comunidad SharePoint Mexico. La Comunidad SharePoint Mexico es un grupo de usuarios que tiene ya muchos anos de existir en la industria en Mexico. Se han organizado symposiums y conferencias presenciales siempre apoyados por Microsoft y entusiastas que de manera voluntaria donan su tiempo y esfuerzo. Hoy en día la mayor parte de nuestra integración es en línea mediante un grupo de Facebook llamado Comunidad SharePoint Mexico, los invito a que se unan.

Una vez mas volviendo al tema:

Se posteo la pregunta en cuestión “pregunta ya filtrada y bien estructurada la necesidad” y varios miembros de la comunidad saltaron al ruedo y apoyaron mediante comentarios. Tengo entendido que hubo miembros que se metieron tanto en el tema que interactuaron fuera de la comunidad hasta que se pudo resolver el problema. La personas con la necesidad publicó dentro de la comunidad la solución en cuestión agradeciendo el apoyo. Sin embargo, esto fue más allá ya que se decidió convocar la creación de un taller virtual llamado PowerApps Workshop Online presentado solo por miembros de la comunidad en temas de introducción y fundamentos sobre esta tecnología creando con ello materal introductorio valioso para cualquier persona interesada en aprender esta tecnología desde cero y no fallar en el intento.

Aquí la grabaciones de las tres sesiones de nuestro PowerApps Workshop Online.

Sesión 1 presentada por Jesus Gil, Data Platform MVP

Sesión 2 presentada por Oscar Soto, Gerente de Proyectos en ActiveTrainer.CL

Sesión 3 presentada por Julio Leyva, Director de Operaciones de IT Prove.

En conclusión, al revisar este material cualquier persona con conocimiento básico de Office 365 podra tomarlo virtualmente y aprender los fundamentos practicos-teoricos de PowerApps gracias a la aportación y generosidad de los miembros de la Comunidad SharePoint Mexico.

Como trabajar con el content approval en una lista personalizada en SharePoint Online mediante un flow de aprbación

En la siguiente imagen vemos un Microsoft Flow que hace uso de la funcionalidad de aprobación sobre elementos de una lista personalizada en SharePoint Online con la función de content approval activado. Para lograr que content approval funcione es necesario incluir el ETag y mediante la acción de Get Item lo podemos lograr.

Gracias las que te adornan!

Flow de aprobacion de elementos de lista con content approval activado

Como hacer ciertos grupos de seguridad los grupos por defecto de un sitio ya existente en SharePoint y SharePoint Online

Por azares del destino he tenido la necesidad de configurar permisos exclusivos en sitios y sub sitios SharePoint con el fin de tener un control más riguroso de los grupos de seguridad SharePoint. Basicamente tenmos a un grupo de dueños de sitio creando grupos de seguridad previamente a la creacion del sitio y asignando personas en el, posteriormente configurar dichos grupos dentro de un sub sitio con permisos exclusivos. Entonces, ¿Cómo hacer estos grupos de seguridad los grupos por defecto de un sitio ya existente?

Bien pues usando la página de sistema http://portal.tuintranet.com/sitios/subsitio/_layouts/permsetup.aspx puedes establecer cuáles son los grupos por defecto de tu sitio. Esto funciona para SharePoint On-Premise y Online.

Dejo esto aquí para referencia futura.

Como publicar mensajes de conversación en un canal de Teams cuando se ha creado o modificado un elemento en SharePoint Online

Bien aquí el escenario, cliente con Office 365 y hace uso excesivo de Microsoft Teams pidió un Issue Tracking en Teams con alertas por correo electrónico cuando nuevos elementos se han creado y/o cerrado.

Claro que se le ofreció crear una lista moderna en SharePoint y embeberla como Tab en el sitio de Teams en cuestión.

Lista moderna embebida como Tab en Teams

Problema es que este cliente no cuenta con el workload de correo electrónico (Exchange) activado en su suscripción, en otras palabras, el servicio de correo electrónico se gestiona on-premise y no en la nube. Entonces nos solicitó que todo correo electrónico sea enviado a través de teams.

La solución propuesta fue utilizar las cadenas de conversación de Microsoft Teams para publicar mensajes de conversación en el canal cuando el Issue es creado o cerrado en SharePoint y que mendiante menciones podamos hacerle saber a los usuarios cuando se les ha asignado o cerrado un ticket.

En este post veremos como lo logramos.

En primer lugar, utilice las siguientes plantillas de Flow para atrapar el evento cuando un nuevo elemento en SharePoint ha sido creado o modificado:

Plantillas de Flow para eventos de lista en SharePoint

En cada uno de estos flows utilicé la acción:

Accion que nos permite publicar un mensaje en una conversacion como Bot de Flow

Esto para permitirnos publicar en la conversación de un canal como un Bot de Flow (y no como un usuario individual). Adicional, hay un par de cosas interesantes que pudimos lograr:

  1. Mediante el tag <at></at> pudimos mencionar a una persona en especifico como parte del mensaje publicado en teams, con esto le llegara su debida notificación a la persona
  2. En el cuerpo del mensaje pudimos usar un tag <a></a> para tener un hipervínculo hacia el elemento de lista.
Accion configurada para publicar un mensaje en una conversacion de teams como un Bot de Flow. Incluye un enlace al elemento y una mencion a una persona

El resultado final

Cómo comenzar con SharePoint Framework, los primeros pasos

El equipo técnico de SharePoint y OneDrive están apostando su futuro en SharePoint Framework. Algunas de las mismas experiencias de administración en Office 365 y SharePoint Online están desarrolladas bajo SharePoint Framework. Las mismas herramientas y cadena de tecnologías abiertas usadas por Microsoft en la construcción de estas experiencias  son las que tenemos disponibles nosotros. Hay futuro aquí.

El próximo sábado 12 de enero a las 8:00 AM PST nuestro amigo Juan Andrés Valenzuela nos estará presentando en línea Cómo comenzar con SharePoint Framework. Los primeros pasos. Te esperamos, estas a tan solo in clic: https://global.gotomeeting.com/join/485858821

El próximo sábado 12 de enero a las 8:00 AM PST nuestro amigo Juan Andrés Valenzuela nos estará presentando en línea Cómo comenzar con SharePoint Framework. Los primeros pasos. Te esperamos, estas a tan solo in clic: https://global.gotomeeting.com/join/485858821

La confianza como un pilar para retener al cliente

La premisa básica

A lo largo de mi carrera profesional he tenido la oportunidad de estar expuesto a situaciones, escenarios y prácticas laborales que he elegido adoptar al grado de que ya son parte vital de mi práctica y ética diaria de trabajo. Yo creo que esto es algo natural y seguro que cualquier persona que lea entiende a que me refiero.

Las personas solo aprenden aquello que eligen aprender

Volviendo al tema, por mencionar tan solo un ejemplo, en el año 2006 aprendí a posicionar los servicios profesionales de la empresa en la que en aquel entonces trabajaba y con el ejemplo de mis estimados colegas aprendí a vender (estimar, planear, balancear cargas de trabajo, escribir propuestas, negociar y cerrar proyectos) sin duda esta habilidad ha sido vital para el progreso de mi carrera profesional en el mundo de la consultoría informática. No lo niego, ha habido tropiezos que también enseñan. A lo largo de los años otras prácticas de trabajo, el ejemplo de colegas y clientes sin duda han influido también, por mencionar; el ejecutar varios proyectos a la vez, capacitar personal, servir de enlace entre cliente y equipo técnico, crear ofertas de servicios, formar equipos y centros de excelencia, entre otras.

¿Quién verdaderamente es el cliente?

En recientes años para ser específico desde el 2013 para acá he sido expuesto a lo mismo mencionado anteriormente solo que en idioma inglés y bajo una cultura distinta a la de mi originen hispano abriendo con ello nuevas posibilidades a la forma de entregar servicios de valor y de alta calidad a mis clientes tomando lo mejor de lo que cada cultura aporta y con ello generando una experiencia de servicio accesible y personal que permite lograr un mejor posicionamiento y retención de la cuenta, inclusive hasta generando nuevas oportunidades aun después.

Una métrica de la excelencia en el servicio es cuando tu cliente renuncia se va a otra empresa y te vuelve a hablar estando en una nueva compañía

En este punto hago una pausa para preguntarle a usted que has leído hasta aquí ¿quién verdaderamente es tu cliente?

Todos somos personas independientemente de la posición y puesto que tengan en la empresa. Por lo tanto las personas que trabajan en la empresa son el cliente.

Volviendo al tema, hoy quiero compartir otra lección más que he aprendido en recientes años y que han ayudado a forjar una relación a largo plazo no nada más con el cliente, sino con las personas que trabajan con al cliente. La lección es la de llevar el control de la experiencia de servicio de soporte mediante un riguroso registro del trabajo realizado permitiéndote documentar los esfuerzos, dar visibilidad del trabajo realizado de manera consistente generando con ello lo más valioso de una relación, la confianza.

En otras palabras:

Acostúmbrate a llevar el registro (semi-detallado, título, descripción, fecha y tiempo) de los tiempos que dedicadas a cada actividad que realizas por cada cliente que manejas, cada lunes o cuando así se establezca envía el famoso timesheet resumiendo el trabajo realizado.

Por ejemplo, esto es lo que mando cada lunes al cliente:

Así se ve el timesheet que mando cada lunes

Toda esta información primeramente la registro en una lista personalizada en SharePoint donde básicamente capturo la información de la actividad realizada. Una breve descripción también es importante de agregar para poder explicar el trabajo cuando sea necesario.

Esta información es almacenada en SharePoint y exportada a excel, posteriormente mediante una tabla pivote puedo visualizar los tiempos por día, semana, mes, año y cliente. Así se ven años de soporte y servicio para un mismo cliente:

Cada semana tomo el correo enviado de la semana anterior y le doy un reply all, cambio el Subject por la semana actual y los valores que cambian en el cuerpo del correo electrónico. Es ya una practica que fui perfeccionando con el tiempo a partir de que fui expuesto a ella desde 2013.

Cuando reflexiono sobre la suerte que he tenido de contar con relaciones de trabajo duraderas he identificado varios pilares que sostienen esta relación. Uno de esos pilares es la transparencia y responsabilidad con los tiempos ya que generar confianza. Favor de indicar en los comentarios si consideras relevante conocer los otros pilares que he identificado a lo largo de los años.

Cuáles son las ventajas de la transparencia y responsabilidad con los tiempos:

  • Saber a qué le dedicaste tiempo en la semana, mes y año
  • Saber argumentar cuando se te cuestione sobre la utilización de tu tiempo
  • Saber identificar tareas rutinarias y reducir el tiempo que estas toma realizarlas (reutilizar solución)
  • Absoluta transparencia y visibilidad con el cliente, por ende responsabilidad de en qué se dedica el tiempo
  • Aprender a ser más disciplinado con la forma de llevar tu trabajo
  • Aprender a ser consistente con actividades rutinarias
  • Instrumentar mecanismos para corregir o monitorear algo cuando sea necesario
  • En ocasiones puedes documentar los pasos de una actividad y generar un procedimiento
  • Desarrollas una mentalidad de responsabilidad para con el cliente/proyecto/empleador

Cuáles son las desventajas de la transparencia y responsabilidad con los tiempos:

  • Se requiere de un poco de tiempo para registrar las horas cuando se terminas una actividad
  • Se requiere de un poco de tiempo para preparar y enviar timesheet
  • Es fácil perder el control de los tiempos cuando no eres consistente en su registro
  • Respondes con algo de incertidumbre cuando se te cuestiona sobre el tiempo trabajado

Resumen

La transparencia y la visibilidad con la que manejas el tiempo en la empresa es lo que permite a las personas conocer lo que estás haciendo y corregir el rumbo si es el caso. Cuando las personas conocen lo que estás haciendo e interactuan contigo también aprenden y actúan en consecuencia, cuando se actúa en conjunto para introducir eficiencias y obtener resultados en la empresa entonces se genera la confianza, una confianza que perdura más allá de los límites de una relación laboral.

Cross posting desde mi blog de LInkedIn – https://www.linkedin.com/pulse/la-confianza-un-pilar-para-retener-al-cliente-haaron-gonzalez/

Editando el campo Created By en una lista en SharePoint Server On-Premises con PowerShell

Solo a los administradores de infraestructura nos pasa quizás, que de pronto terminamos accediendo a la Intranet con una cuenta de administrador en vez de utilizar nuestra cuenta de usuario regular. Sucede que con tantos pendientes y tantas ventanas abiertas a veces perdemos de vista con que usuario estamos firmados y terminando operando nuestras aplicaciones internas o listas SharePoint usando una cuenta que no es la esperada.  Posteriormente en los reportes o en las vistas de datos donde filtramos por Created By = [Me] no vemos la información que esperábamos ver y al revisar te das cuenta que los elementos han sido creados con una identidad distintas, tu identidad de administrador. ¿Les ha pasado?

En este post les quiero compartir el código PowerShell para editar el campo Created By en SharePoint a fin de corregir y asignar el usuario correcto. Después de buscar en internet, de leer un par de foros y copiar algo de código, armarlo y probarlo el resultado fue el siguiente:

$web=get-SPWeb “http://portal.tacosdecabeza.com/sites/IT/devprojects”

$list=$web.Lists["Enhancements"]

$userLogin = "TACOLOCO\haaron.gonzalez"

$user = Get-SPUser -Web $web -Limit ALL | ? {$_.userlogin -eq $userLogin}

$userString = "{0};#{1}" -f $user.ID, $user.UserLogin.Tostring()

$item = $list.GetItemById(4505)

$item["Author"] = $userString

$item["Editor"] = $userString  

$item.UpdateOverwriteVersion()

$web.Update()

$web.dispose()

Obviamente este código necesita ser ejecutado dentro de una consola de SharePoint Management Shell en un servidor de la granja, no todos tienen ese gran lujo, para aquellos que sí, espero les sirva.

Saludos!

 

Referencias

Eliminando sitios con listas que exceden el umbral de elementos en SharePoint Online

Desde hace una semana vengo batallando con eliminar un sitio SharePoint que cuenta con cientos de listas de las cuales muchas de ellas rebasan el umbral de 5000 elementos de almacenamiento. Listas con más de 17000 o 37000 registros por mencionar tan solo un ejemplo. Estas listas fueron migradas de SharePoint On-Premises hacia SharePoint Online usando Sharegate.

Utilicé la opción de Copy Content de Sharegate, simplemente para seleccionar los elementos de una lista y borrarlos permanentemente.

Utilicé la opción de Copy Content de Sharegate, simplemente para seleccionar los elementos de una lista y borrarlos permanentemente.

Después de que el negocio aprobó eliminar estas listas y el sitio que ya no aporta valor para el departamento, primeramente me topé con el problema de que no puedes eliminar sub sitios que tienen listas que exceden el umbral de elementos.

The attempted operation is prohibited because it exceeds the list view threshold enforced by the administrator.

En otras palabras, el intento de eliminar el sitio también está rebasando el umbral ya que la operación de eliminar (un procedimiento almacenado de SQL Server llamado proc_RecycleWeb) revisa que los elementos seleccionados para eliminarse no excedan el límite del umbral. Así que ahora es necesario eliminar los elementos y listas de la papelera de reciclaje primeramente y posteriormente intentar eliminar el sitio.

Una opción es dejar que pasen 30 días para que estos sean eliminados de forma automática por el sistema. En caso de que no queramos esperar tanto y necesitemos eliminar la papelera de reciclaje de forma manual podemos usar el comandlet  Get-PnPRecycleBinItem.

Usando PowerShell instalamos los comandlet de Pattern & Practices para SharePoint Online

Install-Module SharePointPnPPowerShellOnline

Connect-PnPOnline -Url "https://denuestrositio.sharepoint.com/sites/qa"

Clear-PnPRecycleBinItem -Force

Aqui mi ejemplo:

Usando PowerShell instalamos los comandlet de Pattern & Practices para SharePoint Online

Ref: https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/clear-pnprecyclebinitem?view=sharepoint-ps

Resumen de la sesión Manejo de permisos con Microsoft Flow en SharePoint Online

Buen día, como parte de nuestra iniciativa de aprendizaje que tenemos en a Comunidad SharePoint México el pasado 5 de diciembre del 2018 tuvimos una excelente participación en línea por parte de Rodrigo Bermnejo Portals and collaboration practice leader Digital Delivery Center de Neoris  y miembro de la Comunidad SharePoint Mexico.

En esta sesión veremos cómo administrar permisos de SharePoint usando Microsoft Flow un nuevo motor para integración y manejo de servicios en la nube. Esta sesión será presentada por Rodrigo Leaños Bermejo miembro de la Comunidad SharePoint México
  • Microsoft Flow es una herramienta de optimización de procesos dentro de Office 365.
  • Ayuda a integrar diferentes servicios en la nube disponibles en Office 365.
  • Tienen un funcionamiento similar a las otras aplicaciones en Office 365
    • Trabaja bajo el contexto del usuario que está ejecutando la herramienta
    • Maneja dos tipos de eventos
      • Disparadores (hacen que inicie el flujo)
      • Acciones (hacen que se ejecute el flujo)
    • Como se ha venido anunciando, los flujos de SharePoint Designer eventualmente quedaran deprecados
    • Microsoft Flow representa una nueva forma de integrar flujos de trabajo
    • El contexto del escenario de ejemplo es:
      • Microsoft Dynamics es una suscripción Office 365 al momento de integrarlo con SharePoint crea bibliotecas de documentos y los documentos los empieza a clasificar de acuerdo a la entidad de Dynamics
      • Cada que cambia el proceso de venta nueva entidad se genera y con nueva entidad nueva biblioteca de documentos, entonces se busca que las bibliotecas de documentos cuenten con la misma configuración de permisos. En otras palabras, persistir los permisos entre entidades.
      • Se requiere darles privacidad a los documentos albergados en SharePoint y asociados a una oportunidad de venta en Dynamics.

A continuación, Rodrigo explicó el Flow en general:

  • Utilizo la actividad Manually Trigger a Flow para permitir la creación de un botón dentro de una biblioteca a fin de disparar la ejecución del flujo
  • Utilizo la actividad Send an HTTP request to SharePoint y nos explica que para realizar operaciones en SharePoint estas se hacen utilizando una HTTP request y el API REST de SharePoint para en este caso manipular bibliotecas. En este ejemplo vemos que se rompe la herencia de permisos para el documento con ID = 1 en la biblioteca Documents mediante un request de tipo POST.

  • Posteriormente utilizo otro Send an HTTP Request to SharePoint de tipo POST para asignarle permisos a un usuario en particular

  • Y para finalizar utilizó otro Send an HTTP Request to SharePoint de tipo POST para asignarle un rol al usuario en particular. PrincipalID es el ID del usuario y RoleDefID =1073741826 es el tipo de permiso como “Read”,”Edit” o “Full Control” y la tabla a la que se refiere es:
Permissions level  Role ID
Full Control 1073741829
Contribute 1073741827
Read 1073741826

  • Ya después vimos cómo se pudo probar el funcionamiento del flujo. Revisamos los permisos del documento previo a ejecutar el Flow. Flow nos deja hacer una prueba del flujo y nos dice paso a paso el desencadenamiento de cada función.

Así mismo exploramos la integración de Flow con Dynamics. Rodrigo explico las acciones disponibles. Parte del tiempo de la sesión se dedico a preguntas y respuestas por parte de los asistentes en donde entre todos buscábamos resolver y aportar valor ante cualquier cuestionamiento.

Muy recomendable ver la grabación:

 

Resumen de la sesión Desarrollo básico de aplicaciones PowerApps con listas SharePoint Online

Buen día, como parte de nuestra iniciativa de aprendizaje que tenemos en a Comunidad SharePoint México hoy tuvimos una excelente participación en línea por parte de Oscar Soto Casali de la empresa chilena ActiveTrainer.

DESARROLLO BÁSICO DE APLICACIONES POWERAPPS CON LISTAS SHAREPOINT ONLINE

Él nos demostró la implementación una solución empresarial para la gestión de incidentes utilizada por parte de los empleados de un municipio de su localidad utilizando las tecnologías de la oficina moderna que Office 365 como SharePoint, Microsoft Teams, PowerApps.

Vimos lo siguiente:

  • Un enfoque de solución moderno para la gestión de incidentes
  • El uso de PowerApps como gestor de formulario para la asignación de incidentes
  • El uso de PowerApps como un tablero de control para un efectivo seguimiento de incidentes

  • Una explicación detallada de propiedades, formulas y expresiones PowerApps para construir experiencias de tipo maestro detalle, así como también consumir listas de SharePoint como fuente de datos

  • Se platico también de las razones por las cuales PowerApps representa un enfoque de solución para la construcción de aplicaciones modernas y conectadas que fomentan la productividad de los usuarios

Sin más, aquí la presentación: