VBCS中结合多个数据源显示结果

整体思路

  1. 针对每个数据源,创建REST Service。
  2. 在页面上,针对每一个数据源,创建一个ADP(Array Data Provider)变量。查询的时候,执行以下步骤:
    • 调用相应的REST Service
    • 调用完成后,将结果通过assign赋予ADP变量。
  3. 在页面上,针对最后要显示的表,创建一个ADP变量。该变量用来显示结合后的结果集。
  4. 编写JS函数,将第二步创建的ADP变量作为输入参数输入到函数中。通过多层循环,将结合后的结果集作为数组返回。

实现步骤

  • 这里我们先用ORDS创建2个REST Service,一个基于DEPT部门表,另一个基于EMP员工表。
    • 部门表对应的REST Service:

    • 员工表对应的REST Service:

    • 新建空的VBCS应用

    • 新建根据DEPT和EMP的REST Service,分别新建VBCS的Service:
      • 新建DEPT的Service,填入REST URL

      • 自动解析得到Server信息,无需修改

      • 输入有意义的Server Name

      • 测试REST Service,将返回Response报文保存为Example,完成创建。

      • 新建EMP的Service是类似的,略。完成后的状态如下:

  • 新建页面(略)
  • 在页面上新建2个ADP,分别用来存放DEPT的数据和EMP的数据。此处以DEPT为例,首先新建对象类型的Type
  • 在新建的Type下面,根据DEPT的表定义,新建3个字段deptno、dname和location
  • 新建deptType类型的变
  • 为新建的ADP变量指定Item Type,选择表的主键或者唯一字段作为Key Attribute
  • 重复以上步骤,给EMP表也创建相应的ADP
  • 在页面上再新建一个ADP,用来存放join之后的DeptEmp数据。因此这个ADP需要包含DEPT和EMP字段的合集。
  • 在画面上新建查询按钮
  • 对DEPT的Service进行调用
  • 调用REST DEPT API之后,将结果通过Assign的方式保存到DEPT的ADP中
  • 针对EMP,执行相同的操作
  •  

Related Posts

发表回复