Changes between Version 4 and Version 5 of WF/Jobs


Ignore:
Timestamp:
09/21/09 16:20:47 (15 years ago)
Author:
rufino
Comment:

Adicionado explicação e exemplo de uso do método createNewInstance

Legend:

Unmodified
Added
Removed
Modified
  • WF/Jobs

    v4 v5  
    6464Ao remover um Job, o arquivo que implementa o Job também é excluído do sistema de arquivos. Além disso, os Logs produzidos pelo Job também são apagados. 
    6565 
    66 == Exemplo == 
     66== Exemplo 1 == 
    6767No exemplo abaixo, buscamos as instâncias que estão paradas na atividade "Avaliar Serviço" há mais de 10 dias e, chamamos a ação "Confirmar". Este Job poderia ser executado diariamente e, assim, evitar o acúmulo de instâncias. 
    6868{{{ 
     
    113113}}} 
    114114 
     115== Exemplo 2 == 
     116Neste exemplo mostrarmos como criar uma instância automaticamente à partir de um Job. A criação da instância é realizada através do seguinte método. 
     117 
     118{{{ 
     119final public function createNewInstance($startActivityId, $instanceName=false, $properties=false, $user=false) 
     120}}} 
     121'''Onde:''' 
     122 * '''startActivityId''': ID da atividade Start que criará a instância; 
     123 * '''instanceName''': Identificador da instância no processo; 
     124 * '''properties''': Array de propriedades da instância; e 
     125 * '''user''': uidNumber do dono da instância, que se omitido, será um usuário padrão do Job. 
     126 
     127O código fonte abaixo apresenta na prática como uma instância pode ser criada em um Job. 
     128 
     129{{{ 
     130class CriarInstancia extends JobBase 
     131{ 
     132        public function run() 
     133        { 
     134                // Cria objeto $role para pegar o código da atividade start, no caso Abrir OS 
     135                $role = &$this->environment['factory']->getInstance('wf_role'); 
     136                $activityId = $role->getActivityIdByName('Abrir OS'); 
     137 
     138                // Instância não necessita de identificador 
     139                $name = false; 
     140 
     141                // seta o array de propriedades da instância 
     142                $properties = array ('_servico_id' => 5 
     143                                     , '_roteamento' => 'end' 
     144                              ); 
     145 
     146                // Cria a instância e grava mensagens de sucesso ou falha no log de execução do Job. 
     147                if ($this->createNewInstance($activityId, $name, $properties)){ 
     148                        $this->success('Instância criada'); 
     149                } else { 
     150                        $this->fail('Não foi possível criar a instância.'); 
     151                } 
     152        } 
     153} 
     154}}} 
     155 
    115156== Logs == 
    116157O Log é o resultado de cada execução de um Job. Sua listagem pode ser acessada através do ícone de um documento contendo ítens.