CN115905353A - 关联数据导出、导入方法、装置、设备及存储介质 - Google Patents
关联数据导出、导入方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115905353A CN115905353A CN202211392160.6A CN202211392160A CN115905353A CN 115905353 A CN115905353 A CN 115905353A CN 202211392160 A CN202211392160 A CN 202211392160A CN 115905353 A CN115905353 A CN 115905353A
- Authority
- CN
- China
- Prior art keywords
- data
- associated data
- directed graph
- exporting
- resource list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种关联数据导出、导入方法、装置、设备及存储介质,可适用于各种企业资源计划系统;该关联数据导出方法包括:基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;对关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出;另外,在该导出方法的基础上,对导出的资源列表进行解析并按预设规则依次导入,以提供对应的关联数据导入方法。本申请提供的方法,基于有向图描述数据间的引用关系,可支持一键导出单据以及依赖的全部基础数据;并支持异步导出,实时查看导出进度,大大降低了数据迁移的难度,减少人力成本,不仅效率高,且可实施性强。
Description
技术领域
本申请涉及集成服务技术领域,尤其涉及一种关联数据导出、导入方法、装置、设备及存储介质。
背景技术
数据管理工作中,数据迁移是最为常见的场景之一。大量的方案或配置信息在迁移时需要找到一种导出导入方法,能够把主资源关联的数据通过自动溯源的方式实现一次性导出导入,从而提高数据迁移过程的效率。
目前,把一套关联多个基础资料的集成方案从开发环境切换到测试或生产环境中,一般有两种方式:一是由实施人员配置或者excel导出导入;二是通过预置SQL导入导出。然而,通过标准的excel引入引出功能,往往只能实现某类业务单据的数据引入引出;当存在多个单据时,需要通过人工导入的方式按需依次引入,在引出时需要引出多个excel,不仅操作繁琐,局限性较强。而通过预置SQL导入导出的方式,对于基础资料等包含引用关系的数据,以及分录引用、子分录引用基础资料的场景,没有实现数据自动引出,也无法支持复杂层级结构的导出,由于该方式下迁移数据涉及多张关联关系表且有先后顺序依赖,实施过程也极其复杂,可实施性较差,不利于推广应用。
发明内容
本申请的目的在于提供一种关联数据导出、导入方法、装置、设备及存储介质,至少解决了现有的数据迁移方式存在的操作繁琐、局限性强、实施难度大、效率低中的技术问题之一。
为实现上述目的,第一方面,本申请提供一种关联数据导出方法,包括:
基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;
对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
在第一方面的一些实现方式中,所述采用拓扑排序方式遍历有向图中的每个节点,包括:
遍历动态对象并添加到有向图的顶点位置,判断添加是否成功;
若添加成功,则循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点;
若添加不成功,则返回执行遍历动态对象并添加到有向图的顶点位置步骤;
当添加完所有动态对象后,对有向图进行拓扑排序,并按被依赖顺序输出节点。
在第一方面的一些实现方式中,所述循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点,包括:
若动态对象的属性为基础资料且图中包含引用关系,则忽略;否则将其添加到有向图的顶点,并添加依赖边;
若动态对象的属性为分录,则获取分录的所有字段属性,递归调用循环遍历动态对象的属性步骤;
若动态对象的属性被限制为不能导出的基础资料,则忽略。
在第一方面的一些实现方式中,所述生成具有时序关系的资源列表并导出,包括:
将资源依次序列化为Map对象,若有后置插件则执行,实现数据的预处理;
将Map对象转为JSON字符串,对资源之间进行分割,通过输出流下载为文本、Excel或其他自定义格式的文件;其中,
输出包含主资源和引用资源的List,并按顺序排列。
在第一方面的一些实现方式中,当执行所述生成具有时序关系的资源列表并导出步骤时,可通过自定义扩展字段,实现间接引用字段一并导出。
第二方面,本申请还提供一种关联数据导入方法,引用如上任一项所述的关联数据导出方法,还包括:
对导出的资源列表进行解析,并按预设规则依次导入。
在第二方面的一些实现方式中,所述对导出的资源列表进行解析,并按预设规则依次导入,包括:
解析资源列表中的文件数据,将JSON数据转为Map对象后,序列化转为动态对象;其中,所述动态对象中的数据包括主资源和引用资源;
判断是否有插件干预,若有则执行插件处理;若无,则执行导入操作,调用动态对象中的数据并进行保存。
在第二方面的一些实现方式中,所述执行导入操作,包括:
当动态对象为主资源时,导入模式设为覆盖模式;
当动态对象为引用资源时,导入模式设为新增模式,或同时支持新增模式和覆盖模式;其中,
覆盖模式为当导入数据有新增时,则新增;否则直接对原有数据进行更新;
新增模式为在原有数据基础上,只做新增而不更新。
第三方面,本申请还提供一种关联数据导出装置,包括:
有向图构建模块,用于基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;
导出模块,用于对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
第四方面,本申请还提供一种关联数据导入装置,引用如上所述的关联数据导出装置,还包括:
导入模块,用于对导出的资源列表进行解析,并按预设规则依次导入。
第五方面,本申请还提供一种计算机设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的关联数据导出方法,或实现如第二方面所述的关联数据导入方法。
第六方面,本申请还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的关联数据导出方法,或实现如第二方面所述的关联数据导入方法。
第七方面,本申请还提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得计算机设备执行时实现如第一方面所述的关联数据导出方法,或实现如第二方面所述的关联数据导入方法。
相对于现有技术,本申请的有益效果在于:
1)本申请支持一键导出单据以及依赖的全部基础数据;
2)本申请支持异步导出,实时查看导出进度;
3)本申请中文件以JSON格式存储,便于读写和传输;
4)本申请能够一键导入单据及其依赖的全部基础资料,关联的所有单据数据自动新增,无需其他操作,操作十分简便。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请某一实施例提供的某服务流程资源依赖关系的原理示意图;
图2是本申请某一实施例提供的单据组成结构示意图;
图3是本申请某一实施例提供的关联数据导出方法的流程示意图;
图4是本申请某一实施例提供的有向图导出导入原理图;
图5是本申请某一实施例提供的单据导出过程的步骤程序框图;
图6是本申请某一实施例提供的关联数据导入方法的流程示意图;
图7是本申请某一实施例提供的单据导入过程的步骤程序框图;
图8是本申请某一实施例提供的关联数据导出装置的结构示意图;
图9是本申请某一实施例提供的关联数据导入装置的结构示意图;
图10是本申请某一实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了帮助理解,首先对于本申请中涉及的相关术语进行解释:
JSON:一种轻量级的数据交互或存储格式。
基础资料:能以一个编码代表某个业务对象,为后续流程、业务做准备的基本信息。如物料、币别、科目都是基础资料的典型代表,可以被单据引用。
单据:实现业务场景的数据模型或业务对象,用于保存流水数据。如费用报销单、差旅报销单。
分录:单据或基础资料依赖的层级数据模型,一般用于描述明细列表数据。
子分录:子分录是指的分录的子集,一个分录行可以包含多行子分录,用于描述层级更深一级的列表数据结构。
主资源:业务上主要关注的资源,包含字段的属性、类型、操作和事件等。
引用资源:引用资源是相对于主资源而言,主资源需要依赖于引用资源才能保证数据的完整性,引用资源还可以再有引用资源。
有向图:图是由顶点及顶点之间的关系集合组成的数据结构,Graph=(V,E),其中V是顶点,E称为边(edge),描述顶点之间的关系;边关联的顶点对有序则为有向图。
需要说明的是,一个完整的集成方案/服务流程(主资源),依赖了启动方案、数据集成方案、集成对象、值转换规则、数据源、参考数据方案等众多资源。其中,图1提供了某服务流程资源依赖关系。如图1所示,该服务流程的各项依赖关系是相对复杂的,各个资源之间都可能存在相应的依赖关系,最后形成一个依赖关系网络。基于图1提供的服务流程,若想把一套关联多个基础资料的集成方案或者服务从开发环境切换到测试或生产环境中,一般有两种方式:一是由实施人员配置或者excel导出导入;二是通过预置SQL导入导出。
以单据为例,对于excel导出导入数据的方式进行说明。请参阅图2,图2提供了一种单据的组成结构。由图2可知,一份单据通常分为单据头和一级分录;单据头包含的内容通常有“普通字段”和“基础资料”;而在一级分录下还可以进行二级、三级……到多级分录,每一级分录可包含对应的字段和资料。基于图2的单据结构,标准的excel引入引出功能,可以实现业务单据单头、分录、子分录的数据引出和引入,适合做某个业务单据的数据引入引出。但是,如果是多个单据需要做数据引出,需要引出多个excel,并在引入的时候,按需依次引入。需要进行多步操作,过程十分繁琐。
SQL预置脚本也是实现方案迁移的方式之一,这种方法通过手工梳理其中的引用关系,按序生成脚本,在导入时按序导入。对于基础资料等包含引用关系的数据,以及分录引用、子分录引用基础资料的场景,没有实现数据自动引出;且这种通过预置SQL的方式过程非常复杂,可实施难度极大。
在上述方法中,由于迁移的数据涉及多张关联关系表且有先后顺序依赖,实施过程是极其复杂的,保守估计需要1~2人/天,甚至更多时间。因此,针对上述数据迁移方式中存在的问题,本申请旨在提供一种关联数据导出导入方法,可以实现将最上层的数据,通过自动溯源关联数据,一次性导出其相关依赖,在导入的时候按需依次导入,操作简单。同时在导入导出过程中,能够保证数据的完整性和准确性。本申请实施例可以适用于各种企业资源计划(Enterprise Resource Planning,ERP)系统,包括但不限于生产制造管理系统、供应链系统、人事系统、财务系统、税务系统及审计系统。
第一方面:
请参照图3,图3为本申请实施例提供的一种关联数据导出方法的流程示意图。本申请实施例的关联数据导出方法可应用于终端设备,该计算机设备包括但不限于智能手机、笔记本电脑、平板电脑和桌上型计算机等设备。如图3所示,本实施例的数据计算逻辑的展示方法包括步骤S10和步骤S20,详述如下:
步骤S10、基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图。
对于单据或基础资料,存在分录依赖于基础资料、分录依赖于子分录等情形,引用关系非常复杂。而导入或导出过程中,最重要的是保证数据的完整性。导出时需要遍历所有的属性、子属性等,将其依次导出,在导入时则按序依次导入。为了保证数据的完整性,本步骤中利用了有向图来表征数据之间的关联关系。
需要说明的是,有向图是非常适合描述某种复杂引用关系的算法模型。因此步骤S10构建了动态对象之间的图(Graph),如图4所示。具体地,动态对象(Dynamic Object)是指单据/基础资料的数据模型,在构建时,将动态对象视为图的顶点(Vertex),每两个动态对象之间的依赖关系视为一条边(edge,e1,e2……),由依赖方指向被依赖方,通过循环、递归遍历动态对象的元数据模型,最终可以快速构建有向图。
步骤S20、对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
在上述步骤中,建立好了关联数据的有向图,在本步骤中,主要则需要对关联数据进行导出。具体地,基于构建好的有向图,对各个资源进行梳理。采取拓扑排序的方式,遍历图中的每个节点,判断该资源的前置依赖边是否已经访问,如果是,则输出;否则,继续访问下一个节点,全部遍历完成后就可以得到有先后顺序的资源列表,并最终输出到文件。
综上所述,该实施例提供的关联数据导出方法,基于有向图,能够清楚的表征动态对象之间的依赖关系,通过对资源进行梳理以及采用拓扑排序的方式,能够使得数据导出时,确保数据的完整性和有序性,大大简化了传统数据迁移方式的操作过程,提高了数据导出效率。
在一个示例性的实施例中,在图3所示实施例的基础上,上述步骤S20中,采用拓扑排序方式遍历有向图中的每个节点具体包括:
2.1)遍历动态对象并添加到有向图的顶点位置,并判断添加是否成功;
2.2)若添加成功,则循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点;
2.3)若添加不成功,则返回执行遍历动态对象并添加到有向图的顶点位置步骤;
2.4)当添加完所有动态对象后,对有向图进行拓扑排序,并按被依赖顺序输出节点。
在一个具体地实施例中,步骤2.2)中,循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点,具体包括:
2.2.1)若动态对象的属性为基础资料且图中包含引用关系,则忽略;否则将其添加到有向图的顶点,并添加依赖边;
2.2.2)若动态对象的属性为分录,则获取分录的所有字段属性,递归调用循环遍历动态对象的属性步骤;
2.2.3)若动态对象的属性被限制为不能导出的基础资料,则忽略。
在一个具体地实施例中,步骤S20中,生成具有时序关系的资源列表并导出,包括以下内容:
2.5)将资源依次序列化为Map对象,若有后置插件则执行,实现数据的预处理;
2.6)将Map对象转为JSON字符串,对资源之间进行分割,通过输出流下载为文本、Excel或其他自定义格式的文件;其中,输出包含主资源和引用资源的List,并按顺序排列。
作为优选地,当执行所述生成具有时序关系的资源列表并导出步骤时,支持自定义扩展字段,实现间接引用字段一并导出。
参见图5,为了帮助理解,在一个具体实施方式中,以动态对象对单据为例,结合图5提供的导出流程图,对于单据导出过程进行详细说明,具体地,包括以下步骤:
1)创建图。
2)遍历要导出的单据对象列表,对象添加到图的顶点。
3)如果添加成功,则继续添加其引用关系,并跳转至步骤4);否则忽略,跳转至步骤2)。
4)循环遍历单据对象的属性,搜集引用关系,构建有向图的边和顶点:
a)如果该属性为基础资料且图中包含引用关系,说明已经添加过,需要忽略;否则将其添加到图的顶点,并添加依赖边;
b)如果该属性为分录,则获取分录的所有字段属性,递归调用步骤4);
c)如果该属性被限制不能导出的基础资料,则忽略;
d)支持自定义扩展字段,实现间接引用的字段也一并导出。
5)对图进行拓扑排序(广度优先遍历):按被依赖顺序输出节点。如果存在a→b的路径,则表示b依赖a依赖关系,拓扑排序首先输出不依赖其他节点的节点;从图中排除这些节点后,再输出不依赖其他节点的节点,直到全部节点都被输出为止。如果排序结束后,不能输出图中的全部节点,则表示图中存在环,导出失败。
6)输出包含主资源和引用资源的List,按顺序排列。
7)将资源依次序列化为Map对象,如果有后置插件则执行,实现数据的预处理。
8)Map转为JSON字符串,资源之间以\n分割,通过输出流下载为文本、Excel或其他自定义格式的文件。
综上所述,通过上述步骤则可实现单据数据的全部导出,既能够保证数据的完整性,又能够较为快速的完成整个过程。
在一些可能的实施方式中,上述关联数据导出方法还可以根据业务需要进行插件扩展,例如导出时可以脱敏相关字段信息,通过该扩展方式可避免无关信息干扰,进一步加快数据迁移的效率。
第二方面:
参见图6,本申请某一实施例中,还提供了一种关联数据导入方法,在如第一方面所述的关联数据导出方法的基础上,还包括:
步骤S30、对导出的资源列表进行解析,并按预设规则依次导入。
本步骤中在导入时,根据已经生成的文件,依次解析资源清单,按序导入,最终保证数据的完整性、有序性。
在一个示例性的实施例中,步骤S30中,对导出的资源列表进行解析,并按预设规则依次导入,具体包括:
3.1)解析资源列表中的文件数据,将JSON数据转为Map对象后,序列化转为动态对象;所述动态对象中的数据包括主资源和引用资源;
3.2)判断是否有插件干预,若有则执行插件处理;若无,则执行导入操作,调用动态对象中的数据进行保存。
进一步地,所述执行导入操作,包括:
A)当动态对象为主资源时,导入模式设为覆盖模式;
B)当动态对象为引用资源时,导入模式设为新增模式,或同时支持新增模式和覆盖模式;其中,
覆盖模式为当导入数据有新增时,则新增;否则直接对原有数据进行更新;
新增模式为在原有数据基础上,只做新增而不更新。
参见图7,为了帮助理解,在一个具体实施方式中,以动态对象对单据为例,结合图7提供的导入流程图,对于单据导入过程进行详细说明,具体地,包括以下步骤:
1)导入时,解析文件数据。
2)将JSON数据转为Map后序列化转为动态对象模型。
3)提供2种导入模式:新增(只做新增不更新)、覆盖(系统存在则更新,不存在则新增)模式。对于主资源,默认全部为覆盖模式;对于引用资源,支持新增+覆盖模式,默认为新增模式,这是由于引用资源是多个主资源共用,防止误覆盖。
4)检查是否有插件干预,如果有执行插件处理。
5)执行最终的导入操作,调用业务对象保存。
6)对于资源在同一个数据库内的资源,引用资源和主资源的保存操作在同一个事务内,保证成功或失败的一致性。
综上所述,本实施例提供的关联数据导入方法,基于有向无环图将方案及其依赖导出,采用拓扑排序TOP-SORT将方案按引用顺序依次导入。同时,该方法支持引用过滤、脱敏或引用替换操作,且导出工具通用,支持各种元数据类型的数据导入导出。扩展的关联信息也能够自动追溯到,无需额外配置。
在一些可能的实施方式中,上述关联数据导入方法还可以根据业务需要进行插件扩展,例如导入时禁用相关数据的状态,通过该扩展方式可避免无关信息干扰,进一步加快数据迁移的效率。
第三方面:
为了执行上述方法实施例对应的关联数据导出方法,以实现相应的功能和技术效果。参见图8,图8示出了本申请实施例提供的一种关联数据导出装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的关联数据导出装置,包括:
有向图构建模块01,用于基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;
导出模块02,用于对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
上述的关联数据导出装置可实施上述方法实施例的关联数据导出方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。本申请实施例的其余内容可参照上述方法实施例的内容,在本实施例中,不再进行赘述。
第四方面:
为了执行上述方法实施例对应的关联数据导入方法,以实现相应的功能和技术效果。参见图9,图9示出了本申请实施例提供的一种关联数据导入装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的关联数据导入装置,在如第三方面所述的关联数据导出装置的基础上,还包括:
导入模块03,用于对导出的资源列表进行解析,并按预设规则依次导入。
上述的关联数据导入装置可实施上述方法实施例的关联数据导入方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。本申请实施例的其余内容可参照上述方法实施例的内容,在本实施例中,不再进行赘述。
第五方面:
请参阅图10,图10为本申请一实施例提供的计算机设备的结构示意图。如图10所示,该实施例的计算机设备10包括:至少一个处理器100(图10中仅示出一个)处理器、存储器110以及存储在所述存储器110中并可在所述至少一个处理器100上运行的计算机程序120,所述处理器100执行所述计算机程序120时实现上述任意方法实施例中的步骤。
所述计算机设备10可以是智能手机、平板电脑、桌上型计算机和云端服务器等计算设备。该计算机设备可包括但不仅限于处理器100、存储器110。本领域技术人员可以理解,图10仅仅是计算机设备10的举例,并不构成对计算机设备10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器100可以是中央处理单元(Central Processing Unit,CPU),该处理器100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器110在一些实施例中可以是所述计算机设备10的内部存储单元,例如计算机设备10的硬盘或内存。所述存储器110在另一些实施例中也可以是所述计算机设备10的外部存储设备,例如所述计算机设备10上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器110还可以既包括所述计算机设备10的内部存储单元也包括外部存储设备。所述存储器110用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器110还可以用于暂时地存储已经输出或者将要输出的数据。
另外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现上述各个方法实施例中的步骤。
在本申请所提供的几个实施例中,可以理解的是,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围。特别指出,对于本领域技术人员来说,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种关联数据导出方法,其特征在于,包括:
基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;
对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
2.根据权利要求1所述的关联数据导出方法,其特征在于,所述采用拓扑排序方式遍历有向图中的每个节点,包括:
遍历动态对象并添加到有向图的顶点位置,判断添加是否成功;
若添加成功,则循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点;
若添加不成功,则返回执行遍历动态对象并添加到有向图的顶点位置步骤;
当添加完所有动态对象后,对有向图进行拓扑排序,并按被依赖顺序输出节点。
3.根据权利要求2所述的关联数据导出方法,其特征在于,所述循环遍历动态对象的属性,搜集引用关系,构建有向图的边和顶点,包括:
若动态对象的属性为基础资料且图中包含引用关系,则忽略;否则将其添加到有向图的顶点,并添加依赖边;
若动态对象的属性为分录,则获取分录的所有字段属性,递归调用循环遍历动态对象的属性步骤;
若动态对象的属性被限制为不能导出的基础资料,则忽略。
4.根据权利要求1所述的关联数据导出方法,其特征在于,所述生成具有时序关系的资源列表并导出,包括:
将资源依次序列化为Map对象,若有后置插件则执行,实现数据的预处理;
将Map对象转为JSON字符串,对资源之间进行分割,通过输出流下载为文本、Excel或其他自定义格式的文件;其中,
输出包含主资源和引用资源的List,并按顺序排列。
5.根据权利要求1或4任一项所述的关联数据导出方法,其特征在于,当执行所述生成具有时序关系的资源列表并导出步骤时,可通过自定义扩展字段,实现间接引用字段一并导出。
6.一种关联数据导入方法,引用如权利要求1-5任一项所述的关联数据导出方法,其特征在于,还包括:
对导出的资源列表进行解析,并按预设规则依次导入。
7.根据权利要求6所述的关联数据导入方法,其特征在于,所述对导出的资源列表进行解析,并按预设规则依次导入,包括:
解析资源列表中的文件数据,将JSON数据转为Map对象后,序列化转为动态对象;其中,所述动态对象中的数据包括主资源和引用资源;
判断是否有插件干预,若有则执行插件处理;若无,则执行导入操作,调用动态对象中的数据并进行保存。
8.根据权利要求7所述的关联数据导入方法,其特征在于,所述执行导入操作,包括:
当动态对象为主资源时,导入模式设为覆盖模式;
当动态对象为引用资源时,导入模式设为新增模式,或同时支持新增模式和覆盖模式;其中,
覆盖模式为当导入数据有新增时,则新增;否则直接对原有数据进行更新;
新增模式为在原有数据基础上,只做新增而不更新。
9.一种关联数据导出装置,其特征在于,包括:
有向图构建模块,用于基于关联数据,以动态对象为顶点,以动态对象之间的依赖关系为边,构建关联数据的有向图;
导出模块,用于对所述关联数据进行导出,包括采用拓扑排序方式遍历有向图中的每个节点,生成具有时序关系的资源列表并导出。
10.一种关联数据导入装置,引用如权利要求8所述的关联数据导出装置,其特征在于,还包括:
导入模块,用于对导出的资源列表进行解析,并按预设规则依次导入。
11.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5任一项所述的关联数据导出方法,或实现如权利要求6至8任一项所述的关联数据导入方法。
12.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的关联数据导出方法,或实现如权利要求6至8任一项所述的关联数据导入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211392160.6A CN115905353A (zh) | 2022-11-08 | 2022-11-08 | 关联数据导出、导入方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211392160.6A CN115905353A (zh) | 2022-11-08 | 2022-11-08 | 关联数据导出、导入方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905353A true CN115905353A (zh) | 2023-04-04 |
Family
ID=86490603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211392160.6A Pending CN115905353A (zh) | 2022-11-08 | 2022-11-08 | 关联数据导出、导入方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905353A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117635081A (zh) * | 2024-01-25 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
-
2022
- 2022-11-08 CN CN202211392160.6A patent/CN115905353A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117635081A (zh) * | 2024-01-25 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN117635081B (zh) * | 2024-01-25 | 2024-04-16 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033436B (zh) | 一种数据库的合并方法 | |
CN112650766B (zh) | 数据库数据操作的方法、系统及服务器 | |
CN103412853B (zh) | 一种针对文档转换器的测试用例自动生成方法 | |
US20050076046A1 (en) | Combining data descriptions | |
JP2000148461A (ja) | ソフトウェアモデル及び既存のソ―スコ―ドを同期化させる方法及びその装置 | |
US11481440B2 (en) | System and method for processing metadata to determine an object sequence | |
CN111104106A (zh) | 集成业务流程与通讯报文的可视化开发方法、系统及介质 | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
CN104408584A (zh) | 一种交易关联性的分析方法及系统 | |
US20120079454A1 (en) | Expressing equivalency relationships with identity graphs | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
CN115905353A (zh) | 关联数据导出、导入方法、装置、设备及存储介质 | |
CN116089370A (zh) | SpringBoot框架多配置文件的合并方法及系统 | |
CN111368097A (zh) | 一种知识图谱抽取方法及装置 | |
CN111984826A (zh) | 基于xml的数据自动入库方法、系统、装置和存储介质 | |
CN115757481A (zh) | 数据迁移方法、装置、设备和存储介质 | |
CN114791882A (zh) | 变量命名冲突解决方法和装置、电子设备、存储介质 | |
CN111930349B (zh) | 一种程序包生成方法、装置、电子设备及存储介质 | |
CN113010230B (zh) | 配置信息处理方法、装置、设备及存储介质 | |
CN117435177B (zh) | 应用程序接口构建方法、系统、设备及存储介质 | |
CN116909542B (zh) | 一种汽车软件模块划分系统、方法及存储介质 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN117348880A (zh) | 小程序的压缩处理方法、装置、电子设备及存储介质 | |
CN115688485A (zh) | 一种工业设计流程中主辅参数配置绑定设计方法 | |
CN117891461A (zh) | 后端出码方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |