三方实体场景案例
少于1分钟
场景描述
- 列表数据来源于三方异构系统,比如请购单列表数据来源于yonBIP系统。
- 详情页面数据来源于三方异构系统,比如请购单详情数据来源于yonBIP系统。
- 实体中参照数据来源于三方系统,比如采购付款单上,关联选择请购单,请购单数据来源于三方。
运行效果
- 请购单列表
- 请购单列表穿透查看请购单详情,详情数据
- 采购付款单选择关联请购单,请购单来自yonBIP系统。
操作步骤
前提
已在集成连接模块配置好对应的集成接口。
三方系统 | 接口名称 | 接口地址 | 接口文档 |
---|---|---|---|
yonBIP | 请购单列表查询 | /yonbip/scm/applyorder/list | 请求参数:Body部分中有分页查询参数和排序参数及其动态扩展条件查询参数。 即接口支持分页查询。 返回参数:返回参数中包含分页信息及其总记录数信息,以及返回列表数据。 |
yonBIP | 请购单详情查询 | /yonbip/scm/applyorder/detail | 请求参数: 返回参数:请购单详情接口会返回请购单主信息及其请购单子表信息。 |
注意事项
- 列表查询接口重点关注是否支持分页查询、查询条件设置、排序设置,因为这意味着需要传递给三方需要查询的分页数据、查询字段、排序规则,且接口返回的列表也是符合查询条件、排序规则的当前页数据。
- 详情查询接口重点关注返回数据是否有主子孙结构数据,因为需要考虑详情单据对应子孙数据逻辑处理。
核心逻辑
- 在应用中创建同字段的三方实体;
- 创建的三方实体会自动生成需要的微流程,设计师在微流程中调用三方接口,把三方接口返回的数据输出;
- 页面上绑定三方实体的重复表查询控件会自动调用自动生成的对应微流程返回的数据展示。
第一步
-
应用添加依赖,依赖对应的集成应用。
第二步
-
新建三方实体“ 请购单 “,在对应分组下点击“ + “按钮,勾选中”第三方实体"属性。
-
新建“请购单bip"实体的字段,demo案例,仅做10个字段做演示使用。(注意:字段类型和三方接口返回类型一致,如不一致则需要做类型匹配处理)
-
如果三方实体唯一ID是文本类型,则需要再唯一列上勾选设置为”唯一”,见上图。
-
-
新建三方实体” 请购明细”,在对应分组下点击“ + “按钮,勾选中”第三方实体"属性。 说明:三方实体目前不支持子实体,所以同样是新建三方实体用来对应子实体结构,此时则需要在明细对应的三方实体中新建”请购单bip"的id字段。
-
同理新建"请购明细bip"实体的字段,添加了“请购单id"字段和”请购明细id”,并设置“请购明细id"为唯一字段。
-
如果明细需要展示行号,且三方接口有返回行号,可在明细实体中新增字段”行号"字段。
-
-
自动生成微流程
新建的三方实体会自动生成对应的微流程,进入「规则—微流程」菜单下,可见对应实体的微流程,每个三方实体会自动生成4个微流程。
- 【预制】根据ID查询{三方实体名称}
- 【预制】动态查询{三方实体名称}
- 【预制】根据ID集合查询{三方实体名称}集合
- 【预制】动态查询{三方实体名称}的总数
第三步
配置请购单列表:请购单列表数据获取会自动调用生成的微流程:【预制】动态查询请购单bip,并将该微流程的请购单列表数据给到页面。
新建请购单列表
-
进入「菜单」列表页面,以Web端为例,点击「菜单」添加按钮,添加菜单,输入菜单名称“请购单bip列表"
-
选中菜单新建页面,输入页面名称”请购单bip列表",选择页面类型为“列表类型",选择页面对应实体未”请购单bip",选择页面模板为“重复表查询"。
-
生成的页面见附图:
-
预制的”重复表查询"模板中设置了穿透查看详情页面,此时先删除的对应的重复表事件相关配置。 ①选中页面上新建按钮,在右侧属性「事件」页签中点击「删除」按钮,删除新建按钮对应的事件配置。
②选中页面上“重复表查询"控件,在右侧属性「事件」页签中对应事件点击「删除」按钮,删除新建按钮对应的事件配置,然后点击页面右上角「保存」按钮,页面保存成功
-
因为三方列表查询接口支持分页、查询条件和排序设置,按照业务需要对应设置: ①因为使用了页面模板,列表控件自动绑定了对应”请购单bip"实体,并且自动生成了部分列字段,可根据需要进行列字段的调整设置:
②启用分页
[预制]动态查询请购单bip微流程
修改【预制】动态查询请购单bip逻辑,主要在该预制微流程中添加调用yonBIP接口:请购单列表查询接口,以便从三方获取到对应的列表数据。
- 创建的请购单bip列表页面中的列表,因为配置的是”请购单bip实体",会自动调用该微流程“【预制】动态查询请购单bip"。
- 该预制微流程中,自动预制了一个节点”请购单bip的列表"变量节点,节点内容是空的,输出的时候会输出该列表,该微流程输出的列表就会直接反映到上面的“请购单bip列表"页面。 下图中结束节点输出的”分页数据",与前台“请购单bip列表"页面对应的分页数据对应,从前台列表页面点击跳转的第几页,会预制自动传递给该微流程,该微流程可获知是要查询的是第几页数据。
- 点击”编辑"按钮,编辑微流程。
-
在开始节点后添加一个”分页对象"类型变量,并把预制微流程传递的参数‘“赋值给它,以便后续可从该分页对象中获取前台页面传递的分页信息,并传递给接口。
-
三方接口查询参数是动态扩展的,我们需要组装成三方接口需要的动态查询参数。 接口文档中关于动态查询参数部分。
①创建一个动态查询参数类型的列表变量,因为接口标识是数组类型。一个查询字段是一条,多个是多条。
②组装查询条件内容:以请购单编号为例,创建一个扩展条件查询对象变量
第一个赋值参数是比较符,接口中明确的比较符是 “eq"等于。
第二个值字段需是前台列表页面客户输入的查询值,需要从前台页面传递的查询参数中获取:
前台页面传递的动态查询条件中字段的查询值:目前请通过下拉方式,即使用下图方式展开赋值,暂时不要用表达式赋值。
第三个“属性名"字段是三方接口中字段的编码:请购单编号对应的接口文档编码是code,所以field直接设置值固定为“code”。
出参名称和节点名称同步更改
③把准备好的“请购单编号查询对象"添加到”扩展条件查询列表"变量中。
注意:查询条件前台最终用户可能不会输入查询值,此时从页面上获取到的查询值是空值,如果三方查询接口对空值有自动处理,则不需要单独处理,如果三方查询接口没有做处理,则需要在逻辑中对查询空的情况添加条件处理。
在”请购单编号"查询变量前添加“分支"节点,判断”请购单编号查询值"不为空时,把“请购单查询"变量和”“修改的动态条件扩展变量““挪到不为空分支内。
④其他查询值参考”请购单编号"方式进行设置,在此不做演示。
⑤同理组装排序参数。排序参数也是列表类型动态的,如下图。
创建一个“排序对象"类型的列表变量。
创建”排序字段"类型的对象,并赋值:
添加修改列表节点,将请购单编号排序设置字段加入到排序列表变量中。
-
添加”服务”
配置入参1:页码传递,从前台列表页面的当前页数传递。
注意:V8列表传递的当前页数是从1开始,如果三方也是从1开始,则不需要处理;如果三方是从0开始,则用前台传递的当前页数减1再传递给三方接口。
配置入参2:每页记录数,从前台列表页面的当前页数传递。
说明:每页记录数需要使用从前台列表页面传递的值,是因为最终用户可能会切换每页记录数,比如从10切换为100。
配置入参3:排序字段,将组装的排序字段列表变量对应赋值。
配置入参4:排序字段,将组装的排序字段列表变量对应赋值。
-
把“请购单列表查询"接口返回的内容,解析处理。
- 可任意添加一个节点,看一下接口出参的结构。比如添加一个”分支"节点,确定结构后可删除该节点。
-
按照以上出参结构,需要创建一个同结构对象变量接收“data”。
-
添加“数据转换"节点,可一次性把请购单出参中““请购单列表”“数据转换到”请购单"实体对应的列表数据。
属性设置1:来源数据设置
属性设置2:实体对象—当前应用下—请购单bip实体。
-
”请购单列表查询"接口返回了总页数和总记录数,需要返回给到“请购单列表"页面对应的分页对象中,因为总共多少条数据,和总页数都需要三方返回。 添加”修改变量"节点,修改分页对象,把三方返回的总页数和总记录数进行更新。
总记录数设置:点击参数映射右侧输入框”+“号。
-
最后添加“修改列表"节点,把映射后的”请购单列表"数据赋值给默认的“请购单列表"变量。
-
结束节点,出参更新设置:分页对象更改设置。
[预制]动态查询请购单的总数微流程
对于三方实体”请购单列表"页面中,如果开启了统计数属性,且筛选方案设置了至少2个时,见下图属性,则该统计数的数值来源是通过调用“[预制]动态查询请购单的总数"微流程获取到的。
即如果列表没有配置筛选方案则不需要配置此微流程。
此时需要配置”[预制]动态查询请购单的总数"微流程逻辑。
-
预制节点和输入、输出内容:
点击「编辑」按钮,编辑该微流程。 入参:点击预制的节点“查询的总数"节点,按照下图操作可查看输入时”请购单bip的动态查询条件”。即筛选方案中或者列表前台页面中可以设置的查询条件。 对应返回的总数,如果前台页面有搜索条件,返回的总数会动态变化,所以有该查询条件对象。 预制“查询的总数"整数类型变量节点,同时作为结束节点的出参。
-
如三方有对应单独的查询总数的接口,则微流程配置对应查询总数的接口,如在查询列表接口中可返回总数,则调用列表查询接口得到总数。
快捷窍门:如是通过查询列表接口中可返回总数,且已经配置了”[预制]动态查询请购单bip"微流程,可直接去“预制]动态查询请购单bip"复制对应节点。 如果没有配置[预制]动态查询请购单bip微流程,则见”[预制]动态查询请购单bip微流程"部分查询条件设置部分。 注意:过滤条件要按照自己实际情况进行配置哈,此处仅为演示能力。
回到”[预制]动态查询请购单bip"微流程中,进入编辑状态,勾选“扩展条件查询列表相关节点”,见如下附图。
- yonBIP没有单独按照查询条件查询总数的接口,所以我们直接使用列表查询的接口。 添加”自定义服务"节点,配置调用“请购单列表"查询接口。
因为yonBIP列表查询接口有必填参数页面和每页条数,这里我们可以偷懒给页面和每页条数默认设置1,和20,因为该微流程仅用来查询没有切换到的筛选方案的总数。
-
接口返回数据,需要创建同结构变量进行接收。
-
把接口查询到的总数复制给预制的整数变量”查询的总数"变量。
运行效果
-
运行页面:
-
可通过日志查看微流程是否执行。
第四步
配置请购单详情页面,以便从请购单列表穿透到请购单详情页面。请购单详情页面获取会自动调用生成的微流程:【预制】根据ID查询请购单bip微流程,并将该微流程的请购单详情数据给到详情页面。
新建请购单详情页面
-
进入「菜单」列表页面,以Web端为例,在菜单“请购单bip列表"下添加详情页面。
-
请购单详情,会有请购明细,在页面上添加请购明细。 拖拽”重复表查询"控件到详情页面中。
重复表查询控件绑定“请购明细bip"实体,并设置相关属性。请购单详情查询接口中返回请购明细数据,明细无分页信息,所以控件不设置分页和对应查询内容。
说明:请购明细展示不展示子表id和主信息id,所以对应字段可设置对应隐藏字段。
因为三方实体不支持主子结构,所以请购单和请购明细是创建的两个没有关系的实体,所以可以把请购明细当成独立的三方列表去获取,只不过获取的是当前请购单详情的请购明细数据。
选中重复表查询控件,设置过滤条件为”请购单ID=页面入参.ID”,因为是从请购单列表穿透到详情页面的,所以请购单ID从列表页面传递过来。
[预制]根据ID查询请购单bip微流程
修改【预制】根据ID查询请购单bip微流程逻辑,在“请购单详情页面"中,请购单详情主信息的数据通过调用该微流程获取到。
预制微流程内容。
-
预制输入:点击编辑,通过后续节点可知晓输入内容是:实体ID,见附图。
-
预制节点:”请购单bip"变量节点,节点内容是预制是空的,类型是实体对象:”请购单bip”,同时该节点会作为输出内容。
预制输出:
配置微流程逻辑,主要在该预制微流程中添加调用yonBIP接口:请购单详情查询接口,以便从三方获取到对应的详情数据。
注意:如果三方唯一标识不是长整数类型,则不需要如下节点配置,否则需要按照如下配置进行。、
-
前提:实体上对应唯一标识字段需要设置为唯一。
-
添加节
参数入参设置:
出参描述说明:是“请购单bip"实体设置的唯一标识字段。
设置节点出参名称:
-
添加”自定义服务"节点,配置调用“请购单详情查询"接口。
-
创建同结构对象变量接收接口返回内容。
-
计划