Error en ejecución de flujo de trabajo – Sharepoint 2010 – Infopath 2010

Escenario: una biblioteca de formularios con una plantilla de infopath publicada. Un flujo de trabajo creado en SPD 2010 que actualiza varios campos de la biblioteca (set current item field value) y se ejecuta automáticamente cuando se crea un nuevo documento.


El problema: randómicamente durante el proceso de ejecución del flujo de trabajo éste no continua. Al revisar la ejecución del flujo me encuentro con lo siguiente:



Algunos puntos a tomar en cuenta:


- La biblioteca de formularios está configurada para que no requiera que se desprotejan (check-out) los elementos para que se modifiquen.


- El flujo de trabajo tiene como primera tarea esperar por 1 minuto antes de continuar.


- Se ejecutó ya el comando: stsadm -o setproperty -propertyname “job workflow” -propertyvalue “every 1 minutes between 0 and 59″ -url http://sitio, según algunos foros que he podido visitar el colocar una acción de pausa  podría provocar este problema.


- El mensaje de error, de acuerdo al gráfico, es: “Actualmente está bloqueada la edición del elemento. En espera de la protección del elemento o de la liberación del bloqueo”, traducido al inglés: “The item is currently locked for editing. Waiting for item to be checked in or for the lock to be released.“, sin embargo, al momento de guadar el formulario de Infopath exite una acción de cerrar el mismo por lo que se asegura que el elemento no está abierto durante la ejecución del flujo.


Acciones por ejecutar:


De acuerdo a algunos foros que he podido visitar sugieren hacer lo siguiente:


- Revisar que durante la ejecución del flujo de trabajo no se haga referencia a la asignación de valores de campos que hayan sido eliminados.


- Cambiar la acción de “detener el flujo por un minuto” por la acción “Wait for document to be Unlocked by document editor“.



 


 


- Cada vez que se publica un flujo se mantiene una  versión en la biblioteca, se recomienda eliminar todos los flujos y volverlos a publicar.



Voy a proceder con la ejecución de estas recomendaciones y estaré actualizando este post muy pronto con los resultados.


Algunos enlaces importantes / referencia:


http://social.technet.microsoft.com/Forums/en-US/sharepoint2010customization/thread/fc4e1073-d67f-449a-b443-e5805f5358c7/


http://social.msdn.microsoft.com/Forums/ta/sharepoint2010general/thread/36d8d3bb-8d15-4d7c-aa93-7117dfa253a1


http://sharepoint.stackexchange.com/questions/16261/unable-to-update-field-with-sp-designer-2010-workflow


http://www.sharepointed.com/2012/02/23/the-item-is-currently-locked-for-editing-waiting-for-item-to-be-checked-in-or-for-the-lock-to-be-released/

Infopath 2010 al utilizar el método currentview.export pierde el foco del formulario actual

