Histórico da Página
...
Portuguese | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: TWFProcessA classe TWFProcess foi desenvolvida pontualmente para a utilização no Workflow, é responsável pela criação e gerenciamento do processo. Ou seja, quando existe o envio e retorno do e-mail. Como toda e qualquer classe, a TWFProcess é dividida em métodos e propriedades. Veremos alguns dos principais métodos e propriedades que iremos usar para criação de um processo. Observação: No caso de um simples e-mail, aconselha-se utilizar: - As classes TMailManager (Classe TMailManager) e TMailMessage (Classe TMailMessage); - Corpo de e-mail HTML. Qualquer estilização e/ou ferramenta de mercado, consideradaconsidera-se customização. TWFProcess ( [ ] ) --> Nil
Nil (Nulo) Métodos :New(<cCodProc>,<cDescr>,<cProcID>) O método New() é responsavel pela criação e inicialização da classe WFProcess. Parâmetros: 1. cCodProc: Este parâmetro recebe o código do processo usado em “Cadastro de Processos” 2. cDescr: Este parâmetro recebe a descrição do processo que esta sendo criado no momento. Se não for informado, será usado a descrição contida no cadastro de processo localizada através do parâmetro anterior cCodProc. 3. cProcID: Este parâmetro recebe o ID do processo criado. Exemplo: oP := TWFProcess():New('PEDCOM','Aprovacao do Pedido de Compras')
:NewTask(<cDescr>,<cArqHtml>,<lCopiar>) Este método é responsável por criar a seqüência de tarefas a serem executadas e identificar qual html será utilizado pelo processo. Parâmetros: 1. cDescr: Este parâmetro recebe a descrição da tarefa. 2. cArqHtml: Este parâmetro recebe o caminho e o nome do arquivo html que fará uso no processo. 3. lCopiar: Este parâmetro do tipo lógico é responsável por copiar todos os campos utilizados em uma tarefa anterior para esta que esta sendo criado no momento. Exemplo: oP:NewTask('Criando Aprovacao', '\workflow\WFW120p.htm' )
:AttachFile(<cArquivo>) Este método é responsável pela inclusão de arquivo anexos à mensagem. Os arquivos anexos deverão estar abaixo do root path do Protheus. Parâmetros: 1. cArquivo: Caminho e nome do arquivo a ser anexo a mensagem. Exemplo: oP:AttachFile(“\Workflow\teste.txt”)
:Start(<cHtmlCopiarPara>) -> cProcessKey Este método é responsável por construir todo o processo, gravar os registros nas tabelas do Workflow e enviar a mensagem para os destinatários. O valor de retorno é uma chave composta pela codificação ProcessID + TaskID e números aleatórios no total de 17 algarismos em hexadecimal. Parâmetros: 1. cHtmlCopiarPara: Caminho onde o Workflow devera realizar uma copia do html final. Exemplo: cID := oP:Start(“\workflow\copia”) if file( “\workflow\copia\” + cID) conout(“Arquivo copiado com sucesso.”) endif
:Finish() Este método é responsável por finalizar o Processo. Após a finalização, este não estará mais disponível para execuções do tipo retorno e timeout. Exemplo: oP:Finish()
:Track(<cCodStatus>,<cDescr>,<cUsuario>) Este método é responsável por incluir as descrições dos passos seguidos pelo fluxo do processo e apresentá-los na consulta da rastreabilidade. Parâmetros: 1. cCodStatus: Codigo do status do processo. 2. cDescr: Descrição do passo ocorrido. 3. cUsuario: Nome do usuário a que se destinou a tarefa. Exemplo: oP:Track(“100200”, “Enviando o pedido para aprovacao”, “AprovadorA”)
Propriedades
:cTo, :cCC e :cBCC Estas propriedades definem o endereço dos destinatários. Poderá ser informado mais que um destinatário ao mesmo tempo. Basta incluir um ponto-e-vírgula “;” entre eles. Se for informado uma palavra qualquer que não seja um endereço de e-mail válido, o Workflow irá considera que se trata de um diretório onde o html gerado devera ser gravado. Pode mesclar os tipos. Exemplo: oP:cTo := “[email protected];[email protected]” oP:cCC := “[email protected];Aluno” oP:cBCC := “[email protected]”
:cSubject Esta propriedade define o assunto da mensagem. Exemplo: oP:cSubject := “Aprovado do pedido de compras no. 1028”
:cBody Esta propriedade armazenará um texto que permanecera no corpo da mensagem. Caso seja utilizado, o html irá como anexo da mensagem. Exemplo: oP:cBody := “Testando...”
:bReturn Esta propriedade contém o nome da função que será executada no momento em que o Workflow receberá a mensagem de resposta de um dos destinatários via e-mail ou serviço http.
Exemplo: oP:bReturn := “U_Retorno”
:bTimeOut Esta propriedade recebe um array de timeouts contendo nomes das funções e tempo de espera. Caso os tempo seja alcançado, será executado a função mencionadas no 1º item do array. Poderá especificar mais que 1 array de timeouts.
{ { <cFuncao>, <nDias>, <nHoras>, <nMinutos> }, { ... } }
Exemplo: oP:bTimeOut := { { “TimeOut1”, 0, 5, 30 } } ou oP:bTimeOut := { { “TimeOut1”, 0, 5, 30 }, { “TimeOut2”, 1, 10, 0 } }
:fProcessID Esta propriedade fornece o número ID do processo.
Exemplo: cProcID := oP:fProcessID
:fTaskID Esta propriedade fornece o número ID da tarefa criada para um determinado processo, através do método :NewTask().
Exemplo: oP:NewTask( '100100', '\workflow\WFW120p.htm' ) cTaskID := oP:fTaskID
:oHTML Este objeto é uma referência da classe de uso interno TWFHtml() e disponibiliza dois dos métodos mais importantes: RetByName() e ValByName().
:oHTML:RetByName( <cNome da macro> ) Esta propriedade tem como objetivo obter o conteúdo da “macro” quando as resposta retornarem para o Workflow. Este método somente deverá ser usada na função de retorno.
Exemplo: cNome := oP:oHtml:RetByName( “Nome” )
Em uma tabela: aCodigo := oP:oHtml:RetByName( “produto.Codigo” )
:oHTML:ValByName(<cMacro>,<uConteudo>) Este método por objetivo atribuir ou obter um valor à uma “macro” existente no html. Este deverá ser usado somente no momento em que estiver assinalando valores ao html ou na função de timeouts. Na função de timeouts o uso é necessário por motivo de não ter recebido nenhuma resposta. Parâmetros: 1. cMacro: Nome da macro (palavra chave) encontrada no html, identificada entre os símbolos “%” e “!”. 2. uConteudo: Valor a ser atribuido à macro.
Exemplo: Assinalando um valor: oP:oHtml:ValByName( “Nome”, “Aluno1” )
Usando na função de timeout: cNome := oP:oHtml:ValByName( “Nome” )
Atribuindo um valor a uma tabela: AAdd( oP:oHtml:ValByName( “produto.codigo” ), SB1->SB1_COD ) Microsiga Protheus 8.11 , Protheus 10 |