Com efeito, como temos necessidade de testar as informações emitidas da estrutura de objeto e da tabela, o código modelo associado à regra de afetação tem por tabela principal a tabela ATEXTE (uma das raras janelas abertas qualquer que seja o contexto). Lê-se, por uma ligação artificial, a tabela dos objetos (ligação 1,1). A chave de ligação é ""+GABREV : com efeito,GABREV é uma variável global que permite, num contexto objeto, de conhecer o código de objeto corrente. Como um controlo de existência está feito na tabela de origem da ligação se resume a um campo, inibe-se aqui o controlo em colocando uma expressão resultante da concatenação de um campo vazio e desta variável.
Assim, no evento OBJCRE, dispõe-se em linha da tabela AOBJET (estrutura de objeto), e da tabela ATABLE (tabela principal do objeto). Isto permite em seguida de testar a existãncia do campo ENAFLG no dicionário da tabela principal.Está-se em gestão de objeto (sem código objeto indicado), em criação de ficha.Critérios desencadeamento
Os critérios complementares de desencadeamento são os seguintes :
- O campo [ABV]ENAFLG não existe (ABV sendo a abreviação da tabela associada ao objeto,o que explica que se passa por uma função avaliada).
- A regra de afetação dos destintários deve ter rendido um valor ([L]USER não vazio).
- Um campo Intitulado deve existir na tabela principal do objeto (isto para permitir de reenviar um titulo no mail).
- Este intitulado não pode ser dependente da língua. De facto, este Workflow não poderá ser utilizado para os objetos que apresentam esta particularidade. Neste caso, escrever-se-á uma regra Workflow não genérico que será então infinitamente mais simples.
Destinatários
A escolha dos destinatários é definida da seguinte maneira :
- O destinatário da mensagem e do seguimento é [L]USER (utilizador emitido da regra de afetação)
Mensagem e seguimento
O exemplo de mensagem dado a seguir se apoia sobre a criação de um ficheiro terceiro. Neste caso, o objeto da mensagem enviada seguirá o modelo seguinte :
Ficha Terceiros MARTIN criado
Para obter este modelo, encontra-se o título do objeto em partindo do campo LIBEL da tabela objeto. Este campo é de tipo "texto dicionário", falta então utilizar a função AFNC.TEXTE para ter o texto na língua corrente do utilizador enviando o mail. A chave corrente do objeto é dada pela variável CLEOBJ, que está sempre preenchida num contexto objeto.
O corpo da mensagem seguirá então o modelo seguinte :
Designação MARTIN e Associados
Criado por : DOE ( John DOE )
A designação está obtida em avaliando o campo intitulado da tabela associada ao objeto, e as variáveis GUSER e GNOMUSER dão o código e o nome de utilizador corrente (aquele que criou a ficha).
O seguimento realizado aqui é mínimo, pois que não há processo de assinatura. Contenta-se de enviar uma linha no monitor Workflow do mesmo utilizador, com o título :
Ficha criada : Terceiros MARTIN (Martin e associados)
Aqui concatena-se o nome de objeto, a chave criada, e o título entre parênteses
A check box seguimento estando assinalado, o utilizador poderá simplesmente colocar um visa sem assinatura para significar que leu a linha em questão.
Tabelas consideradas
As seguintes tabelas estão referidas na regra OBJCRE :