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.