Arquivo da Categoría: Fluxo de traballo do SharePoint

Correo-e Recordatorios tarefa diaria // Looping en SharePoint Workflow Design

I wrote up a detailed article a few weeks ago describing how to create a SharePoint Designer workflow that sends a task reminder email on a daily basis. It’s been publicada na nova SharePoint Revista local. More generally, o artigo amosa como crear unha estrutura de loop en SPD.

O recinto ten unha gran variedade de artigos, incluíndo, entre outras cousas, material moi técnico, interviews and industry news. I recommend you add it to your RSS feed.

Se vostede ten un produto ou servizo para vender, I’d also consider advertising on the site. It’s off to a strong start with several thousand pairs of eyes looking at it already. That’s sure to grow.

Por fin, se está coçando para escribir algo e tiralo diante de un público maior, this is a great time and place to scratch it.

</final>

Rexístrate para o meu blog.

Technorati Tags:

O meu máis recente “En defensa do SharePoint Design” O artigo está dispoñible

Mark Miller sobre a Usuario final SharePoint has posted my latest article about using SharePoint Designer to create great workflow solutions up on his site. Consulte.

Neste artigo, Eu falo sobre o proceso de deseño e, en maior detalle, como configurar un proceso de proba fiable e repetível usando os recursos do SharePoint (Contraer personalizadas, site templates). The article targets End Users, but the approach is good for developers too.

</final>

Rexístrate para o meu blog.

Actividade de fluxo de traballo de rexistro no SharePoint Design

Semana pasada, Eu estaba a traballar como loop e implementar unha máquina de estado usando o SharePoint Deseño e mencionou, como un aparte, que, probablemente vai escribir un blog sobre o rexistro de mellor fluxo de traballo.

Ben, Sanjeev Rajput beat me to it. Bótalle un ollo.

Gardar os datos de rexistro nunha lista personalizada parece superior a utilizar a historia de fluxo de traballo normal:

  • É só unha lista personalizada, así pode export-lo a Excel facilmente.
  • Pode crear exhibicións, filtrar os datos dinamicamente, etc.
  • Non é asunto para a auto-purga comeza coa historia de fluxo de traballo normal.

Existen algúns riscos / desvantaxes:

  • Moitos fluxos de traballo en execución con unha morea de rexistro podería causar moitos datos a seren gardados á lista.
  • Maybe you *do* want automatic purging. You don’t get that feature with this approach (sen codificación).
  • Security is tricky. In order to write to the list, the user must have permission to do so. That means that it’s probably not suitable for any kind of "official" audit since the user could discover the list and edit it. This could be overcome with some custom programming.

</final>

Rexístrate para o meu blog.

The Trouble With Tribbles … errar .. KPIs

This past week I finished off a proof of concept project for a client in Manhattan. While implementing the solution, Corrín a outra lagoa do Moss KPIs (Vexa aquí unha cuestión KPI anterior ea miña solución).

Fondo: We used SharePoint Designer workflow to model a fairly complex multi-month long business process. As it chugged along, it would update some state information in a list. KPIs use this data to do their mojo.

We decided to create a new site each time a new one of these business processes kicks off. Aside from the workflow itself, nestes sitios acollida varias bibliotecas de documentos, use audience targeting and so forth. Just a bunch of stuff to help with collaboration among the internal employees, viaxando funcionarios e socios de empresas que participan do cliente.

Tamén queriamos amosar algúns KPIs que monitorizar a saúde xeral do que o proceso de negocio específico, como a promovida polos datos do estado de fluxo de traballo e visto usando os KPIs.

Finalmente, usan os elementos da lista de KPIs que fan unha conta nunha visión nunha lista na web (en oposición a tirar dende outra fonte de datos, como o Excel ou SQL).

O Problema: Como podes imaxinar, supoñendo que fose para levar a idea básica para adiante nun mundo de produción, we would want a site template. Provision a new site based off a "business process" modelo.

The problem is that you can’t seem to get a functioning KPI that way. When I create a new site based on a template with a KPI List and KPI web part, the new site’s KPI data are broken. The new site’s KPI list points at whatever source you defined when you first saved it as a template.

By way of example:

  • Create a new site and build it to perfection. This site includes the KPI data.
  • Save that as a template.
  • Create a new site and base if off the template.
  • This new site’s KPI list items’ sources point to the site template, not the current site.

The instantiation process does not correct the URL.

I tried to solve this by specifying a relative URL when defining the KPI list item. Con todo, I couldn’t get any variation of that to work.

I always want to pair up these "problem" blog posts with some kind of solution, but in this case I don’t have a good one. The best I can figure is that you need to go in to the newly provisioned site and fix everything manually. The UI makes this even harder because changing the URL of the source list causes a refresh, entón realmente ten que redefinir a cousa toda de cero.

Se alguén sabe un xeito mellor de tratar con isto, por favor publicar un comentario.

</final>

Technorati Tags:

Mea Culpa — SharePoint Deseño * PODE * Crear fluxos de traballo de máquina de estado

