wiki:WF/tutorialincludes

Version 1 (modified by viani, 16 years ago) (diff)

--

Tutorial de Desenvolvimento de um Processo Simples

WikiInclude(WF/tableofcontents)?

Codificar os Includes

Os próximos arquivos devem ser incluídos de forma semelhante como foi feito para o arquivo info_solicitação.tpl anteriormente, só que desta vez será usada a aba 'Includes', da interface de código. Para cada arquivo a ser incluído, execute:

1 - Clique no botão 'Novo Include';

2 - Escolha a opção 'em_branco.php';

3 - Informe o nome do arquivo e clique em OK

4 - Inclua o código correspondente

class.avaliar.controller.inc.php

<?php

class AvaliarController extends Controller

{
	function __default ()
	{
		$this->model->defaultAction();
		$this->loadViewVars();
		$this->showForm($this->AVALIAR);
	}

	function aprovar()
	{
		$this->model->aprovarAction();
	}

	function rejeitar()
	{
		$this->model->rejeitarAction();
	}

        function run($action)
	{
		$this->dispatch($action);
	}

}

?>

class.avaliar.model.inc.php

<?php
class AvaliarModel extends Model
{
	function defaultAction()
	{
		$this->updateAttributes();
		$this->addViewVar('titulo', $this->_titulo);
		$this->addViewVar('descricao', $this->_descricao);
		$this->addViewVar('data', $this->_data);
		$this->addViewVar('solicitante_desc', $this->_solicitante_desc);

		return true;

	}

	function aprovarAction()
	{
		$this->instance->setNextActivity('Executar');
		$this->commitInstance();

		return true;

	}

	function rejeitarAction()
	{
		$this->updateAttributes();
		$this->instance->setNextActivity('Informar Resultado');
		$this->instance->setNextUser($this->_solicitante); /* devolve a instância para o solicitante */
		$this->_mensagem = "Sua solicitação foi rejeitada";
		$this->updateInstance();
		$this->commitInstance();

		return true;

	}

}

?>

class.compor.solicitacao.controller.inc.php

<?php

class ComporSolicitacaoController extends Controller
{
	function __default ()
	{
		$this->model->defaultAction();
		$this->loadViewVars();
		$this->showForm($this->COMPOR_SOLICITACAO);
	}

	function enviar()
	{
		$this->model->enviarAction();
		$this->loadViewVars();
	}


	function run($action)
	{
		$this->dispatch($action);
	}

}

?>

class.compor.solicitacao.model.inc.php

<?php
class ComporSolicitacaoModel extends Model
{
	function defaultAction()
	{
		return true;
	}

	function inputValidate($form)
	{
		$msgerro = Array();

		/* título não pode ser vazio */

		if (isset($form['titulo']) && !empty($form['titulo']))
			$this->_titulo = $form['titulo'];
		else
			$msgerro[] = 'É necessário fornecer um título';


		if (isset($form['descricao']) && !empty($form['descricao']))
			$this->_descricao = $form['descricao'];
		else
			$msgerro[] = 'É necessário fornecer uma descrição';

		return $msgerro;

	}

	function enviarAction()
	{
		/* se não houve erros */
		if (count($this->activity->error = $this->inputValidate($this->request)) == 0)
		{

			$this->_solicitante = $this->getWfProperty('wf_user_id');
			$this->_solicitante_desc = $this->getWfProperty('wf_user_cnname');
			$this->_data = date('d/m/Y H\hi');
			$this->updateInstance();
			$this->commitInstance();

		return true;
		}
		else

		{
			$this->addViewVar('titulo', $this->_titulo);
			$this->addViewVar('descricao', $this->_descricao);
			return false;

		}

	}

}

?>

class.controller.inc.php

<?php

class Controller extends BaseController

{

	var $COMPOR_SOLICITACAO = 'Compor_Solicitao.tpl';
	var $AVALIAR = 'Avaliar.tpl';
	var $EXECUTAR = 'Executar.tpl';
	var $INFORMAR_RESULTADO = 'Informar_Resultado.tpl';

	function Controller(&$model , &$env)
	{

		$this->super(&$model , &$env);

	}

}

?>

class.executar.controller.inc.php

<?php

class ExecutarController extends Controller
{
	function __default ()
	{
		$this->model->defaultAction();
		$this->loadViewVars();
		$this->showForm($this->EXECUTAR);

	}

	function finalizar()
	{
		$this->model->finalizarAction();

	}

	function run($action)

	{
		$this->dispatch($action);

	}

}

?>

class.executar.model.inc.php

<?php

class ExecutarModel extends Model

{
	function defaultAction()
	{
		$this->updateAttributes();
		$this->addViewVar('titulo', $this->_titulo);
		$this->addViewVar('descricao', $this->_descricao);
		$this->addViewVar('data', $this->_data);
		$this->addViewVar('solicitante_desc', $this->_solicitante_desc);


		return true;

	}

	function finalizarAction()
	{
		$this->updateAttributes();
		$this->_mensagem = "Sua solicitação foi atendida pelo técnico "
			. $this->getWfProperty('wf_user_cnname')
			. ".\n<strong>Procedimento executado:</strong>\n" . $this->request['procedimento'];
		$this->updateInstance();
        	$this->instance->setNextUser($this->_solicitante); /* devolve a instância para o solicitante */
		$this->commitInstance();

		return true;

	}

}

?>

class.informar.resultado.controller.inc.php

<?php

class InformarResultadoController extends Controller
{
	function __default ()

	{
		$this->model->defaultAction();
		$this->loadViewVars();
		$this->showForm($this->INFORMAR_RESULTADO);
	}

	function encerrar()
	{
		$this->model->encerrarAction();
	}

	function run($action)
	{
		$this->dispatch($action);
	}

}

?>

class.informar.resultado.model.inc.php

<?php
class InformarResultadoModel extends Model
{
	function defaultAction()
	{
		$this->updateAttributes();
		$this->addViewVar('titulo', $this->_titulo);
		$this->addViewVar('descricao', $this->_descricao);
		$this->addViewVar('data', $this->_data);
		$this->addViewVar('solicitante_desc', $this->_solicitante_desc);
		$this->addViewVar('mensagem', $this->_mensagem);

		return true;
	}

	function encerrarAction()
	{
		$this->commitInstance();
		return true;
	}

}

?>

class.model.inc.php

<?php
class Model extends BaseModel
{
	var $_titulo;
	var $_descricao;
	var $_solicitante;
	var $_solicitante_desc;
	var $_data;
	var $_mensagem;

	function Model(&$env)
        {
		$this->super(&$env);

	}

}

?>

shared.php

<?php

//camada de controle do processo

wf_include('class.controller.inc.php');
wf_include('class.compor.solicitacao.controller.inc.php');
wf_include('class.avaliar.controller.inc.php');
wf_include('class.executar.controller.inc.php');
wf_include('class.informar.resultado.controller.inc.php');

//camada da lógica de negócios

wf_include('class.model.inc.php');
wf_include('class.compor.solicitacao.model.inc.php');
wf_include('class.avaliar.model.inc.php');
wf_include('class.executar.model.inc.php');
wf_include('class.informar.resultado.model.inc.php');

?>


1. Introdução
2. Especificação
3. Projeto
   3.1. Criar o Fluxo
   3.2. Criar o Processo
   3.3. Criar as Atividades / Transições / Perfis
   3.4. Mapear os Perfis
4. Implementação
   4.1. Codificar as Atividades
   4.2. Codificar os Templates
   4.3. Codificar os Includes
5. Finalização