import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import java.util.ArrayList;
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.model.WorkflowActivity;
import org.joget.commons.util.LogUtil;
public Collection getAssignees(WorkflowActivity activity) {
// retrieve connection from the default datasource
Connection con = null;
String deptId = "";
try {
DataSource ds = (DataSource)AppUtil.getApplicationContext().getBean("setupDataSource");
con = ds.getConnection();
if(!con.isClosed()) {
PreparedStatement stmt = con.prepareStatement("SELECT DivisionCode FROM dbo.employee WHERE EmployeeID = ?");
stmt.setObject(1, "#currentUser.username#");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
deptId = rs.getObject("DivisionCode").toString();
}
}
}catch(Exception e) {
LogUtil.error("getAssignees", e, "Error Query");
} finally {
//always close the connection after used
try {
if(con != null) {
con.close();
}
} catch(SQLException e) {/* ignored */}
}
Collection assignees = new ArrayList();
ExtDirectoryManager directoryManager = (ExtDirectoryManager) pluginManager.getBean("directoryManager");
;
//Get users using directory manager
Collection userList = directoryManager.getUsers(null, null, deptId, null, null, null, null, "firstName", false, 0, 1);
for(Object u : userList){
User user = (User) u;
assignees.add(user.getUsername());
}
return assignees;
}
//call getAssignees method with injected variable
return getAssignees(workflowActivity);