Nesse post eu vou mostrar como recuperar o usuário logado no BPM Workspace.
Para recuperar o usuário logado de uma aplicação ADF Comum basta utilizar o código abaixo:
HttpServletRequest request = (HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequest()); String usuarioLogado = request.getUserPrincipal().getName();
Porém esse código não funciona para recuperar o usuário logado no BPM Workspace.
Para recuperar o usuário logado no BPM Workspace basta utilizar o trecho de código abaixo:
private String getUsuarioLogado(){ String userId = null; try { String contextStr = ADFWorklistBeanUtil.getWorklistContextId(); String lookupClient = ADFWorklistBeanUtil.getLookupClient(); IWorkflowServiceClient wfSvcClient = TaskFlowPropsUtil.getWorkflowServiceClient(lookupClient); ITaskQueryService queryService = wfSvcClient.getTaskQueryService(); IWorkflowContext wfContext = queryService.getWorkflowContext(contextStr); userId = wfContext.getUser(); } catch (Exception e) { e.printStackTrace(); } return userId; }
Os imports para essas classes:
import oracle.bpel.services.workflow.client.IWorkflowServiceClient; import oracle.bpel.services.workflow.client.worklist.util.TaskFlowPropsUtil; import oracle.bpel.services.workflow.worklist.adf.ADFWorklistBeanUtil; import oracle.bpel.services.workflow.worklist.adf.InvokeActionBean; import oracle.stellent.ridc.IdcClientException; import oracle.bpel.services.workflow.query.ITaskQueryService; import oracle.bpel.services.workflow.verification.IWorkflowContext;
Todos essas classes estão no Bpm-services.jar que se encontra em ${JDEVELOPER_HOME}/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1
Com isso você já conseguirá recuperar o usuário logado no BPM Workspace.
Até o próximo post.