Para a criação de um novo workflow é necessário desenvolver um formulário HTML e publicá-lo utilizando a função WfCard. Após realizada a publicação, utilizar a função WfProcess com o formulário informado para criar o workflow e definir suas atividades, atribuir responsáveis, adicionar eventos e propriedades específicas. Abaixo segue um exemplo de código fonte para a criação de workflows.
#--------------------------------#
FUNCTION vdp10000_create_process()
#--------------------------------#
DEFINE la_html ARRAY[1] OF
RECORD
name CHAR(50),
code TEXT
END RECORD
DEFINE la_states ARRAY[3] OF
RECORD
name CHAR(050),
description CHAR(100),
instruction CHAR(200),
deadline INTEGER,
attribution INTEGER,
codattribution CHAR(100)
END RECORD
DEFINE l_form_id INTEGER
DEFINE l_return CHAR(100)
LET la_html[1].name = 'clientes.html'
LET la_html[1].code = _ADVPL_H_VDP10000()
LET l_form_id = _ADVPL_WfCard('CLIENTES','Formulário de cadastro de clientes','Clientes',la_html)
IF l_form_id < 1 THEN
CALL LOG_message(_ADVPL_WfGetError(1),'ERROR',_ADVPL_WfGetError(2),NULL,0)
RETURN FALSE
END IF
LET la_states[1].name = 'inicio'
LET la_states[1].description = 'Início'
LET la_states[1].instruction = 'Nesta tarefa é necessário informar os dados do cliente'
LET la_states[1].deadline = 0
LET la_states[1].attribution = 0
LET la_states[1].codattribution = ''
LET la_states[2].name = 'revisao'
LET la_states[2].description = 'Revisão'
LET la_states[2].instruction = 'Nesta tarefa é necessário revisar as informações do cliente'
LET la_states[2].deadline = 0
LET la_states[2].attribution = 2
LET la_states[2].codattribution = 'rubens'
LET la_states[3].name = 'efetivacao'
LET la_states[3].description = 'Efetivação'
LET la_states[3].instruction = 'Nesta tarefa ocorre a efetivação do cliente no ERP Logix'
LET la_states[3].deadline = 0
LET la_states[3].attribution = 0
LET la_states[3].codattribution = ''
LET l_return = _ADVPL_WfProcess('CLIENTES','Clientes','Processo de criação de clientes no ERP Logix.',l_form_id,la_states)
IF l_return THEN
CALL LOG_message('Processo criado com sucesso!','INFO',NULL,NULL,0)
ELSE
CALL LOG_message(_ADVPL_WfGetError(1),'ERROR',_ADVPL_WfGetError(2),NULL,0)
END IF
RETURN l_return
END FUNCTION |
O formulário HTML utilizado no exemplo acima pode ser encontrado aqui: vdp10000.aph.