wiki:WF/Engine

Version 2 (modified by cassiomaes, 17 years ago) (diff)

--

Classe: wf_engine

Esta classe tem a finalidade de prover informações/ações relacionadas à engine do Workflow.

Métodos

getProcess

Descrição: Busca informações de um (ou mais) processo(s).

Parâmetros:

$pids: uma array de IDs de processo ou um inteiro representando o ID de um processo.

Retorno: uma array de arrays associativas contento informações sobre os processos.

Exemplo de uso 01:

$engine = wf_create_object("wf_engine");

$engine->getProcess(1);

Este exemplo geraria uma saída do tipo (supondo que o processo de Ligações Telefônicas seja o de pid igual a 1):

Array

(

	[0] => Array

		(

			[wf_p_id] => 1

			[wf_name] => Ligações Telefônicas

			[wf_is_valid] => y

			[wf_is_active] => y

			[wf_version] => 1.0

			[wf_description] => Processo de gerenciamento das ligações telefônicas efetuadas pelos funcionários da Celepar.

			[wf_last_modif] => 1164750629

			[wf_normalized_name] => Ligaes_Telefnicas_10

		)

)

Exemplo de uso 02:

$pids = array(4, 8, 15, 16, 23, 42);

$engine = wf_create_object("wf_engine");

$processos = $engine->getProcess($pids);


continueInstance

Descrição: Dá seqüência ao fluxo de execução de uma instância, simulando uma ação do usuário. A instância deve pertencer ao processo que está utilizando o método.

Parâmetros:

$activityID: ID da atividade da instância que se quer executar.

$instanceID: ID da instância que se quer executar.

Retorno: <nenhum>

Exemplo de uso:

Supondo que a instância de número 108 que está na atividade de número 15 está parada aguardando uma ação do usuário. E, também supondo que na referida atividade existem dois caminhos diferentes que a instância pode seguir. A escolha de qual caminho a instância vai seguir, é feita pelo usuário e é tratada no código por dois if's (ou alguma outra estrutura de controle), como abaixo:

/ ** código da atividade de número 15 (PHP)  **/

/* caminho 01 */

if (isset($_REQUEST['autorizar']))

{

	$instance->setNextActivity('Conceder Empréstimo');

	$instance->complete();

}



/* caminho 02 */

if (isset($_REQUEST['rejeitar']))

{

	$instance->setNextActivity('Informar Rejeição');

	$instance->complete();

}

Se quisermos, por exemplo, simular uma ação do usuário que leva ao caminho 02 ("Informar Rejeição") para a instância em questão, podemos proceder da seguinte maneira:

$_REQUEST['rejeitar'] = true;

$engine = wf_create_object("wf_engine");

$engine->continueInstance(15, 108);

Assim, o código desta atividade (para aquela instância) seria executado simulando uma ação do usuário que levaria a instância para o caminho 02.


abortInstance

Descrição: Aborta uma instância a partir de seu ID. Caso uma instância tenha sido dividida em duas (atividade split) ambas as instâncias serão abortadas. Só é possível abortar instâncias que pertencem ao processo que está utilizando o método.

Parâmetros:

$instanceID: ID da instância que se quer abortar.

Retorno: TRUE se foi possível abortar a instância ou FALSE caso contrário.

Exemplo de uso:

Supondo que se quer abortar a instância de ID 42:

$engine = wf_create_object("wf_engine");

$engine->abortInstance(42);


setInstanceName

Descrição: Define o nome (o campo identificador da Caixa de Entrada) de uma instância. Só é possível definir o nome de instâncias que pertencem ao processo que está utilizando o método.

Parâmetros:

$instanceID: ID da instância cujo nome se quer mudar.

$name: O novo nome da instância.

Retorno: TRUE se foi possível mudar o nome da instância ou FALSE caso contrário.

Exemplo de uso:

Supondo que se quer mudar para "Novo Nome" o nome da instância cujo ID é 54:

$engine = wf_create_object("wf_engine");

$engine->setInstanceName(54, "Novo Nome");


getIdleInstances

Descrição: Busca instâncias abandonadas (que estão paradas há um determinado número de dias) do processo que está utilizando este método.

Parâmetros:

$numberOfDays: o tempo (em dias) em que a instância está parada.

