Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
使用多人审批 [多重审批 v2 (线程安全)] 同时在父进程和子进程中都有表单。你有2个不同的进程,而子进程批准 不包含数据库中的任何行,所以它不能与仅包含收件箱的数据收件箱链接,如示例中所示,它仅从SHKAssignmentsTable获取数据,而没有来自表单的任何数据
你可以简单地在用户视图中使用INBOX,但是这不会给用户提供任何信息,我想给他们提供所有在应用程序中提供的相关信息,同时保留从一个数据列表为两个进程运行动作的机会。
在申请中创建新工具
使用预设表单数据工具集ID用于审批表单,这会导致在表中创建具有正确进程ID的行(该数据列表收件箱用于通过SHKAssignmentsTable配对分配)。在字段ID中,我们分配#assignment.processId#,用于审批表单。
忽略“多用户审批表”,这是我申请的不同的名称,应该有表格链接到审批。
在主流程(应用)中的表单应用添加隐藏的字段childIDs,所以JW在表中创建此列。
将以下行添加到生成批准工具中。这将把所有的子进程ID保存到childIDs列中,这样我们就可以为datalist收件箱引用。
Connection con = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jwdb?characterEncoding=UTF-8", "root", "/////////////"); if (!con.isClosed()) { String sql = "UPDATE jwdb.app_fd_multiApproval_applications SET c_childIDs = ? WHERE id = ?"; PreparedStatement stmt = con.prepareStatement(sql); String concated = approvalInstanceIds.substring(0, approvalInstanceIds.length() - 1); //cut out last "," stmt.setString(1, concated); stmt.setString(2, "#assignment.processId#"); stmt.execute(); } } catch (Exception ex) { System.err.println("Exception: " + ex.getMessage()); } finally { try { if (con != null) con.close(); } catch (SQLException e) { System.err.println("Exception: " + ex.getMessage()); } }
数据绑定器:JDBC
建立与jwdb的连接
现在把你自己的查询写入这2个进程的UNION数据中。
这是我使用的一个例子。
select jwdb.app_fd_multiApproval_approvals.id,NR.dateCreated, NR.dateModified, NR.c_value, NR.c_number, NR.c_doc_org, NR.c_requester_name, NR.c_priority from (select 1 n union all select 2 union all select 3 union all select 4 union all select 5) numbers INNER JOIN jwdb.app_fd_multiApproval_applications NR on CHAR_LENGTH(NR.c_childIDs) -CHAR_LENGTH(REPLACE(NR.c_childIDs, ',', ''))>=numbers.n-1 JOIN jwdb.app_fd_multiApproval_approvals ON SUBSTRING_INDEX(SUBSTRING_INDEX(NR.c_childIDs, ',', numbers.n), ',', -1) COLLATE utf8_general_ci = jwdb.app_fd_multiApproval_approvals.id where c_childIDs != '' and NR.c_requester is not null UNION select id, dateCreated, dateModified,c_value, c_number, c_doc_org, c_requester_name, c_priority from jwdb.app_fd_multiApproval_applications where jwdb.app_fd_multiApproval_applications .c_requester is not null
P.S. 我想提供我的应用程序,但它是相当强大的,这只是其中的一小部分,我会尝试尽快提供编辑的 多重审批 v2 (线程安全) 和数据列表任务箱。