Eu teño un escenario de negocios coma este:
- Un usuario carga un documento a unha biblioteca de documentos.
- Ela selecciona un tipo de contidos e entra meta datos polo que sexa. Un dos campos de datos de meta é unha bandeira, "Urgent".
- Isto desencadea un fluxo de traballo do SharePoint Design que, entre outras cousas, uses the "Collect Data from a User" acción.
"Collect Data from a User" crea un elemento nunha lista solicitando a aprobación tarefa para aquel documento.
Eu precisaba crear unha visualización da lista de tarefas que amosa as solicitudes urxentes de aprobación.
Solución: Put the word "URGENT:" into the title of these tasks.
I would have preferred to specify the priority field directly. Con todo, Eu era capaz de facelo por varias razóns:
- A recollida de datos acción non ofrece un mecanismo para actualizar calquera outro campo de título (e os campos adicionais para o que quere recadar datos).
- The "assign a to do item" acción ten o mesmo problema.
- É posible inserir un elemento nunha lista (i.e. introducir un elemento da lista de tarefas directamente) but this not a blocking action. That means that the workflow will not wait for the user to complete that task.
Considerei algunhas enfoques antes (agradecidamente) realizing we could just put "urgent" no título.
- Iniciar un fluxo de traballo na lista de tarefas a si mesmo de xeito que, cando unha nova tarefa créase, que dalgún xeito cruzar referencias ao seu documento, que comezou o primeiro fluxo de traballo, pull out the urgent flag value and update priority as needed.
- Do something similar with an event receiver. On create of the task, atopar o documento asociado e actualizar prioridade que corresponda.
- Use the "create list item" action in conjunction with the "wait for field change" action and an event receiver. If we create a list item, we can specify all the fields we want. Use an event receiver to update the original item when the user completes the task and the "wait for field change" action’s condition would be met and the workflow would proceed. (Por algunha razón, Eu tiña máis ou menos resolto sobre esta visión antes sabios decide afastarse por un tempo).
Hai unha desvantaxe para a miña solución (ademais do feito evidente de que o texto do título indica urxencia). Since "collect feedback" só acepta nomes de título codificado, I need to use two different collect feedback actions whose only difference is that hard coded title.
Pero, polo menos hai unha solución que non require receptores de eventos ou accións SPD personalizados.
Se alguén xa resolveu isto dun xeito máis intelixente, por favor me aviso.
</final>