== CRIAÇÃO DE NOVAS INSTÂNCIAS A PARTIR DE STANDALONES / OUTRAS INSTÂNCIAS == [[WikiInclude(WF/tableofcontents)]] Através de modificações feitas na engine do Workflow, foi disponibilizada a possibilidade de criar novas instâncias a partir de uma outra instância ou a partir de atividades standalone. A criação destas instâncias tem como base a simulação da ação do usuário em uma atividade start. Por exemplo, supondo que para finalizar a atividade "Compor Solicitação", do tipo start, o usuário precise fornecer um título e uma descrição para a solicitação e executar a ação "Enviar". O código abaixo representa dois métodos da model da atividade "Compor Solicitação": {{{ function validar() { $erros = array(); if (empty($this->_titulo)) $erros[] = "Insira um título"; if (empty($this->_descricao)) $erros[] = "Insira uma descrição"; return $erros; } function enviarAction() { if (count($this->activity->error = $this->validar()) == 0) { /* salva os dados e finaliza a instância */ } else return false; } }}} Neste caso se quisermos, a partir de uma standalone, criar instâncias com base na atividade start "Compor Solicitação", devemos simular a ação do usuário no ato de composição de solicitação. Isto pode ser feito da seguinte forma (para o caso citado), na model. {{{ $_REQUEST['action'] = 'enviar'; $_REQUEST['_titulo'] = 'meu título'; $_REQUEST['_descricao'] = 'minha descrição'; }}} A chamada que faz a simulação para a atividade "Compor Solicitação", pode ser vista abaixo (chamada na model): {{{ $this->instance->createChildInstance('Compor Solicitação'); }}} Assim sendo, o código completo que coloca os dados desejados e simula a ação "Enviar" da atividade "Compor Solicitação" fica assim: {{{ $_REQUEST['action'] = 'enviar'; $_REQUEST['_titulo'] = 'meu título'; $_REQUEST['_descricao'] = 'minha descrição'; $this->instance->createChildInstance('Compor Solicitação'); }}} Também é possível fazer um loop para a criação de várias instâncias. Por exemplo: {{{ function criarAction() { $_REQUEST['action'] = 'enviar'; for ($i = 0; $i < 3; $i++) { $_REQUEST['_titulo'] = 'meu título: ' . date("H\hi\ms\s"); $_REQUEST['_descricao'] = 'descrição'; $this->instance->createChildInstance('Compor Solicitação'); } } }}} Outros parâmetros disponíveis para o {{createChildInstance}} podem ser vistos na [htdocs:wf/api/index.html Documentação do código fonte do Workflow, gerada com phpDocumentor]