Changeset 1437 for trunk/workflow/inc/local/classes
- Timestamp:
- 09/21/09 15:43:06 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workflow/inc/local/classes/class.JobBase.php
r795 r1437 191 191 192 192 /** 193 * Cria uma nova instância do processo e encaminha para a próxima atividade 194 * @param int $startActivityId ID da atividade Start que será usada para criar a instância 195 * @param string $instanceName Identificador da instância 196 * @param array $properties Array associativo contendo as popriedades da instância 197 * @param int $user uidNumer do usuário do dono da instância (usuário que gerou a instância) 198 * @return bool true se a instância foi criada, caso contrário, false. 199 * @final 200 * @access public 201 */ 202 final public function createNewInstance($startActivityId, $instanceName=false, $properties=false, $user=false) 203 { 204 $activityManager = CreateObject('workflow.workflow_activitymanager'); 205 $activity = $activityManager->get_activity($startActivityId); 206 207 // Verifica se a atividade existe e é uma atividade de start 208 if ($activity['wf_type'] != 'start') 209 return false; 210 211 // Verifica se existe uma transição da atividade de start para outra atividade 212 $transition = $activityManager->get_process_transitions($this->processID, $startActivityId); 213 $nextActivityId = $transition[0]['wf_act_to_id']; 214 if (empty($nextActivityId)) 215 return false; 216 217 // Captura objeto runtime da globals 218 $runtime = &$GLOBALS['workflow']['wf_runtime']; 219 220 // TODO: Pegar usuário padrão da tabela phpgw_config 221 $defaultUser = 73231; 222 223 // Seta usuário para execução. Se $user for false, seta usuário padrão do job 224 $uidNumber = ($user)? $user : $defaultUser; 225 if (empty($uidNumber)) return false; 226 227 $GLOBALS['phpgw_info']['user']['account_id'] = $uidNumber; 228 $_SESSION['phpgw_info']['workflow']['account_id'] = $uidNumber; 229 $GLOBALS['user'] = $uidNumber; 230 231 if (!empty($instanceName) && is_string($instanceName)) 232 $runtime->setName($instanceName); 233 234 if (!empty($properties) && is_array($properties)) 235 $runtime->setProperties($properties); 236 237 // Cria a instância 238 if ($runtime->instance->complete($startActivityId)){ 239 // Envia instância para próxima transição 240 $runtime->instance->sendTo($startActivityId, $nextActivityId); 241 return true; 242 } 243 return false; 244 } 245 246 /** 193 247 * É o método que contém o código do Job que será executado 194 248 * @return void
Note: See TracChangeset
for help on using the changeset viewer.