Workflow - Manual do Usuário > Modelador > Automatização > Integração com Seniortools
 

Integração do Workflow com Seniortools

 

É possível configurar uma perspectiva para operar integrada ao Workflow. Desta forma ela poderá receber e enviar dados ao Workflow fazendo parte de um processo.

Nota

Para saber mais sobre a criação de perspectivas pelo Senior Developer, consulte o tópico Componentes de Customização > Interface > Perspectivas e Visões customizadas.

 

Configuração da perspectiva

A configuração das propriedades de workflow serão informadas dentro da cláusula workflow da perspectiva. Através desta integração é possivel definir variáveis e cursores que formarão esta integração, conforme exemplo abaixo:

workflow : {

fields : [{

name : "WF_UserName",

type : "STRING",

size : "100",

mode : "INPUT_OUTPUT"

},{

name : "WF_QntdDias",

type : "INTEGER",

size : "100",

mode : "INPUT_OUTPUT"

},{

name : "WF_Status",

type : "BOOLEAN",

mode : "OUTPUT"

}],

concurrenceErrorHandler : "trataConcorrencia",

cursors : [{

id : "crPendency",

mode : "OUTPUT",

data : "ALL",

concurrence : {

mode : "NONE"

}

}]

}

 

Importação e exportação de variáveis do processo

É possível importar variáveis para a perspectiva, bem como exportar variáveis para o processo através da configuração da cláusula fields da configuração da perspectiva para workflow. As variáveis utilizadas na clausula fields devem estar definidas no Modelo de Processo.

Para cada variável declarada na perspectiva devem ser informadas os seguintes atributos:

Nota

  • Veja o exemplo da cláusula fields no exemplo acima.
  • Caso um cursor receba como INPUT uma massa de dados incompatível, uma mensagem de erro lançada.
  • As variáveis criadas estarão disponíveis como campos no cursor de pendências, os quais podem ser acessados com o mesmo nome que foram declarados no processo.
  • Caso uma variável definida não seja atribuida pelo processo seu valor será null
  • Caso ocorra atribuição de tipos incompatíveis uma exceção deve ser lançada.

 

Integração de dados de cursores

Dados de cursores podem ser importados para a perspectiva e exportados para o processo. Isto deverá ser feito através da configuração da cláusula cursors.

Pode-se definir um cursor para manipulação de pendências, o qual deve ser proveniente do SystemComponent de Workflow, e deve ser declarado na perspectiva que se integrará ao workflow.

Quando exportados para o processo, cada cursor será exportado como uma variável do tipo lista de objetos. O nome da variável que representa cada cursor será o informado na propriedade id do cursor.

Para cada cursor declarado devem ser informados os seguintes atributos:

Nota

Caso um cursor trafegado não tenha ligação com os demais, todos os registros deste cursor serão exportados para o processo. Neste caso, não é suportada a função de controle multi-pendência obtida através da definição do cursor de pendência na perspectiva.

 

Operação tratadora de erros de concorrência

Uma operação de SystemComponent pode ser elegida para tratamento de erros de concorrência na importação de dados de cursores trafegados em um processo. A operação disparada é definida através do atributo concurrenceErrorHandler, o qual deverá receber como valor o identificador de uma operação declarada na perspectiva.

 

SystemComponent de Workflow

O SystemComponent de Workflow provê as principais funcionalidades para integração com workflow. Ele é fornecido pela classe com.senior.workflow.sc.SCWorkflow.

Através deste SystemComponente é possível:

Estas operações podem ser executadas individualmente ou em Lote.

 

Iniciar um processo

Fornecido através do método startProcess, o qual pode ser utilizado com as seguintes assinaturas:

startProcess (processName : String, inputData : String, processKey : String);

 

startProcess (processName : String, workflowParams : WorkflowParams, processKey : String);

 

startProcess (processName : String, workflowParams : WorkflowParams)

Segue abaixo a descrição dos parâmetros:

ParâmetroDescrição
processName Nome do processo a ser iniciado.
inputDataDados de entrada do processo.
workflowParamsMesma função do inputData.
processKeyChave que vai representar a instância a ser iniciada desse processo. Esse campo pode ter no máximo 30 caracteres.

 

Responder processo

Este método permite notificar o Workflow da resposta de uma das partes do processo. Segue abaixo o método utilizado:

responseProcess (workflowParams : WorkflowParams);

Segue abaixo a descrição do parâmetro:

ParâmetroDescrição
workflowParamsContém os dados de retorno do processo (massa de dados, identificador do processo, token, etc.).

É possível exportar automaticamente todos os dados configurados como OUTPUT ou INPUT_OUTPUT para o processo, sendo que caso uma perspectiva trate uma única pendência não é necessário informar o token para resposta como no exemplo acima.

Neste caso, todas as variáveis definidas para exportação são respondidas como parâmetros de workflow para o processo e todos os cursores definidos para exportação são respondidos automaticamente como um único parâmetro chamado seniortools_data para o processo.

Nota

Caso algum parâmetro seja setado através do SystemComponente de workflow, esta irá sobrescrever os valores definidos na perspectiva.

 

 

Cancelar um processo

Fornecido através do método cancelProcess, o qual pode ser utilizado com as seguintes assinaturas:

cancelProcess (processId : String, motivo : String);

 

cancelProcess (processId : String, processName : String, motivo : String);

 

cancelProcess (token : String, motivo : String);

Segue abaixo a descrição do parâmetro:

ParâmetroDescrição
processId Identificador único do processo.
motivoMotivo informado para o cancelamento.
processName

Nome do processo a ser cancelado.

Importante

Este campo não é identificador.

tokenRepresenta uma parte da instância do processo, por exemplo: uma tarefa específica.

 

Executar operações em lote

A execução de operações em lote permite executar várias operações de iniciar, responder e cancelar processo em um único momento sobre os processos de Workflow.

Segue abaixo algumas características da execução em lote:

 

Este artigo ajudou você?