I’ve recently learned that it’s possible and even fairly easy to create a state machine workflow using SharePoint Designer. Necessity is the mother of invention and all that good stuff and I had a need this week that looked for an invention. Coincidentally, Me deparei este foro MSDN post tamén. My personal experience this week and that "independent confirmation" lends strength to my conviction. I plan to write about this at greater length with a full blown example, pero aquí é a esencia do que:

  • O enfoque aproveita o feito de que un fluxo de traballo pode cambiar un elemento da lista, thereby triggering a new workflow. I’ve normally considered this to be a nuisance and even blog sobre o uso dos semáforos para tratar con isto.
  • SharePoint permite múltiples fluxos de traballo independentes para ser activo contra un elemento da lista específica.

Para configurar-lo:

  • Proxecto súa máquina de estado (é dicir,, os estados e como os estados de transición dun a outro).
  • Aplicar cada estado como fluxo de traballo separado.
  • Configurar cada un destes fluxos de traballo do Estado para executar en resposta a calquera cambio no elemento da lista.

Cada fluxo de traballo do Estado segue este estándar duro:

  • Tras o arranque, determine whether it should really run by inspecting state information in the "current item". Abort if not.
  • Facer o traballo.
  • Update the "current item" with new state information. This triggers an update to the current item and fires off all the state workflows.

Ademais da vantaxe obvia que se pode crear un fluxo de traballo de máquina de estado declarativa, toda a información que estado é óptimo para KPIs de construción e puntos de vista interesantes.

El ten unha desvantaxe moi substancial — standard workflow history tracking is even more useless than normal 🙂 That’s easily remedied, con todo. Store all of your audit type information in a custom list. That’s probably a good idea even for vanilla sequential workflow, but that’s for another blog post 🙂

I call this a "mea culpa" porque eu teño, por desgraza, said more than once on forums and elsewhere that one must use visual studio to create a state machine workflow. That simply isn’t true.

</final>

Rexístrate para o meu blog.

Technorati Tags:

Empregue semáforos en SharePoint Workflow Deseño para evitar loops infinitos

It’s possible to cause an endless loop in a SharePoint Designer workflow. A common implementation pattern like this causes the problem:

  • Crear un fluxo de traballo e asociarse con unha lista.
  • Indicar que debe comezar en crear novos elementos e actualización dos elementos existentes.
  • Un paso no fluxo de traballo actualiza un campo en "elemento actual".
  • Desde o elemento actual cambiou, o fluxo de traballo comeza de novo.

Para evitar ese loop infinito, implantar un semáforo simple:

  • Engadir unha columna de páxina (de protección á lista / biblioteca, se non está a usar os tipos de contido).
  • Esconde-lo da páxina de edición (fácil de facer unha columna de sitio a través das súas propiedades, non é tan fácil unha columna de lista).
  • No fluxo de traballo, comprobar para ver se o valor da columna semáforo está en branco.
  • Se está en branco, configuralo para un valor non-branco e continúe.
  • Se non está en branco, saír inmediatamente.

Isto pode facer unha solución moi diferenciada, dependendo das necesidades de negocio e así por diante, pero foi un patrón viable cando eu precisaba diso.

</final>

Rexístrate para o meu blog.

Camiño-through: Fix Formación de Funcionarios Modelo bug Unregister Dispoñible Asentos

Como moitas persoas saben, o modelo de formación de funcionarios proporcionada por Microsoft aquí ten un erro que pode reproducir seguindo estes pasos:

  • Crea unha clase cun tamaño máximo de 10 alumnos.
  • Rexistrarse –> Total available seats properly decrements by one. Resultar: 9 asentos dispoñibles.
  • Unregister: –> Bug. Total available seats should increment by one. It does not. Resultar: 9 asentos dispoñibles segundo SharePoint, pero en realidade, ten 10 asentos dispoñibles.

Solución: Usar o SharePoint Deseño para corrixir o fluxo de traballo.

Primeiro, open up the site. The folder list for me looks like this:

imaxe

If we have a look at the "Attendee registration" fluxo de traballo, we see that there is a step labeled "Enforce seating policy". It looks like this:

imaxe

This step in the workflow updates the item by incrementing the "Filled Seats" metadata column on the course. If we pull that up in more detail, Vémolo:

imaxe

Esa é toda a información que precisa para resolver o fluxo de traballo unregistration.

Se virar para o fluxo de traballo unregistration, there is no similar workflow step. Add it as follows:

1: Expand "Attendee unregistration" e abrir a XOML (ver de primeira captura de pantalla, se está perdido).

2: Engadir unha nova variable de fluxo de traballo, "New Filled Seats" of type "Number".

3: Assign a value to "New Filled Seats" como se mostra:

imaxe

4: Reducir os asentos ocupados por 1:

imaxe

5: Actualiza o elemento curso relacionado:

imaxe

6: Make sure all the steps are in the right sequence. Para min, parece que esta:

imaxe

7: Completar o fluxo de traballo para re-construír.

8: Proba.

</final>

