
Objetivo
O objetivo deste guia é apresentar o conceito de personificação, e listar os serviços que receberam o controle de personificação.
Conceito
Personificação é quando uma pessoa executa ações em nome de outra. A plataforma possui serviços (APIs, datasets, webservices) que permitem que o usuário do contexto seja diferente do usuário logado. Por exemplo, o usuário acessa a API de workflow com o id "user1" e chama o método que movimenta uma solicitação workflow. Porém esse método tem um parâmetro que informa a partir de qual usuário será feita a movimentação, nesse caso pode ser passado o id "user2", possibilitando que o user1 consiga movimentar uma solicitação que está com o user2.
Esse recurso é essencial para automatizar alguns processos, no caso de ter um usuário "Integrador" que movimenta as solicitações atrasadas automaticamente.
Utilização
O recurso de Personificação está disponível no TOTVS Fluig Plataforma a partir da atualização 1.7.1 (Crystal Lake).
É possível controlar as permissões de acesso deste recurso pelo Painel de controle da plataforma, acessando o item Permissões e buscando a seguinte configuração:
- Tipo: Personification
- Nome do recurso: Personificação de usuários
- Permissão: Personificar: Quando ativada, permite executar ações utilizando o ID de outro usuário.
Itens que receberam controle de personificação
Além de ter a permissão liberada, é necessário que o serviço desejado tenha sido implementado com o controle de personificação. Confira a seguir a lista completa de webservices, APIs e datasets que suportam esse recurso:
Services
Webservice | Método | Observações |
---|
ECMCardIndexService | - getCardIndexesWithoutApprover
- updateSimpleCardIndex
- updateSimpleCardIndexWithDataset
- updateSimpleCardIndexWithDatasetAndGeneralInfo
- updateSimpleCardIndexWithRelatedDatasets
- createSimpleCardIndex
- createSimpleCardIndexWithDataset
- createSimpleCardIndexWithDatasetPersisteType
- createSimpleCardIndexWithRelatedDatasets
- getCardIndexContent
- getActiveCardIndex
|
|
ECMCardService | |
|
ECMColleagueGroupService | - getColleagueGroupsByColleagueId
- getColleagueGroup
- deleteColleagueGroup
|
|
ECMColleagueService | - getColleague
- colab
- removeColleague
- activateColleague
|
|
ECMDashBoardService | - Todos os métodos menos o getUrlEcm que não usa personificação
|
|
ECMDatasetService | |
|
ECMDocumentService | - getActiveDocument
- getDocumentContent
- getDocumentVersion
- getDocumentByExternalId
- createSimpleDocument
- findMostPopularDocuments
- findMostPopularDocumentsOnDemand
- deleteDocument
- destroyDocument
- findRecycledDocuments
- restoreDocument
- copyDocumentToUploadArea
- updateSimpleDocument
- moveDocument
- updateGroupSecurityType
- destroyDocumentApproval
- approveDocument
|
|
ECMFavoritesService | - findFavorites
- findFavoritesProcess
- addProcessToFavorites
- addDocumentToFavorites
- removeFavoriteDocument
- removeFavoriteProcess
- isFavoriteDocument
|
|
ECMKnowledgeService | |
|
ECMOutstandingService | |
|
ECMReportService | |
|
ECMSearchDocumentServiceService | - searchDocuments
- searchFavoritesDocuments
- advancedSearchDocuments
- advancedSearchDocumentsWithMetadata
|
|
ECMWorkflowEngineService | - cancelInstance
- cancelInstanceByReplacement
- calculateDeadLineHours
- calculateDeadLineTime
- getAttachments
- getAvailableProcess
- getAvailableProcessOnDemand
- getCardValue
- getInstanceCardDataResponse
- startProcess
- startProcessClassic
- saveAndSendTask
- saveAndSendTaskByReplacement
- saveAndSendTaskClassic
- searchProcess
- setAutomaticDecisionClassic
- takeProcessTask
- takeProcessTaskByReplacement
- setTasksComments
- createWorkFlowProcessVersion
- releaseProcess
- getHistories
- getActualThread
- getAllActiveStates
- getAvailableStates
- getAvailableUsers
- getAllProcessAvailableToExport
- getAllProcessAvailableToImport
- getAvailableUsersStart
- getAvailableUsersStartOnDemand
- getProcessFormId
- getWorkFlowProcessVersion
|
|
ECMOutstandingService | |
|
ECMDashBoardService | |
|
ECMColleagueReplacementService |
|
|
ECMCardIndexService | - getAttachmentsList
- getCustomizationEvents
- getFormDatasets
- getFormFields
|
|
APIs
API | Método | Observações |
---|
/ecm/document | |
|
/2.0/documents | - createDocument
- createPrivateDocument
- updateFile
|
|
/v2/documents | - (PATCH) /{id}/users/{userCode}/hits
- (PATCH) /{id}/users/{userCode}/version/{version}/hits
|
|
/2.0/favorites | - findFavoritesDocuments/{colleagueId}/
- findFavoritesProcess/{colleagueId}/
|
|
/2.0/folderdocuments | |
|
/2.0/security | |
|
/2.0/users | |
|
hAPI | - publishWorkflowAttachment
|
|
Endpoints
Veja a seguir quais os endpoints que recebem personificação:
- Content Management, que envolve a parte ECM/Documentos.
- Process Management, que envolve a parte de BPM/Processos.
Para consultar as APIs disponíveis, acesse aqui.
Endpoint | Usercode | Observações |
---|
Process | - ProcessRest-GET /v2/processes/{processId}/activities
- ProcessRest-GET /v2/processes/{processId}/process-versions/{processVersion}/activities
- ProcessRest-GET /v2/processes/{processId}/process-versions/{processVersion}/requests
- ProcessRest-GET /v2/processes/{processId}/process-versions/{processVersion}/requests/tasks
- ProcessRest-GET /v2/processes/{processId}/requests
- ProcessRest-GET /v2/processes/{processId}/requests/tasks
- ProcessRest-GET /v2/processes/{processId}/requests/tasks/resume
- ProcessRest-POST /start
|
|
Request | - RequestRest-GET /v2/requests/{processInstanceId}/tasks
- RequestRest-GET /v2/requests/{processInstanceId}/possible-assignees
- RequestRest-POST /v2/requests/{processInstanceId}/move
- RequestRest-GET /v2/requests/{processInstanceId}/histories
- RequestRest-GET /v2/requests/{processInstanceId}/attachments/{attachmentSequence}/download
- RequestRest-GET /v2/requests/{processInstanceId}/attachments/download
- RequestRest-GET /v2/requests/{processInstanceId}
- RequestRest-GET /v2/requests/{processInstanceId}/activities
- RequestRest-GET /v2/requests/{processInstanceId}/attachments
|
|
Activities | - ActivityRest-GET /v2/activities
|
|
Tasks | |
|
DOCUMENT MANAGEMENT - ECM (UTILIZANDO USERCODE)
- Documents /v2/documents/{id}/users/{userCode}/hits
- Documents /v2/documents/{id}/users/{userCode}/version/{version}/hits
Datasets
Chamadas de datasets que usem:
- CardIndexDataset
- MetaListDataset
Exemplo de uso via API Rest
Para utilizar a personificação via API Rest é necessário acessar o serviço. Ao acessar a ferramenta configure os endpoints que deseja acessar.

http://seudominio/process-management/api/v2/processes/seguranca/start
- O endpoint utilizado no exemplo serve para iniciar uma solicitação.
Configurando o token do usuário
Exemplo utilizando jwt.token.

O que é jwt.token? JWT é um padrão aberto de mercado definido pela RFC 7519 como um formato compacto e auto suficiente para transmitir informações entre as partes como um objeto JSON. |
Dependendo do endpoint que esteja consumindo, será necessário passar as informações no body da requisição. |
Configurando a personificação
Abaixo vamos mostrar o passo a passo para a configuração do recurso personificação.
01. Na aba Headers adicione a chave "X-Personification-UserCode" ** e o valor "usuárioComPermissãoDePersonificação”.
A chave utilizada para a configuração é X-Personification-UserCode |
02. Após realizar as configurações, qualquer ação realizada, será feita no nome do usuário que foi utilizado na configuração de personificação.

Estou realizando o login com o usuário A, mas iniciei uma solicitação com o usuário B, logo, ao acessar a Central de Tarefas do usuário B a solicitação estará inicializada por ele. |
Abaixo temos alguns exemplos visuais utilizando a personificação