10-09-2017 01:51 PM
I have been researching and found out that this is the best way to current usr info from activiti DB. However, it comes out to be null.
This is my code..
First, I get userID
List<IdentityLink> identityLink = processEngine.getRuntimeService().getIdentityLinksForProcessInstance(processID);
Iterating through this I get userID
if (identityLink != null){
for (IdentityLink link : identityLink){
userID = link.getUserId();
logger.info("getProjectID: userID ==== is " + userID);
}
}else{
logger.info("getProjectID: userID is NULL ");
}
Now I try to get userinfo, this is null.. Can someone help?
User user = processEngine.getIdentityService().createUserQuery().userId(userID).singleResult();
if (user !=null){
logger.info("FirstName ======= " + user.getFirstName() );
logger.info("LastName ======= " + user.getLastName() );
logger.info("Email ======= " + user.getEmail() );
logger.info("Password ======= " + user.getPassword() );
}else{
logger.info("user is ......................... NULL ");
}
10-11-2017 05:09 PM
Yeah, now it makes sense. When you add an attach file option in the form, the next task will turn async. That means it is no longer executed under the logged in user context! Hence you get null. Try executing your logic from an execution listener attached to the start activity or on the sequence flow if you really need the user context. It is not a bug, it is working as designed.
10-09-2017 02:04 PM
btw,
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
10-09-2017 02:17 PM
This returns null as well..
List<String> userInfos = processEngine.getIdentityService().getUserInfoKeys(userID);
10-10-2017 02:57 PM
which version are you using? The Community version or the Enterprise version (Alfresco Process Services)?
10-11-2017 11:20 AM
Thanks for the response.
I was developing on community but server is enterprise. I have now switched development to Enterprise and using this command to retrieve userinfo but it still throws null pointer.. I have following in my file
import com.activiti.service.api.UserService;
@Autowired
static UserService userService;
User user = userService.findUser(Long.parseLong(userID)); (Getting UserID from IdentityLink code above.
Explore our Alfresco products with the links below. Use labels to filter content by product module.