Tengo un formulario simple de InfoPath 2010 con un campo de texto y un botón. El código personalizado que tiene el botón es el siguiente:


 public void CTRL2_5_Clicked(object sender, ClickedEventArgs e)
        {
            // Escriba aquí su código.
           
            try
            {
                generaDocumento();



            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


        public void generaDocumento()
        {
            this.CurrentView.Export(@”C:\temp\prueba.pdf”, ExportFormat.Pdf);
        }


 


Curiosamente cuando hago clic en el botón, el formulario InfoPath pierde foco y se presenta la última ventana que se visitó antes de ejecutar el formulario. Para solucionar de alguna forma este problema hice el siguiente cambio:


 public void CTRL2_5_Clicked(object sender, ClickedEventArgs e)
        {
            // Escriba aquí su código.
           
            try
            {
                generaDocumento();
                MessageBox.Show(“documento generado”);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


Agregué una línea de código para que se presente un cuadro de mensaje y el foco se mantuvo, claro que el cuadro del mensaje jamás se presentó. Intenté crear un nuevo hilo de ejecución (Thread) sin éxito, es más, con esta opción dejó de funcionar. No se si InfoPath tiene soporte para ejecución de hilos.


De todas formas les dejo este post y esperando sus comentarios.

Modificación del campo "Creado por" de una lista de Sharepoint 2010

Por defecto el campo “Creado por”, al igual que algunos otros dentro de una lista de SharePoint 2010, no pueden ser modificados por medio de una interfaz gráfica por defecto de SharePoint o un workflow, sin embargo, por medio de Powershell es posible hacerlo ejecutando algunos comandos.


Comparto con ustedes esta secuencia de comandos que funcionaron para mi en SharePoint 2010 con una lista llamada “Gestión Documental” y un campo secuencial “Código del documento” que sirve como identificador adicional de cada documento.


Las líneas “Read-Host” solicitan al usuario que ejecuta el script que ingrese el código del documento a modificar y el usuario con el cual se va a actualizar.


$Codigo = Read-Host “Ingrese el código del documento”
$Usuario = Read-Host “Ingrese el nombre del propietario”
$Web = Get-SPWeb http://sitiosharepoint
$List = $Web.Lists[“Gestión Documental”]
$items = $List.Items


Foreach($item in $items)
{
if($item[“Código del documento”] -eq $Codigo)
{
$item[“Creado por”]=$usuario
$item[“UsuarioCambios”]=”dominio\nombre_usuario”
$item.Update()
}
}


El formato del usuario debe ser ingresado como: ID;#nombre_usuario. Para obtener esta información el usuario debe estar registrado en SharePoint. Se puede obtener esta información con la siguiente secuencia de comandos:


$web=Get-SPWeb http://sitiosharepoint
$user=$web.SiteUsers[“dominio\nombre_usuario”]
$user.id
42


En el caso de actualizaciones masivas es posible utilizar sentencias o consultas CAML para poder filtrar la cantidad de registros a retornar, por ejemplo (Extraído del sitio http://get-spscripts.com/2010/09/get-all-column-values-from-sharepoint.html):


#Check if the item is a file or list item and run a different query accordingly
    if ($list.BaseType -eq “DocumentLibrary”) {
        $queryString = “<Where><Eq><FieldRef Name=’FileLeafRef’ /><Value Type=’File’>” + $ItemName + “</Value></Eq></Where>”
    }
    else
    {
        $queryString = “<Where><Eq><FieldRef Name=’Title’ /><Value Type=’Text’>” + $ItemName + “</Value></Eq></Where>”
    }


    #Create the CAML query to find the item
    $query = New-Object Microsoft.SharePoint.SPQuery
    $query.Query = $queryString
    $item = $list.GetItems($query)[0]


Para poder construir las consultas CAML utilizando la herramienta “U2U CAML Query Builder” que se lo puede descargar de http://www.u2u.net/Tools/wincamlquerybuilder/CamlQueryBuilder.aspx


Algunos enlaces adicionales que les pueden servir:


- http://sharepointrelated.com/2012/05/03/addedit-list-items-using-powershell-in-sharepoint-2010/


- http://davidlozzi.com/2012/02/14/playing-with-sharepoint-data-in-powershell/

Ciclo de conocimiento – Gerencia de Proyectos – Sesión 4: Solución final de Project Server 2010 sobre Sharepoint Server 2010.

Luego de ejecutar un proceso de personalización de Project Web Application y SharePoint Server 2010, se presenta un sitio completamente desarrollado acorde al proceso de gestión de proyectos de una organización. Se incluyen componentes de Inteligencia de Negocios, Workflow de Gestión de Proyectos y algunos componentes funcionales adicionales.


https://www.livemeeting.com/cc/8000181573/view?id=CCGEDEPRP4


Por este medio agradezco enormemente a la comunidad IT Pros DC (Bogotá – Colombia), y a sus líderes, por permitirme compartir con ellos estas cuatro sesiones del ciclo de conocimiento, por cierto está aún pendiente el evento presencial. Ahora mismo estamos preparando un Nuevo ciclo de conocimiento sobre  SharePoint 2010 en la nube y una primera revision de SharePoint Server 2013 Preview.

Sharepoint Server 2013 – Project Server 2013 – Office 2013 / Preview: Resumen de Recursos

Sin duda el día de hoy, 16 de Julio de 2012, ha sido uno de los días más esperados no solo para mi sino para millones de IT Pros y Developers. Durante las últimas 3 horas, aproximadamente, se ha liberado una gran cantidad de información sobre las versions 2013 Preview de multiples productos Microsoft, entre ellos: SharePoint Foundation / Server, Project Pro / Server / Online, Office, Lync y Exchange (espero no olvidar ninguno).


Creí importante hacer un resumen de algunos enlaces importantes con información y descargas de productos.



 SITIO PRINCIPAL DE DESCARGAS: este sitio presenta un resumen de todas las versiones “on-premise” y en línea (Office 365 Enterprise Preview y Project Server Online) liberadas el día de hoy.


http://www.microsoft.com/office/preview/en/try-more-products


Sitio principal de Office Preview: http://www.microsoft.com/office/preview/en


 


 


 



Personalmente, uno de los productos más esperados por todo lo que su versión previa (SharePoint Server 2010) presentó y ofreció, SHAREPOINT SERVER 2013 PREVIEW.


El enlace para descargar directamente la versión Preview de SharePoint Server 2013: http://technet.microsoft.com/en-US/evalcenter/hh973397.aspx?wt.mc_id=TEC_121_1_33


Entrenamiento técnico para IT Pros: http://technet.microsoft.com/en-US/sharepoint/fp123606


SharePoint Server 2013 en resumen (PPTs): http://www.microsoft.com/en-us/download/details.aspx?id=30361


Configuración de un laboratorio de prueba de SharePoint Server 2013: http://www.microsoft.com/en-us/download/details.aspx?id=30386


SharePoint Designer 2013: http://www.microsoft.com/en-us/download/details.aspx?id=30346



PROJECT SERVER 2013 PREVIEW: sin duda conocemos las bondades y ventajas de esta complete solución de EPM y su contraparte en escritorio Project Professional.


Sitio de descarga directo: http://technet.microsoft.com/en-US/evalcenter/hh973403.aspx?wt.mc_id=TEC_120_1_33


Project Professional 2013 Preview: http://technet.microsoft.com/en-US/evalcenter/hh973401


 


 


 


 


Sin embargo, el mayor “atractivo” por decirlo así de esta nueva versión es que ya se encuentra disponible como un servicio on-line: http://www.microsoft.com/project/en-us/preview/project-benefits.aspx


Sharepoint 2010 + Infopath 2010: Como asegurarnos de que una carpeta existe antes de exportar a PDF una vista actual.

En esta serie de posts en relación a InfoPath 2010, tuve que incluir una porción de código para asegurarme de que la carpeta en la cual se van a almacenar los documentos PDF exportados exista. Es necesario agregar una referencia using System.IO; y luego incluir el siguiente código.


 if(!Directory.Exists(@”c:\temp”))
{
Directory.CreateDirectory(@”C:\temp”);
}