Rexístrate para o meu blog.

Technorati Tags: ,

Rumbo Design Patterns SharePoint técnicos: SharePoint Workflow Design + Receptor de eventos = Cocktail de alta potencia

Un dos patróns emerxentes que atopar na elaboración de solucións SharePoint emprega fluxo de traballo do SharePoint Design e un receptor de eventos.

Aquí está un escenario de negocios para colocar-lo no contexto:

  • Eu enviar un documento a unha biblioteca doc.
  • Eu ban fóra do fluxo de traballo multi-paso creado utilizando o SharePoint Design.
  • Nalgún momento, durante ese proceso, fluxo de traballo asigna unha tarefa a alguén (vía recoller datos de usuario ou asignar unha tarefa).
  • We want to use a KPI to track how long that task is awaiting completion. The KPI shows green for tasks that are completed or due more than 3 days from now. It shows yellow if the task is due tomorrow or today. It shows red if the task is past due.
  • Aquí está o kicker: Quero que a data que impulsa que KPI ser festivo-aware.

I can’t calculate a holiday-aware due date in SharePoint Designer workflow very easily. I would have to create a custom action or use a 3rd party tool. Con todo, it’s easy enough to calculate such a date in an event receiver. Merge those two together and we get a pattern like this:

  • Define a hidden yes/no site column on the document library labeled "DoCalcualteDueDate".
  • Arrincar a falsa.
  • No momento axeitado no fluxo de traballo (e.g. just before the "collect data" acción), asignar ese valor como True.
  • Un ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" adoita teito.
  • Cando o fluxo de traballo atribúe DoCalculateDueDate a verdade, o receptor de eventos calcula a data de caducidade de vacacións-aware.
  • Cando o receptor de eventos fai este cálculo, el define a bandeira DoCalculateDueDate a falsa.

A finais, SPD workflow is communicated with an event receiver via the DoCalculateDueDate semaphore and we have holiday-aware due dates that are assigned at the exactly correct moment in the workflow’s life. SharePoint Designer controls when the due date is assigned but the event receiver performs the actual calculation and assignment.

</final>

Rexístrate para o meu blog.

Comportamento observado: Movendo fluxos de traballo SPD nunha colección web

Actualización: I’ve been researching how to embed a SPD workflow into a site definition. Esta cadea foro MSDN ten algunhas informacións interesantes. It’s not conclusive, pero apunta camiño a través da selva.

I’m giving this post a slightly oddball "Observed Behavior" lead since I’m a little leery of drawing conclusions from it. SPD workflows are … temperamental.

A xente está sempre pregunta / pregunta / fretting over moving SPD workflows from one place to another. Hoxe, Seguín estes pasos e fixo estas observacións:

  • Eu creei un fluxo de traballo mediante o SharePoint Designer nun sitio conectado a unha biblioteca de documentos.
  • A biblioteca de documentos asociados xa abrigou varios documentos.
  • Salvei o sitio web como un modelo.
  • Cando eu salvo a web como un modelo, Salvei o contido ben.
  • Eu creei un novo sitio web no mesmo conxunto de sitios usando este modelo.

Neste punto, I tried to run the workflow. It promptly terminated itself with the log message, "Failed on start".

I expected this. I have low expectations when it comes to moving SPD workflows around.

Eu continúe:

  • Inaugurado o sitio no SharePoint Deseño.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • Corre o fluxo de traballo.

Este tempo, funcionou moi ben.

I’ll add that this workflow used the "collect data from user" acción que é unha acción en concepto complexo baixo o capo.

I tentatively conclude that the process of "finishing" the workflow caused SPD to properly associate the SPD workflow with the new document library. I also conclude the XOML and other XML artifacts are reasonably "loose". They are not super tightly coupled to the document library.

O que significa isto? Assuming it’s a reliable and reproducible process, there’s at least one rough method we can use to move them around. I don’t know if this would work if we crossed site collection boundaries or even more drastically, enteiras novas granxas (e.g. dev ao escenario para cutucar).

Se estás lendo isto e inclinado, por favor engada un comentario ou enviar correo-e me your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</final>

Rexístrate para o meu blog.

Rápido e sinxelo: Workflow-só de actualización campo

It’s often useful to store status information in a custom list such as an approval code which should never be directly manipulated by end users. This is a common business scenario. I have been working on a project this year that generates various status and reminder dates via SharePoint Designer workflows that then drive KPIs and generally support time-critical business processes.

Usar un tipo de contido do sitio web / columna para conseguir este efecto.

Crear un tipo de contido coa columna de estado, como se mostra:

imaxe

Note the "Status (a demostración)" campo na parte inferior.

Seguinte, click on the column name to access the column’s properties. Select "Hidden (Non aparecerá en formas)" na sección Configuración da Columna, como se mostra:

imaxe

This removes the field from the standard edit/update forms. Con todo, inda está dispoñible nas vistas, KPIs, o modelo de obxecto e en calquera outro lugar que quere usalo, including SPD workflow.

</final>

Rexístrate para o meu blog.