本案例涉及到对1对N数据的操作,在页面流调用新增逻辑流处设置断点,通过调试数据可以更好的理解数据的传递方法及数据在数据上下文中的存储格式。
1. 在资源管理器视图中展开“EOSTrippingcom.primeton.relationmgr展现页面流com.primeton.relationmgr”,双击下面的ationmgr.flowx,选中页面流编辑视图中“新增操作”,按F4设置断点。
2. 右键单击relationmgr.flowx,在弹出的菜单中选择“复制URL”,并粘贴至IE浏览器的整个地址栏中,回车,运行程序。如图4-53所示。
3. 这时程序已经执行完“模拟登录”,sessionContext中的userRole被赋值为1,所以查询页面显示出了【新增机构和员工】按钮。点击该按钮,示新增页面,如图4-54所示。在页面中输入机构信息和员工信息,点击【保存】按钮,发起一次HTTP请求。程序进入页面流中,停留在“新增操作”处。页面流引擎根据请求对象信息产生了requestContext数据区,机构和员工的信息就存放在requestContext区的org节点下面。在flowContext中也可以查看到查询条件criteria和分页信息page。从右上角的“EOS变量”中可以查看到页面流的三个数据上下文,以及各个区的数据,如图4-59所示。
4. 点击左边调试中的单步跳入按钮“”,程序进入到逻辑流中,停留在“开始”图元处,这时逻辑流中产生MUO数据上下文muoContext和逻辑流下文bizContext。页面流中requestContext区的org传到bizContext中,sessionContext区的userRole和userOrgID传到muoContext中。如图4-60所示。这时org中的主键orgid和两组emp中的主键empid,外键orgid都未产生值。
5. 点击单步跳过按钮“”,程序运行到“级联保存”,将bizContext中的org作为输入参数。再次点击单步跳过按钮“”,程序执行完级联保存,运行到“结束”图元,org和emp的数据被同时保存到数据库中,orgid和empid被自动赋值,如图4-61所示。
6. 再次点击单步跳过按钮“”,程序回到页面流,停留在“结束”图元处。逻辑流执行结束后muoContet和bizContext被销毁。页面流的requestContext中的org信息被bizContext中保存后的org信息更新,如图4-62所示。
7. 点击调试工具中的单步跳过按钮“”或者继续按钮“”,程序运行结束。页面流中的requestContext和flowContext被销毁,但是因为仍在一个HTTP会话中,sessionContext还存在。打开IE浏览器可以看到程序回到查询页面,点击【查询】,新增数据被显示出来,如图4-63所示。