SharePoint Latin Rotating Header Image

InfoPath

Ya instalé SharePoint ¿Y ahora qué? en Video

Hace muchos años di una plática llamada Ya Instale SharePoint ¿y ahora qué? En donde pude mostrar algunas de las características del producto Microsoft Office SharePoint Server 2007 mediante ejemplos y demostraciones graficas ilustrando como podríamos hacer uso de las funcionalidades. Si por alguna razón del destino aun te encuentras dando soporte a plataformas WSS 3.0 o MOSS 2007, este webcast sin duda te será de utilidad ya que se muestra ejemplos de:


  • InfoPath Form Services
  • Content Types
  • Business Data Catalog
  • Workflows
  • Excel Services

Espero que si por alguna razón vez este video lo encuentres útil en estos tiempos.


Y si funciona ¿qué?

Durante una reunión se me pidió mi opinión sobre la factibilidad de automatizar un proceso que actualmente se lleva en papel y su ejecución es literalmente a mano por un proceso electrónico y digital utilizando a SharePoint como la plataforma para lograrlo y ciertamente podríamos decir que en SharePoint se tienen las características necesarias para hacer frente con éxito a un escenarios de captura electrónica de datos y gestión de aprobaciones mediante flujos de trabajo. Sin embargo antes de emitir mi recomendación hice las siguientes preguntas:

  • Cuál sería la meta de este esfuerzo y podríamos enlistar algunos objetivos
  • Aproximadamente ¿cuantas personas estaríamos tocando con la automatización de este proceso?
  • En cuanto a tiempo se refiere, la duración de una instancia del proceso es de ¿cuánto tiempo?
  • El volumen de solicitudes y aprobaciones que se dan por cada instancia del proceso en promedio al mes ¿es de?

Después de escuchar las respuestas y de entender un poco más el contexto de este cliente “el cual busca posicionar a SharePoint para buscan financiamiento” procedí a comentar mi punto de vista el cual describo a continuación:

Estoy seguro que SharePoint puede soportar a gran escala una solución como la que están buscando con la infraestructura y procedimientos adecuados sin embargo, ¿podría el negocio soportarlo también? Mejorar un proceso que actualmente se lleva a mano por uno electrónico o digital requiere mucho más que una infraestructura de servidores, requiere del soporte y compromiso del negocio por las siguientes razones:

  • Necesitaras definir si las autorizaciones que actualmente se llevan en papel y son la causa de la lentitud del proceso se transformaran a autorizaciones digitales las cuales reducirán el tiempo de la gestión. ¿Podrá el negocio darle validez a la autorización digital o electrónica?
  • Una vez reconociendo la autorización digital entonces el resguardo de los registros electrónicos también deberá ser gestionado por la política actual de retención de la información la cual hoy se lleva en papel y cuenta con todo un departamento de archivo. ¿Podría el negocio darle validez legal por así decirlo a los registros electrónicos producidos por el proceso? ¿Cómo entonces podríamos describir una auditoria?
  • De pronto en menos de seis meses podrás identificar la reducción del uso de impresoras y papel, ¿se tienen contratos celebrados con proveedores tanto de soporte técnico y/o fabricantes que se tengan que revisar?
  • Qué pasaría si al ver el impacto y valor de la automatización de un proceso manual a un proceso digital resulta en una demanda mayor por parte del usuario final en la automatización de otros procesos. ¿Estamos listos para soportar una demanda mayor de trabajo? ¿tenemos en claro cómo podríamos evolucionar de forma gradual de un negocio basado en papel a un negocio basado en formas electrónicas?
  • ¿Cuáles serían otros procesos candidatos que por orden natural pudiera seguir a este esfuerzo?

En resumen hay que preguntarnos qué pasara si sale mal pero también que pasara si sale bien la iniciativa. No es que sea un aguafiestas pero para poder hacer un enfoque de solución integral al problema y las expectativas de negocio hay que preguntar ¿Y qué pasaría si es exitoso el proyecto?

Configurando un Servicio de Certificados en Windows Server 2012 para ambiente SharePoint

