(1) 创建逻辑流
逻辑流用来做查询操作,需要输入查询条件和分页信息,最后返回查询结果。
在资源管理器视图,展开“EOSTrippingcom.primeton.relationmgr构件”,右键选中“com.primeton.relationmgr”包,在弹出的菜单中选择“创建逻辑构件”,在弹出的对话框中输入名称:relationmgr,点击【下一步】,在逻辑构件接口编辑器窗口中增加接口名称和输入输出参数。由于一个逻辑流就相当于一个Java类中的一个方法,这里就是设置逻辑流的名称和输入输出参数。参数设置如图4-27所示,点击【完成】就创建好了逻辑流queryRelation。
在资源管理器视图中,展开“EOSTrippingcom.primeton.relationmgr构件 com.primeton.relationmgrrelationmgr.componentType”,就可以看到刚新建的逻辑流queryRelation(criteriaType, PageCond),双击打开后,在编辑视图中,双击空白处,就可以看到图4-27中设置的输入参数和返回值。
(2) 设计逻辑流
根据需求分析,我们首先要根据角色进行判断:如果角色为1,即系统管理员,查询结果只要满足页面传过来的的查询条件就可以,则直接通过查询实体查询;如果角色不为1,即为机构管理员,只能查询他所在机构的员工信息,则要将他的机构ID新增为一个查询条件后,再通过查询实体查询。
从选用板上【高级】一栏中拖拽“空操作”,它没有任何意义,通常用于汇集连线的操作功能,这里我们用它来做分支判断,从【基本】一栏中拖拽一个“赋值”图元,用来新增查询条件,再从构件库“com.eos.foundation运算逻辑DatabaseExt”中找到queryEntitiesByCriteriaEntityWithPage运算构件,拖拽至逻辑流中,用选用板上的“连接线”连接起来。最后拖拽“注释”,描述逻辑流实现的功能。如图4-28所示。
3) 设置参数 “增加orgID限制”的参数设置如图4-29所示。由于在页面上已经有员工姓名和性别这两个查询条件,所以这里_expr对象的数组下标应该是3。如果写成1或2,就会替换页面上传过来的查询条件。m:userOrgID的值是1,则这个赋值操作表示增加查询条件:orgid=1。
“查询员工和机构信息”的参数设置如图4-30所示。表示将查询条件criteria和分页信息page作为queryEntitiesByCriteriaEntity方法的输入参数,查询后的结果放在对象数组list中,并且要将这个查询结果返回到页面流中。由于在图4-27中已经在逻辑流中定义了返回值的名称,那么只要运算逻辑的返回值和逻辑流的返回值名称一致,就表示将运算逻辑的返回值作为逻辑流的返回值返回到页面流中。
“系统管理员”连线上的参数设置如图4-31所示。由于这里要判断用户的角色,在“角色判断”图元后面就有多根连线,这时必须有一条“默认连接”线,即图4-28中不带*号的“机构管理员”连线。对非默认连接线必须设置连线条件,图4-31中的条件是MUO数据下文中的userRole等于1,即当userRole等于1时,执行“查询员工和机构信”操作,当不满足这个条件时,执行“增加orgID限制”。