$activities: (opcional) uma array com os IDs das atividades das quais se quer as instâncias abandonadas (caso se queira restringir a uma única atividade, também pode ser utilizado um valor inteiro referente ao ID desta atividade).

Retorno: uma array de arrays associativas contendo informações sobre as instâncias abandonadas.

As informações trazidas para cada elemento desse array são: wf_instance_id, wf_activity_id, wf_started, wf_name, wf_status e wf_user.

Exemplo de uso 01:

Supondo que queremos encontrar instâncias paradas há mais de 4 dias e que estão nas atividades 8 e 15:

$atividades = array(8, 15)

$engine = wf_create_object("wf_engine");

$instancias = $engine->getIdleInstances(4, $atividades);

Exemplo de uso 02:

Supondo que queremos todas as instâncias paradas há mais de 16 dias:

$engine = wf_create_object("wf_engine");

$instancias = $engine->getIdleInstances(16);


getInstances

Descrição: Busca instâncias do processo que está utilizando este método.

Parâmetros:

$activities: (opcional) uma array com os IDs das atividades das quais se quer as instâncias (caso se queira restringir a uma única atividade, também pode ser utilizado um valor inteiro referente ao ID desta atividade).

Retorno: uma array de arrays associativas contendo informações sobre as instâncias.

As informações trazidas para cada elemento desse array são: wf_instance_id, wf_activity_id, wf_started, wf_name, wf_status e wf_user.

Exemplo de uso 01:

Supondo que queremos encontrar instâncias que estão nas atividades 8 e 15:

$atividades = array(8, 15)

$engine = wf_create_object("wf_engine");

$instancias = $engine->getInstances($atividades);

Exemplo de uso 02:

Supondo que queremos todas as instâncias do prcesso:

$engine = wf_create_object("wf_engine");

$instancias = $engine->getInstances();


getInstancesByName

Descrição: Busca todas as instâncias que possuem um determinado nome (o campo identificador da Caixa de Entrada).

Parâmetros:

$name: O nome da(s) instância(s) desejada(s).

Retorno: uma array de arrays associativas contendo informações sobre as instâncias que possuem o nome informado.

As informações trazidas para cada elemento desse array são: wf_instance_id, wf_activity_id, wf_started, wf_name, wf_status e wf_user.

Exemplo de uso:

Supondo que queremos encontrar instâncias que possuem o nome "Urgente":

$engine = wf_create_object("wf_engine");

$instancias = $engine->getInstancesByName("Urgente");


getChildInstances

Descrição: Busca as instâncias filhas da instância (considerando ID da instância e ID da atvidade) que está utilizando o método.

Parâmetros: <nenhum>

Retorno: uma array de arrays associativas contendo informações sobre as instâncias filhas da instância atual.

As informações trazidas para cada elemento desse array são: wf_instance_id, wf_activity_id, wf_started, wf_name, wf_status e wf_user.

Exemplo de uso:

$engine = wf_create_object("wf_engine");

$instancias = $engine->getChildInstances();


getChildInstanceProperties

Descrição: Busca as propriedades de uma instância filha. A instância que chama o método tem que ser mãe da instância da qual se quer as propriedades.

Parâmetros:

$instanceID: ID da instância filha (da qual se quer as propriedades).

Retorno: uma array associativa contendo as propriedades da instância filha. Esta array está no formato: "nome_da_propriedade" => "valor_da_propriedade".

Exemplo de uso:

Supondo que se quer as propriedades da instância (que no caso é filha da atual) de número 815:

$engine = wf_create_object("wf_engine");

$propriedades = $engine->getChildInstanceProperties(815);


getUserPermissions

Descrição: Informa os recursos que um usuário pode administrar. Para isto, utiliza a tabela "admin_access" (na base de dados do Workflow).

Parâmetros:

$type: tipo do recurso ("PRO" para administração de processos, "MON" para monitoramento, "ORG" para organograma, etc.).

$uid: o usuário do qual se quer obter informações sobre a administração de recursos.

Retorno: uma array contendo os IDs dos recursos que o usuário tem acesso.

Exemplo de uso:

Supondo que queremos saber quais organogramas (IDs dos organogramas) o usuário 1516 pode administrar:

$engine = wf_create_object("wf_engine");

$propriedades = $engine->getUserPermissions('ORG', 1516);