Continuando con la configuración del ambiente piloto de demostración que estoy construyendo, un nuevo video se ha publicado bajo el nombre de “Configurando un Servicio de Certificados en Windows Sever 2012 para ambiente SharePoint“. Este video habla de cómo configurar un servicio de certificados “Certificate Authority” en Windows Server 2012 para soportar firma electrónica dentro de la empresa mediante Office y claro SharePoint. La descripción del video dice: “En esta demostración vemos como configurar el servicio de certificados digitales de Windows Server 2012 para permitirnos generar certificados para nuestros servidores WFE de SharePoint que más adelante estaremos configurando. También se muestra como configurar el servicio y configurar la aplicación web de enrollment y generación de certificados”. Espero que sea de utilidad y brinde un norte en el tema.


 


Así mismo dejo unas referencias un tanto pasadas (que siguen siendo vigentes) sobre cómo utilizar los certificados en un entorno SharePoint:



 

Reseña de El Día del Flujo de Trabajo de SharePoint 2010 para Desarrolladores

El pasado miércoles 15 de diciembre del presente año Misael Monterroca, Haaron Gonzalez, Gerardo Reyes y Fabian Imaz estuvimos celebrando el día del flujo de trabajo SharePoint 2010 para desarrolladores mediante presentaciones abiertas en línea de forma continua durante el transcurso del día que hoy ponemos a disposicion.

Gracias a los expositores y asistentes!

NOTA: Para ver la sesion en linea, solo da clic en la imagen.

Conociendo los Flujos de Trabajo Pre Construidos en SharePoint 2010
PDF
Conociendo los Flujos de Trabajo Pre Construidos en SharePoint 2010
En esta sesión conoceremos la propuesta de flujos de trabajo que SharePoint 2010 pone en la mesa y las características de cada uno de los flujos de trabajo pre construidos en el producto. Cuando y donde genera valor utilizarlo para automatizar algún proceso u operación empresarial y mejor aún cómo es posible extenderlos para personalizar algún proceso.

15 de Diciembre 2010 a las 10:00 AM Tiempo de México – Ver aqui
Construyendo Flujos de Trabajo en SharePoint 2010 utilizando SharePoint Designer 2010
PDF | Ejemplo
Construyendo Flujos de Trabajo en SharePoint 2010 utilizando SharePoint Designer 2010
En esta sesión veremos el soporte que SharePoint Designer 2010 tiene para la creación y manipulación de flujos de trabajo para SharePoint. Conozca el nuevo diseñador de flujos de trabajo, las actividades y condiciones disponibles en esta versión y como programar tus propias condiciones y acciones para SharePoint Designer 2010.

15 de Diciembre 2010 a las 11:30 AM Tiempo de México – Ver aqui
Construyendo Flujos de Trabajo en SharePoint 2010 utilizando Visio Services Construyendo Flujos de Trabajo en SharePoint 2010 utilizando Visio Services
En esta sesión veremos el valor que Visio Services aporta al mundo de los flujos de trabajo. Al fin contamos con una alternativa mucho más rica para poder mostrar de forma gráfica el estado de los flujos en ejecución y brindar opciones al usuario para consultar información contextual de una instancia en ejecución del flujo de trabajo.

15 de Diciembre 2010 a las 3:00 PM Tiempo de México – Ver aqui
Construyendo Flujos de Trabajo en SharePoint 2010 utilizando Visual Studio 2010
PDF | Ejemplo
Construyendo Flujos de Trabajo en SharePoint 2010 utilizando Visual Studio 2010
Esta es una sesión para desarrolladores .NET que construyen flujos de trabajo para SharePoint 2007 y buscan conocer cómo construir flujos de trabajo en SharePoint 2010. Exploraremos las nuevas características relacionadas con flujos dentro de SharePoint 2010 y el soporte simplificado Visual Studio 2010 aporta para facilitar su construcción y despliegue.

15 de Diciembre 2010 a las 4:30 PM Tiempo de México – Ver aqui

Siguebois

InfoPath Form Services en ambiente SharePoint con NLB (Network Load Balancing) configurado

GenericSHAREPOINTfarm2_smUn buen amigo me preguntó como le voy a hacer para realizar el despliegue de una solución InfoPath Form Services en un ambiente SharPoint con  NLB (Network Load Balancing) configurado, esto se debe a que el formulario InfoPath cuenta con conexiones a fuentes de datos externas y cuando utilizamos NLB se configura un IP virtual asociado al FQDN que determinara hacia que WFE se direcciona la petición  con base en las reglas de balanceo y en la demanda.

