Version 1 (modified by trac, 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);