Como criar um processo no ECM a partir do Microsiga Protheus
A criação de processo no ECM pode ser realizado através da própria ferramenta, aqui descrevemos como fazer isto a partir de uma personalização no Microsiga Protheus.
Para criar um processo a partir do Microsiga Protheus pode-se utilizar o Wizard de WF do módulo configurador ou criar-se uma personalização.
A seguir, descrevemos como fazer a criação através de uma personalização
- Configurar a integração para workflow entre o Protheus e o ECM no Configurador na opção Ambiente > Totvs ECM > Wizard do WF
- Utilizar a função FWECMProcess para criar e/ou atualizar o processo no ECM conforme o exemplo abaixo:
#include "totvs.ch"
User Function ProcCliente()
Local cProcessId := "CLIENTE"
Local cDescription := "Cadastro de cliente"
Local cInstruction := "Instruções de uso do processo"
Local nFormId := 22 // id do fichário adicionado no ECM no passo anterior
Local aStates := Array(4,6) // atividades do processo em sequencia para criação automática dos fluxos
Local aEvents := Array(1,2) // eventos que serão customizados para o processo
Local aProperties := Array(1,2) // propriedades que serão utilizadas nos scripts dos eventos do processo
Local aError
aStates[1][1] := "Início" // atividade
aStates[1][2] := "" // descrição
aStates[1][3] := "" // instruções
aStates[1][4] := 60 //prazo de conclusão em segundos
aStates[1][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário)
aStates[1][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero
aStates[2][1] := "Revisão" // atividade
aStates[2][2] := "Revisão do cadastro do cliente" // descrição
aStates[2][3] := "Revise as informações do cadastro" // instruções
aStates[2][4] := 60 //prazo de conclusão em segundos
aStates[2][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário)
aStates[2][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero
aStates[3][1] := "Fim" // atividade
aStates[3][2] := "Confirmar cadastro" // descrição
aStates[3][3] := "" // instruções
aStates[3][4] := 60 //prazo de conclusão em segundos
aStates[3][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário)
aStates[3][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero
aEvents[1][1] := "beforeTaskSave"
// script na linguagem JavaScript
aEvents[1][2] := 'function beforeTaskSave(colleagueId,nextSequenceId,userList){'+;
'var A1_COD = hAPI.getCardValue("A1_COD");'+;
'if (A1_COD == ""){'+;
' throw "O campo Código é obrigatório"'+;
'}'+;
'}'
aProperties[1][1] := "TABLE" // nome da propriedade
aProperties[1][2] := "SA1" // valor
FWECMProcess(cProcessId, cDescription, cInstruction, nFormId, aStates, aEvents, aProperties)
If FWWFIsError()
aError := FWWFGetError()
MsgStop(aError[2])
Else
MsgInfo("Processo atualizado com sucesso")
EndIf
Return