Y bueno la respuesta es agregar en el archivo Host el IP local de cada WFE apuntando al mismo FQDN de tal manera cuando InfoPath hace una petición al recurso externo mediante un DNS apuntando a un IP virtual, este es transferido al WFE a través del NLB usando el mismo FQDN sin embargo por contar con el IP local asociado al FQDN en el archivos Host, quien responde es el mismo WFE donde llego la petición.

Después de la respuesta citada, este mismo buen amigo ahora comentó que hay que buscar otra solución mas elegante para  no editar manualmente el archivo Host de cada WFE.

Estos amigitos!

Smile

Como deshabilitar el uso predeterminado de marca de InfoPath Form Services

Seguro lo has visto y hasta tus usuarios te han preguntado por qué razón en los formularios electrónicos se cuenta con el logotipo de InfoPath Form Services. Yo me pregunto cuál fue el argumento del equipo de producto de Microsoft para dejar habilitada esta opción de manera automática.  

image
La realidad es que posiblemente este sería un buen lugar para colocar nuestro logotipo de empresa, sin embargo, no se cuenta con ninguna opción disponible o soportada para modificar este logotipo. Incluso cuando contamos con un control para subir un archivos se tiene la misma imagen de InfoPath Form Serivces.

Si quieres deshabilitar estas imágenes puedes utilizar la siguiente instrucción:

stsadm -o setformsserviceproperty -pn AllowBranding -pv false


Y el resultado es que se deshabilita el uso de la imagen de marca de InfoPath Form Services en nuestra barra de opciones.

image
Así como también en la ventana para adjuntar archivos y algunas otras mas.
 

image

Para mas informacion sobre los comandos disponibles para manipulación de Form Services puedes ver aquí:  http://blogs.msdn.com/b/michael_yeager/archive/2008/12/01/using-stsadm-to-set-form-services-properties.aspx

Compatibilidad hacia atras de InfoPath 2010 con InfoPath 2007 e InfoPath 2003

imageJusto con un alto nivel de presión antes de iniciar una reunión gracias al consejo del don Miguel Ángel Moran conocido como @SrBichi pude experimentar el soporte hacia atrás de InfoPath 2010 con InfoPath 2007 respecto al despliegue de plantillas administradas.

A diferencia de SharePoint Designer 2010 la historia de compatibilidad hacia atrás de otros productos de la familia office esta muchas más completa. Sucede que SharePoint Designer 2007 y 2010 son productos sin costo y por tal motivo el argumento de Microsoft es que prefieren invertir en nueva funcionalidad que soportar compatibilidad hacia atrás. Afortunadamente este argumento no aplica en los otros paquetes de la familia de Office.

Tenía que hacer el despliegue de una plantilla administrada de formulario InfoPath 2007 con soporte  Form Services sobre un ambiente Office SharePoint Server 2007 Enterprise Edition y no contábamos con ningún equipo con InfoPath 2007. Dada la urgencia, la sugerencia de @SrBichi fue hacer el despliegue utilizando InfoPath 2010 y así fue. Incluso el equipo donde estaba instalado InfoPath 2010 era un Windows 7 y al compilar la plantilla administrada debido a que contaba con código asociado el VSTA lanzaba errores respecto a la ausencia de dos archivos .dll que no estaban en el equipo, seguramente imaginaras cuales archivos son “microsoft.sharepoint.dll” y “microsoft.office.workflow.task.dll”. Procedí a copiarlos desde el servidor SharePoint y evidentemente no pudimos meterlos al GAC sino más bien hicimos la referencia dentro de VSTA y la compilación y publicación se logró exitosamente.

La demostración y presentación final con el cliente también se logró satisfactoriamente y no tuvimos un solo problema por haber implementado con InfoPath 2010.

Aqui un extracto de la ayuda de Office respecto a la compatibilidad de InfoPath 2010 con InfoPath 2007.

InfoPath 2007 Form Templates

