Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The first user with the least assignment count will be picked as the assignee of the current assignment. You may use this as a reference to your future coding needs.

Thai

คุณสามารถใช้บล็อกรหัสนี้และใส่ลงใน Bean Shell for Process Participant ใน Map Participants to Users

ในส่วนของรหัสนี้เราจะรับผู้ใช้ทั้งหมดจากกลุ่มที่มี ID "G-001" จากนั้นเราจะสำรวจผู้ใช้แต่ละคนและรับจำนวนการมอบหมายของผู้ใช้แต่ละคน

ผู้ใช้รายแรกที่มีจำนวนการมอบหมายน้อยที่สุดจะถูกเลือกเป็นผู้รับโอนการมอบหมายปัจจุบัน คุณสามารถใช้สิ่งนี้เป็นการอ้างอิงถึงความต้องการการเข้ารหัสในอนาคตของคุณ

Code Block
languagejava
import java.util.Collection;
import org.joget.apps.app.service.AppUtil;
import org.joget.directory.model.User;
import org.joget.directory.model.service.ExtDirectoryManager;
import org.joget.workflow.shark.model.dao.WorkflowAssignmentDao;
 
ExtDirectoryManager directoryManager = (ExtDirectoryManager) AppUtil.getApplicationContext().getBean("directoryManager");
WorkflowAssignmentDao workflowAssignmentDao = (WorkflowAssignmentDao) AppUtil.getApplicationContext().getBean("workflowAssignmentDao");
//set groupId
String groupId = "G-001";
//Get users of the group using directory manager, sorted by firstName
Collection userList = directoryManager.getUsers(null, null, null, null, groupId, null, null, "firstName", false, null, null);
//initialize
String assignTo = "";
int lowestAssignmentCount = -1;
Collection assignees = new ArrayList();
//loop through the users
for(Object u : userList){
	User user = (User) u;
	
	//get open assignment count of the current user
	//refer to https://github.com/jogetworkflow/jw-community/blob/5.0-SNAPSHOT/wflow-wfengine/src/main/java/org/joget/workflow/shark/model/dao/WorkflowAssignmentDao.java#L198 to refine search conditions
	int userAssignmentSize = workflowAssignmentDao.getAssignmentSize(null, null, null, null, u.getUsername(), "open");
	
	//System.out.println(u.getUsername() + " has " + userAssignmentSize);
	if(lowestAssignmentCount == -1){
		//assign to the first person first
		lowestAssignmentCount = userAssignmentSize;
		assignTo = u.getUsername();
	}else if(userAssignmentSize < lowestAssignmentCount){
		assignTo = u.getUsername();
		lowestAssignmentCount = userAssignmentSize;
	}
}
//System.out.println("Will assign to " + assignTo);
assignees.add(assignTo);
return assignees;

Related Elements

Thai

องค์ประกอบที่เกี่ยวข้อง

...