As tarefas de fluxo de trabalho do SharePoint não esperam para serem executadas
-
10-12-2019 - |
Pergunta
Criei um fluxo de trabalho no Visual Studio que contém um replicador que cria várias tarefas para aprovação.O replicador contém uma atividade de sequência que consiste em createTask
, a while
loop com onTaskChanged
e um completeTask
elementos.
Meu fluxo de trabalho está se comportando de maneira muito estranha.O replicator_Initialized
inicializa corretamente o InstanceData
que é um IList
de strings (ou seja,os aprovadores), o replicator_ChildInitialized
também se comporta como esperado, o createTask_MethodInvoking
na atividade de sequência executa bem e até mesmo o loop isComplete
O método verifica para cada uma das tarefas se elas não foram concluídas.Mas então, o onTaskChanged_Invoked
nunca é chamado e o mesmo vale para completeTask_MethodInvoking
.Em outras palavras, nunca tenho a oportunidade de acessar a lista de tarefas do fluxo de trabalho e aprová-las.O fluxo de trabalho trava e queima depois porque estou tentando fazer referência às tarefas AfterProperties
quais são todos null
claro porque o depois nunca aconteceu.
Alguém encontrou algo semelhante?Como faço para corrigir ou mesmo analisar isso?Por exemplo, não tenho ideia de onde colocar o ponto de interrupção porque parece que o fluxo de trabalho simplesmente pula algumas partes.Obrigado por toda a ajuda, eu realmente aprecio isso.
Solução
Eu resolvi isso.O problema é que defini alguns campos no Workflow1.cs
arquivo que era do tipo SPListItem
, SPList
e SPUser
.Quando as tarefas foram criadas, o fluxo de trabalho travou e pareceu-me que ele simplesmente passou sem criar tarefas ou esperar que elas fossem concluídas.Removendo esses campos específicos do Workflow1.cs
fez tudo funcionar como esperado.
Eu concluí que Workflow1.cs
não tolerará campos que não sejam dos seguintes tipos:
- interno
- bool
- flutuador
- dobro
- corda
- Data hora
Talvez acontecesse se eu adicionasse um campo e o tornasse serializável (ou todo o Workflow1.cs
, não tenho certeza).