O objetivo deste documento é descrever a utilização de Webservices, mostrar e explicar todos seus métodos, disponibilizar exemplos de classes que utilizam esses Webservices e mostrar exemplos de geração de stubs que são necessários para que os clients possam se comunicar com o serviço.
Pré-requisitos
Para que se tenha uma compreensão completa destas informações, alguns conhecimentos são considerados pré-requisitos, entre eles:
Visão geral sobre o fluig
Visão geral sobre integração de sistemas
WebServices
Criar Stubs
Os stubs são necessários para que os clients que utilizam os métodos dos Webservices possam se comunicar com o serviço.
...
Para os métodos de update que recebem objetos complexos(DocumentDto, ColleagueDto, GroupDto, etc) é obrigatório passar todos os campos do objeto alterado. Os campos não informados serão substituídos por branco, nulo ou zero, dependendo do seu tipo.
Para evitar esta situação, sugerimos sempre utilizar os métodos get para recuperar o objeto, efetuar as alterações nos campos necessários e enviá-lo para o método update.
Nota
title
Observação
Identificamos em alguns objetos os
Identificação dos atributos: Os atributos de retorno dos métodos são identificados nos objetos. Caso não tenha encontrado o objeto que procura é possível fazer uma pesquisa nos datasets e assim identificar os atributos.
Image Removed
Figura 1: Consulta de Dataset.
Image Removed
Figura 2: Resultado da Consulta do Dataset Colleague.
Tratamento de exceção (try/catch): Quando o serviço utilizado não estiver disponível, não haverá retorno. Para esse tipo de caso, é aconselhável realizar o tratamento utilizando Try / Catch.
ECMAttributionMecanismService
...
Webservice responsável por realizar operações referentes a formulários no fluig. Pode ser utilizado para criar, alterar, excluir e pesquisar formulários, entre outros recursos.
Métodos
Exemplos de utilização
Faça o download da classe CardServiceClient.java, esta exemplifica a utilização dos principais métodos da classe CardService, que identifica os parametros a serem passados no carddtos.
Para visualizar um exemplo de montagem do xml, clique em download.
Métodos
Cloak
visible
true
title
No quadro 5, é mostrado todos os métodos disponíveis na classe CardService.
Cloak
visible
true
title
No quadro 5, é mostrado todos os métodos disponíveis na classe CardService.
Faça o download da classe CardServiceClient.java, esta exemplifica a utilização dos principais métodos da classe CardService.
ECMColleagueGroupService
Webservice responsável por realizar operações referentes aos grupos de usuários no fluig. Pode ser utilizado para relacionar um usuário a um grupo de usuários e serve também para alterar, excluir e pesquisar esses relacionamentos criados.
...
Cloak
visible
true
title
No quadro 6, é mostrado todos os métodos disponíveis na classe ColleagueGroupSevice.
createColleagueGroup
Associa um usuário a um grupo.
Método:
createColleagueGroup(String username, String password, int companyId, ColleagueGroupDto[] grupo_colaborador)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa;
grupo_colaborador: grupo que estará associado a um usuário.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
deleteColleagueGroup
Exclui um usuário de um grupo.
Método:
deleteColleagueGroup(String username, String password, int companyId, String groupId, String colleagueId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
groupId: código do grupo.
colleagueId: matrícula do usuário.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
getAllColleagueGroups
Retorna todos os grupos que possuem usuários relacionados.
Método:
getAllColleagueGroups(String username, String password, int companyId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
Retorno: ColleagueGroupDto[].
getColleagueGroup
Retorna somente um grupo que determinado usuário participa.
Método:
getColleagueGroup(String username, String password, int companyId, String groupId, String colleagueId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
groupId: código do grupo.
colleagueId: matrícula do usuário.
Retorno: ColleagueGroupDto[].
Atributos de Retorno:
colleagueId
companyId
groupId
getColleagueGroupsByColleagueId
Retorna os grupos que um usuário participa.
Método:
getColleagueGroupsByColleagueId(String username, String password, int companyId, String colleagueId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
Retorno: ColleagueGroupDto[].
Atributos de Retorno:
colleagueId
companyId
groupId
getColleagueGroupsByGroupId
Retorna os usuários que participam de um grupo de usuários.
Método:
getColleagueGroupsByGroupId(String username, String password, int companyId, String groupId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
groupId: código do grupo.
Retorno: ColleagueGroupDto[].
Atributos de Retorno:
colleagueId
companyId
groupId
updateColleagueGroup
Atenção
O método updateColleagueGroup foi depreciado, portanto não é recomendada a sua utilização em desenvolvimentos sobre a plataforma.
Altera a associação de um usuário a um grupo.
Método:
updateColleagueGroup(String username, String password, int companyId, ColleagueGroupDto[] grupo_colaborador)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
grupo_colaborador: grupo de usuários que será alterado.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
Quadro 6: Métodos da ColleagueGroupService.
Exemplo de utilização
Faça o download da classe ColleagueGroupServiceClient.java, esta exemplifica a utilização dos principais métodos da classe ColleagueGroupService.
...
Cloak
visible
true
title
No quadro 7, é mostrado todos os métodos disponíveis na classe ColleagueReplacementService.
createColleagueReplacement
Cria um substituto.
Método:
createColleagueReplacement (String username, String password, int companyId, ColleagueReplacementDto crDto)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
crDto: cadastro do substituto.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
deleteColleagueReplacement
Exclui o cadastro de um substituto.
Método:
deleteColleagueReplacement(String username, String password, int companyId, String colleagueId, String replacementId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário origem.
replacementId: matrícula do usuário substituto.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
getColleagueReplacement
Retorna um substituto de um usuário.
Método:
getColleagueReplacement(String username, String password, int companyId, String colleagueId, String replacementId)
updateColleagueReplacement (String username, String password, int companyId, ColleagueReplacementDto crDto)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
crDto: cadastro do usuário.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
Quadro 7: Métodos da ColleagueReplacementService
Exemplo de utilização
Faça o download da classe ECMColleagueReplacementService.java, esta exemplifica a utilização dos principais métodos da classe ColleagueReplacementService.
...
Cloak
visible
true
title
No quadro 8, é mostrado todos os métodos disponíveis na classe ColleagueService.
createColleague
Cria um usuário.
Método:
createColleague(String username, String password, int companyId, ColleagueDto[] colleagues)
findWorkflowTasks(String user, String password, int companyId, String colleagueId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
Atenção!
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Retorna as tarefas do usuário que estão abertas, paginadas.
Método:
findWorkflowTasksOnDemand(String user, String password, int companyId, String colleagueId, int limit, int lastRowId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
limit: número de registros a serem retornados.
lastRowId: última linha retornada.
Atenção!
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Método: findExpiredWorkflowTasks(String user, String password, int companyId, String colleagueId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
Atenção!
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Retorna a quantidade de tarefas atrasadas, no prazo e sem prazo de um usuário.
Método:
fillStatusTask(String user, String password, int companyId, String colleagueId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
Atenção!
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Retorno: List de int[], com a quantidade de tarefas atrasadas.
fillChronoTasks
Retorna a quantidade de tarefas com prazo de conclusão que foram atribuidas atribuídas ao usuário e não foram finalizadas.
Método:
fillChronoTasks(String user, String password, int companyId, String colleagueId, int yearIni, int yearFin, int mounthIni, int mounthFin, int dayIni, int dayFin, int kindTask)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
yearIni: ano inicial.
yearFin: ano final.
mounthIni: mês inicial.
mounthFin: mês final.
dayIni: dia inicial.
dayFin: dia final.
kindTask: tipo da tarefa.
Atenção!
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Retorno: : Lista de int[], com a quantidade de tarefas com prazo de conclusão atribuída ao usuário.
fillTypeTasks
Retorna os tipos de tarefas que o usuário possui.
Método:
fillTypeTasks(String user, String password, int companyId, String colleagueId)
O colleagueId pode ser preenchido com Pool:Role:Id ou Pool:Group:Id substituindo o Id pelo código de um papel ou de um grupo, respectivamente, para retornar as solicitações referentes a eles.
Modifica o tipo da segurança dos grupos na permissão e na restrição. Existem duas opções que são representadas por um inteiro:
0 - TODOS os usuários dos Grupos.
1 - SOMENTE usuários comuns dos grupos.
Método:
updateGroupSecurityType(String user, String password, int companyId, int documentId, int version, int permissionType, int restrictionType, String colleagueId)
Parâmetros:
user: código do usuário de integração.
password: senha do usuário de integração.
companyId: código da empresa.
documentId: código do documento.
version: versão do documento.
permissionType: tipo da permissão (0 - TODOS os usuários dos Grupos / 1 - SOMENTE usuários comuns dos grupos)
restrictionType: tipo da restrição (0 - TODOS os usuários dos Grupos / 1 - SOMENTE usuários comuns dos grupos)
dbDriver: driver do banco de dados (MySql- com.mysql.jdbc.Driver. SQLServer - net.sourceforge.jtds.jdbc.Driver. Oracle -oracle.jdbc.driver.OracleDriver)
dbUser: username banco de dados.
dbPassword: password banco de dados.
dbServer: servidor de conexão do banco de dados.
dbPort: porta servidor banco de dados.
dbScheme: database.
dbInstance: instância do banco, utilizada para SQLServer, caso não seja o caso passar em branco ("").
mailServer: nome do servidor SMTP.
emailSender: e-mail do remetente padrão do produto.
emailPort: porta do servidor SMTP.
emailDefaultSender:
emailUser: usuário de email, somente se o servidor necessitar de autenticação.
emailPassword: password do email, somente se o servidor necessitar de autenticação.
emailTLS: servidor utilizará criptografia no envio de email (true/false)
paramsRMTPTPort: porta utilizada pelo Flex.
lsType: tipo de licença utilizada, LM/LS.
paramsLSHost: servidor de licenças.
paramsLSPort: porta servidor de licenças.
paramsOpenOfficeDir: diretório de instalação do OpenOffice
paramsOpenOfficePorts: porta utilizado pelo OpenOffice
portsSetName: portas utilizadas pelo sistema (ports-default, ports-01, ports-02)
Retorno: String.
Atenção
Método depreciado e não mais utilizável no fluig.
updateGlobalParam
Altera parâmetros gerais de uma empresa.
Método:
updateGlobalParam(String username, String password, int companyId, GlobalParamDto[] global)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
global: parâmetros gerais da empresa.
Retorno: String.
Quadro 17: Métodos da GlobalParamService.
Exemplo de utilização
Faça o download da classe GlobalParamServiceClient.java, esta exemplifica a utilização dos principais métodos da classe GlobalParamService.
...
Cloak
visible
true
title
No quadro 18, é mostrado todos os métodos disponíveis na classe GroupService.
createGroup
Cria um grupo no fluig.
Método:
createGroup(String username, String password, int companyId, GroupDto[] grupos)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
grupos: grupo que será criado.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
deleteGroup
Exclui um grupo do fluig.
Método:
deleteGroup(String username, String password, int companyId, String groupId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
GroupId: código do grupo.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
getGroup
Retorna um grupo cadastrado no fluig.
Método:
getGroups(String username, String password, int companyId, String groupId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
groupId: código do grupo.
Retorno: GroupDto[].
Atributos de Retorno:
companyId
groupDescription
groupId
getGroups
Retorna todos os grupos cadastrados no fluig.
Método:
getGroups(String username, String password, int companyId)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
Retorno: GroupDto[].
Atributos de Retorno:
companyId
groupDescription
groupId
getGroupsByDescription
Retorna um grupo pela descrição.
Método:
getGroupsByDescription(String username, String password, int companyId, String desc)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
desc: descrição do grupo.
Retorno: GroupDto[].
Atributos de Retorno:
companyId
groupDescription
groupId
getOcurrenceByKey
Retorna se existe configuração de segurança para atribuição e valor da atribuição.
Método:
getOcurrenceByKey(String username, String password, int companyId, int pIdiAtribuic, String pDesValAtribuic)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
pIdiAtribuic: código da atribuição.
pDesValAtribuic: valor da atribuição.
Retorno: boolean.
updateGroup
Altera um grupo no fluig.
Método:
updateGroup(String username, String password, int companyId, GroupDto[] grupos)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
grupos: grupo que será alterado.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
Quadro 18: Métodos da GroupService.
Exemplo de utilização
Faça o download da classe GroupServiceClient.java, esta exemplifica a utilização dos principais métodos da classe GroupService.
...
Cloak
visible
true
title
No quadro 20, é mostrado todos os métodos disponíveis na classe ReportService.
createSimpleReport
Cria um relatório de maneira simplificada no fluig.
Método:
createSimpleReport(String username, String password, int companyId, int parentDocId, String reportDescription, Attachment[] attachments)
Utiliza busca avançada através das opções de metadados e campos customizados.
Método:
advancedSearchDocuments(String user, String password, int companyId, String colleagueId, String content, SearchFields[] metadata, SearchFields[] customfields, boolean findAllDocumentTypes, boolean findFolders, boolean findDocuments, boolean findCardIndex, boolean findCards, boolean findExternalDocument, int documentParentId, Date startDate, Date finalDate)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
colleagueId: matrícula do usuário.
content: conteúdo da busca.
metadata: informações para busca a partir de metadados do arquivo, como publicador (usando o fieldName publisher), autor (author), descrição (description), descrição da versão/revisão (versionDescription), comentários (additionalComments), tags (tags), data de criação (createDate) e data da última alteração (lastUpdateDate).
customfields: informações para busca a partir de metadados de campos customizados, informando o código do campo customizado como fieldName e valor a ser utilizado como filtro.
findAllDocumentTypes: indica se deve buscar todos os tipos de documentos.
findFolders: indica se deve buscar pastas.
findDocuments: indica se deve buscar documentos.
findCardIndex: indica se deve buscar formulários.
findCards: indica se deve buscar registros de formulários.
findExternalDocument: indica se deve buscar documentos externos.
Retorna o número da próxima atividade de uma solicitação.
Método:
getAvailableStates(String user, String password, int companyId, String processId, int processInstanceId, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processId: código do processo.
processInstanceId: número da solicitação.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorno: Integer[].
getAvailableStatesDetail
Retorna detalhes das atividades disponíveis para seleção...
Atenção
Caso haja necessidade de utilizar este método na primeira instância do processo, favor consultar a .
Método:
getAvailableStatesDetail(String user, String password, int companyId, String processId, int processInstanceId, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processId: código do processo.
processInstanceId: número da solicitação.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorna os usuários que podem executar a tarefa corrente de uma solicitação.
Método:
getAvailableUsers(String username, String password, int companyId, int processInstanceId, int state, int threadSequence)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
state: número da atividade.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorno: String[].
getAvailableUsersOnDemand
Retorna os usuários que podem executar a tarefa corrente de uma solicitação, paginados e com busca.
Método:
getAvailableUsersOnDemand(String username, String password, int companyId, int processInstanceId, int state, int threadSequence, int limit, int initialUser, String userSearch)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
state: número da atividade.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorna os usuários disponíveis na abertura de uma solicitação.
Método:
getAvailableUsersStart (String username, String password, int companyId, String processId, int state, int threadSequence)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processId: código do processo.
state: número da atividade.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorno: String[].
getAvailableUsersStartOnDemand
Retorna os usuários disponíveis na abertura de uma solicitação, paginados e com busca.
Método:
getAvailableUsersStart (String username, String password, int companyId, String processId, int state, int threadSequence, int limit, int initialUser, String userSearch)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processId: código do processo.
state: número da atividade.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
newProcess: indica se deve ser criado um processo ou atualizado o existente.
overWrite: indica se as atividades e fluxos do processo existentes devem ser sobrescritas.
colleagueId : matrícula do usuário.
parentDocId: número do formulário.
docDescription: descrição.
cardDescription: nome.
datasetName: nome do dataset.
cardAttachs: arquivo anexo.
customEvents: eventos.
update: caso verdadeiro ('true'), informa que será uma atualização.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
releaseProcess
Libera processos workflow.
Método:
releaseProcess(String user, String password, int companyId, String processId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processId: código do processo.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
saveAndSendTask
Movimenta solicitação para próxima atividade.
Caso possua os campos preenchidos na solicitação e os valores não forem repassados no cardData ou estiverem vazios, a solicitação também ficará com o valor vazio, onde os valores preenchidos serão apagados caso não seja passado o valor.
Método:
saveAndSendTask(String user, String password, int companyId, int processInstanceId, int choosedState, String[] colleagueIds, String comments, String userId, boolean completeTask, ProcessAttachmentDto[] attachments, String[][] cardData, ProcessTaskAppointmentDto[] appointment, boolean managerMode, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
choosedState: número da atividade.
colleagueIds: usuário que receberá a tarefa.
comments: comentários.
userId: matrícula do usuário que vai executar a tarefa.
completeTask: indica se deve completar a tarefa (true) ou somente salvar (false).
managerMode: indica se usuário esta executando a tarefa como gestor do processo.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorno: String[][].
Estrutura de retorno com sucesso
Estrutura de retorno com erro
saveAndSendTaskByReplacement
Movimenta solicitação para próxima atividade utilizando usuário substituto.
Caso possua os campos preenchidos na solicitação e os valores não forem repassados no cardData ou estiverem vazios, a solicitação também ficará com o valor vazio, onde os valores preenchidos serão apagados caso não seja passado o valor.
Método:
saveAndSendTaskByReplacement (String user, String password, int companyId, int processInstanceId, int choosedState, String[] colleagueIds, String comments, String userId, boolean completeTask, ProcessAttachmentDto[] attachments, String[][] cardData, ProcessTaskAppointmentDto[] appointment, boolean managerMode, int threadSequence, String replacementId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
choosedState: número da atividade.
colleagueIds: usuário que receberá a tarefa.
comments: comentários.
userId: matrícula do usuário que vai executar a tarefa.
completeTask: indica se deve completar a tarefa (true) ou somente salvar (false).
managerMode: indica se usuário esta executando a tarefa como gestor do processo.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
replacementId: matrícula do usuário substituto.
Retorno: String[][].
Estrutura de retorno com sucesso
Estrutura de retorno com erro
saveAndSendTaskClassic
Movimenta solicitação para próxima atividade e retorna um array de objeto com chave e valor.
Caso possua os campos preenchidos na solicitação e os valores não forem repassados no cardData ou estiverem vazios, a solicitação também ficará com o valor vazio, onde os valores preenchidos serão apagados caso não seja passado o valor.
Método:
saveAndSendTaskClassic(String user, String password, int companyId, int processInstanceId, int choosedState, String[] colleagueIds, String comments, String userId, boolean completeTask, ProcessAttachmentDto[] attachments, KeyValueDto[]cardData, ProcessTaskAppointmentDto[] appointment, boolean managerMode, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
choosedState: número da atividade.
colleagueIds: usuário que receberá a tarefa.
comments: comentários.
userId: matrícula do usuário que vai executar a tarefa.
completeTask: indica se deve completar a tarefa (true) ou somente salvar (false).
managerMode: indica se usuário esta executando a tarefa como gestor do processo.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Estrutura mínima para movimentação com anexo
xmlExemplo usando SoapUI
O exemplo de movimentação com anexo foi criado considerando do uso da pasta de upload do volume. Sendo assim, o arquivo para transferência deverá estar contido na pasta de upload do usuário.
Considerando o exemplo acima, o arquivo pdf_para_teste.pdf deverá estar contido na pasta do usuário, que fica localizada dentro do diretório upload no volume do fluig.
Caso não queira utilizar este tipo de transferência para anexo e sim a transferência via Bytes, devem ser adicionadas à estrutura, abaixo da tag <fileName>, as seguintes tags:
<fileSize> = para indicar o tamanho do arquivo
<filecontent> = que deverá conter os bytes referentes ao arquivo
Adicionando estas tags será ignorada a busca no diretório de upload do usuário, sendo considerado o arquivo contido na tag <filecontent>.
Seleciona usuário(s) e avança atividade automática.
Método:
setAutomaticDecisionClassic(String user, String password, int companyId, int processInstanceId, int iTaskAutom, int iTask, int condition, String[] colleagueIds, String comments, String userId, boolean managerMode, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
iTaskAutom: número da atividade automática.
iTask: número da atividade atual.
condition: número da condição da atividade automática.
colleagueIds: usuário que receberá a tarefa.
comments: comentários.
userId: matrícula do usuário que vai executar a tarefa.
managerMode: indica se usuário esta executando a tarefa como gestor do processo.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
setDueDate(String user, String password, int companyId, int processInstanceId, String userId, int threadSequence, String newDueDate, int timeInSeconds)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
userId: matrícula do usuário. Quando é Para um Grupo ou Para um Papel deve ser passado da seguinte forma: Papel: "Pool:Role:CodigoDoPapel"; Grupo: "Pool:Group:CodigoDoGrupo".
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
newDueDate: nova data de prazo da tarefa. Exemplo: "2014-08-20".
timeInSeconds: quantidade de segundos após a meia noite. Exemplo: "32000".
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
setTasksComments
Altera os comentários da tarefa.
Método:
setTasksComments(String user, String password, int companyId, int processInstanceId, String userId, int threadSequence, String comments)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação.
userId: mátricula do usuário.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
colleagueIds: usuário que receberá a tarefa. Caso a solicitação esteja sendo atribuída "Para um Papel" ou "Para um Grupo", o parâmetro colleagueIds deve ser informado da seguinte forma: Papel: Pool:Role:Nome_do_papel Grupo: Pool:Group:Nome_do_grupo
comments: comentários.
userId: matrícula do usuário que vai iniciar a solicitação.
completeTask: indica se deve completar a tarefa (true) ou somente salvar (false).
takeProcessTask(String user, String password, int companyId, String userId, int processInstanceId, int threadSequence)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
userId: matrícula do usuário.
processInstanceId: número da solicitação.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
takeProcessTaskByReplacement
Assume uma tarefa utilizando usuário substituto.
Método:
takeProcessTask(String user, String password, int companyId, String userId, int processInstanceId, int threadSequence, String replacementId)
Parâmetros:
user: login do usuário.
password: senha do usuário.
companyId: código da empresa.
userId: matrícula do usuário.
processInstanceId: número da solicitação.
threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.
replacementId: matrícula do usuário substituto.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
updateWorkflowAttachment
Atualiza um documento do tipo 7.
Retorna uma string contendo a descrição de sucesso ou falha da operação.
Método:
updateWorkflowAttachment(String username, String password, int companyId, int processInstanceId, String usuario, DocumentDto[] docdtos, Attachment[] attach)
Parâmetros:
username: login do usuário.
password: senha do usuário.
companyId: código da empresa.
processInstanceId: número da solicitação workflow.
usuario: usuário responsável pela edição do documento.
documents: documento ou documentos que serão publicados.
attachments: arquivo(s) anexado(s) na publicação.
Retorno: String.
Estrutura de retorno com sucesso
Estrutura de retorno com erro
Quadro 24: Métodos da WorkflowEngineService
Exemplo de utilização
Faça o download da classe ECMWorkflowEngineService.java, esta exemplifica a utilização dos principais métodos da classe WorkflowEngineService.