== 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''': '''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:''' '''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); }}}