在复杂的数据处理场景中,我们总有这样的烦恼:多个操作如何高效且一致地完成?别怕,编排服务与通用事务来救场!
通用事务支持在同一个事务的数据源中,配置多个增删改的接口,实现“要么全部成功,要么全部失败回滚”的操作,有效避免数据不一致的风险。
在这种场景下,如果仅依靠单个接口逐一处理,不仅效率低下,而且容易出现数据不一致的问题。
分别配置学生基本信息与班级信息插入数据的通用接口。
单击请求示例或返回示例后的感叹号,查看请求示例和返回示例的样式。
其中key值,则为两个通用接口的server_id。
输入服务名称,参数key默认,添加输入参数即插入新增数据所需要的字段信息,此处添加的输入参数会在服务编排的开始节点中体现出来。
场景分析:新增数据时,若存在data_id重复的现象出现时,接口返回报错,主键值新增失败。
第一步:自动生成ID
S2 id生成器,可按要求自动生成class_id,用作班级信息的data_id来使用.
第二步:数据读取重复数据
S3 数据读取,根据我们输入的学生data_id查询学生信息表中是否存在相同的数据,输出变量为res。
第三步:解析获取重复数并判断
所以我们需要用变量计算(S11)来解析这个对象数组,返回重复数量。同时,分支判定(S5)判断重复数量是否为0。
第四步:依据判断结果进行对应数据操作
若num!=0,则主键重复了,添加一个新的变量计算 (S9),用以定义返回的报错信息,固定值:主键重复新增失败。
若num=0,则主键未重复,使用数据操作(S6),向学生信息表中新增一条数据。
第五步:新增班级信息
已经通过数据操作向学生信息表插入了数据,接下来数据操作(S12)新增班级信息。
第六步:结束,输出返回结果
根据分支判定不同的方向,结束时添加两个结束节点,返回不同的信息。