The forms in this category are identical to the blank templates that are included in the Popular Form Templates category, except that they are InfoPath 2007 compatible and lack some of the advanced features of InfoPath 2010. Many of your users may not have upgraded to the 2010 releases of SharePoint or the InfoPath client. If you prefer to start with a blank form template, and know that you must target previous releases of Office, then the InfoPath 2007 form templates will serve as a convenient short-cut for ensuring you are in the correct mode.

Note    InfoPath 2010 also allows you to design forms that are compatible with InfoPath 2003.

Remote Desktop Connection vs Virtual PC 2007 en proyecto InfoPath 2007

Recientemente en mi ambiente de desarrollo sucedió un comportamiento extraño que definitivamente hacia que mi experiencia fuese un tanto limitada. Resulta que al trabajar con InfoPath 2007 dentro de una máquina virtual la funcionalidad de copiar y pegar no trabaja bien en modo de diseño, en ocasiones si funciona y en otras no. Dentro de InfoPath 2007 al hacer Ctrl – X y después dentro de otra celda de una tabla hacer Ctrl – Y pues si me cortaba los controles mas no los pegaba de regreso y el Ctrl – Z de nuevo rehacía los controles en su posición anterior.

Confieso que hasta el momento no del todo sé que fue lo que paso realmente, pero una alternativa de solución es conectarme desde mi equipo huésped o algún otro vía remote desktop connection y listo, todo funciona como se espera que funcione.

Asumo que es un tema relacionado con el direccionamiento de la memoria RAM cuando usamos el portapapeles dentro de una máquina virtual.

Llenado programatico de tablas repetibles en formularios InfoPath Form Services

Aquí una técnica que resulta interesante cuando trabajamos con formularios InfoPath Form Services de SharePoint Server 2007. Resulta que cuando usamos InfoPath 2007 combinado con Forms Services perdemos un tanto de funcionalidad como controles, opciones de filtrado y de conexión a datos externos es por ello que en ocasiones debemos de utilizar alternativas un tanto artesanal para simular el comportamiento esperado. Hoy quiero compartir una alternativa para poder presentar un listado de cuadros de verificación para permitir al usuario seleccionar más de una opción dentro de sus formularios InfoPath Form Services.

Una lista repetible en InfoPath es una especie de tabla de información vinculada a alguna fuente de datos que permite mostrar un arreglo de renglones con columnas y con sus correspondientes controles para el llenado o captura tabular, esta lista ya incluye la funcionalidad para agregar o eliminar renglones de forma automática. Bajo este contexto, el de mostrar una lista de cuadros de verificación para multi selección usaremos una lista para mostrar en una columna el  cuadro de verificación y en la otra su descripción, deshabilitaremos las opciones de edición de la lista para crear un efecto de despliegue.

image

Tomamos la lita repetible y la arrastramos sobre nuestro formulario, al hacerlo nos solicita que seleccionemos de cuantas columnas  requerimos la lista y seleccionamos dos.

image

El resultado es una lista repetible de forma tabular. Analisemos el esquema que InfoPath ha generado para representar esta lista con la finalidad de apreciar los nombres de los campos que estaremos utilizando en este ejemplo. group2 es un campo de tipo Grupo con la capacidad de auto repetir su contenido que en este caso son los campos field1 y field2

image

A continuacion dentro de nuestro fomulario transformamos a feld1 en cuadro de verificacion.

image

Realizamos el mismo procedimiento para la siguiente columna field2 solo que la cambiaremos a cuadro de expresion. Tambien podemos jugar con las propiedades de la lista repetible para esconder el encabezado y eliminar los bordes para generar el efecto deseado. Esto lo hacemos seleccionando las propiedades del objeto y accediendo a la pestaña de Display para deshabilitar la opcon de incluir el encabezado o Include Header. Asi mismo dentro de la pestaña Data deshabilitamos las opciones por defecto Default Settings y la de mostrar botón de inserción. Esto nos quita la opción de agregar soporte para agregar, modificar y eliminar elementos de forma automática..

image

Ya tenemos la estructura lista para poder codificar y cargar sobre ella una lista de datos que puede provenir de cualquier otra fuente de información.
A continuación desde InfoPath cargamos Visual Studio for Applications seleccionando del menú de herramientas la opción de programación y evento de carga.

image

