| 115 | == Exemplo 2 == |
| 116 | Neste 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 | {{{ |
| 119 | final 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 | |
| 127 | O código fonte abaixo apresenta na prática como uma instância pode ser criada em um Job. |
| 128 | |
| 129 | {{{ |
| 130 | class 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 | |