No olvidemos primeramente guardar nuestro formulario y configurar un par de opciones dentro de la configuración de formulario o Form Options. En primer lugar dentro de Security and Trust especificamos nuestro formulario como Full Trust, esto se debe a que estaremos ejecutando código.

image

Y dentro de la sección programming seleccionemos que lenguaje de programación deseamos usar y en que carpeta guardaremos el código.

image 

Ya dentro de Visual Studio for Applications tenemos el código correspondiente al evento de carga del formulario. Es aquí donde puedes conectarte a otra fuente de datos ya sea de forma programática o directamente desde InfoPath.

De momento haremos el llenado manual de la lista repetible mediante el siguiente código de programación.

private const string STR_XPATH_Grupo = "/my:myFields/my:group1/my:group2";
        private const string STR_XPATH_Nodo = "/my:myFields/my:group1/my:group2/my:field2";
      
        private void CargaLista()
        {     
            // creamos una instancia de nuestro esquema principal
            XPathNavigator DOM = MainDataSource.CreateNavigator();

            // obtenemos una referencia del nodo repetible 
            XPathNavigator tableItem = DOM.SelectSingleNode(STR_XPATH_Grupo, this.NamespaceManager);
            XPathNavigator tableItemNode = null;
            
            // clonamos un elemento y lo asignamos a otra variable
            tableItemNode = tableItem.Clone();

            // obtenemos la ruta de donde estaremos actualizando la informacion dentro del elemento clonado          
            XPathNavigator target = tableItemNode.SelectSingleNode(STR_XPATH_Nodo, this.NamespaceManager);

            // establecemos la informacion a desplegar dentro del elemento clonado
            target.SetValue("hola");

            // insertamos el elemento clonado en la lista repetible
            tableItem.InsertAfter(tableItemNode);

            target = null;
            tableItemNode = null;


        }


 


El resultado:.



image



 



A continuación dejo una rutina un poco más elaborada donde se muestra como cargar una lista repetible que proviene de una fuente de datos externa configurada dentro de InfoPath.



  • En dataSource enviamos el nombre de nuestra conexión a otra fuente de datos configurada en InfoPath.
  • En tableRow enviamos la ruta XPath que apunta a grupo repetible de una lista repetible.
  • En fieldName especificamos el nombre del campo que deseamos mostrar en la descripción de la lista repetible.
  • En targetXPath especificamos la ruta XPath del nodo descripción de nuestra lista repetible.


 private void LoadSPListToRepeatingTable(string dataSource, string tableRow, string fieldName, string targetXPath)
        {       


            XPathNodeIterator list = DataSources[dataSource].CreateNavigator().Select("/xml/rs:data/z:row", this.NamespaceManager);
            XPathNavigator DOM = MainDataSource.CreateNavigator();
            XPathNavigator tableItem = DOM.SelectSingleNode(tableRow, this.NamespaceManager);
            XPathNavigator tableItemNode = null;
          

            foreach (XPathNavigator listItem in list)
            {

                if (tableItem != null)
                    tableItemNode = tableItem.Clone();


                string value = listItem.SelectSingleNode(fieldName, NamespaceManager).Value;
                XPathNavigator target = tableItemNode.SelectSingleNode(targetXPath, this.NamespaceManager);
                target.SetValue(value);
                tableItem.InsertAfter(tableItemNode);

                target = null;
                tableItemNode = null;


            }
            tableItem.DeleteSelf();
            tableItem = null;
            DOM = null;

        }


 



La invocación de esta rutina es:



           LoadSPListToRepeatingTable("Areas", "/my:myFields/my:Inicio/my:areas/my:areaRow", "@ows_LinkTitle", "/my:myFields/my:Inicio/my:areas/my:areaRow/my:areaDescripcion");



 



EL resultado seria algo asi:



image

Ya instalé SharePoint ¿y ahora qué?

20080712-pensar_mono El año pasado tuve la oportunidad de grabar una sesión especial para la iniciativa CILCLO DE CONOCIMIENTO SHAREPOINT de Colombia y hoy quiero compartir en mi blog la plática “Ya instalé SharePoint ¿y ahora qué?” donde describo las funcionalidades de la plataforma SharePoint desde el punto de vista tomador de decisiones.

Si andas buscando que tiene SharePoint para tu organización este es un webcast donde pueden empezar a
ver que hay en la plataforma.