发明内容
基于此,有必要提供一种能够避免代码冗余的文件生成方法和装置。
一种文件生成方法,所述方法包括以下步骤:
获取元数据文件,解析所述元数据文件得到元数据和指定的文件格式;
根据所述元数据文件中配置的字段信息与源代码参数之间的映射关系,将所述元数据转换为对应的源代码;
根据所述指定的文件格式调用对应的元模板,根据解析得到的所述元数据和调用的所述元模板生成对应的交互文件模板;
根据所述源代码和所述交互文件模板生成交互文件。
在其中一个实施例中,所述根据解析得到的所述元数据和调用的所述元模板生成对应的交互文件模板的步骤,包括:
将所述元数据代入所述元模板中,根据所述元模板确定所述元数据中的字段的显示方式,以及确定所述元数据中的字段在所述元模板中的字段显示位置;
将所述元数据中的文件头信息添加至所述元模板的文件头部中,以得到交互文件模板。
在其中一个实施例中,所述字段的显示方式包括字节补齐方式和/或日期显示格式和/或金额显示格式。
在其中一个实施例中,所述根据所述源代码和所述交互文件模板生成交互文件的步骤,包括:
根据所述源代码获取与所述元数据中的各个字段对应的数据值,并将获取的所述数据值插入所述交互文件模板中的对应位置,以生成交互文件。
在其中一个实施例中,所述将获取的所述数据值插入所述交互文件模板中的对应位置,以生成交互文件的步骤,包括:
根据所述源代码将获取的所述数据值插入所述交互文件模板中对应字段的所述字段显示位置;
获取插入的所述数据值的长度以及与所述插入的数据值对应的所述字段的预设长度;
当所述数据值的长度小于所述预设长度时,则根据所对应的所述字段的数据类型对所述数据值进行字节补齐处理,根据字节补齐处理后的文件得到交互文件。
在其中一个实施例中,所述根据所对应的所述字段的数据类型对所述数据值进行字节补齐处理的步骤,包括:
检测与所述插入的数据值对应的所述字段的数据类型;
当所述字段对应的数据类型为数值型时,则将所述数据值进行左补零右对齐的处理;
当所述字段对应的数据类型为字符型时,则将所述数据值进行右补空格左对齐对齐的处理。
一种文件生成装置,所述装置包括:
解析模块,用于获取元数据文件,解析所述元数据文件得到元数据和指定的文件格式;
源代码生成模块,用于根据所述元数据文件中配置的字段信息与源代码参数之间的映射关系,将所述元数据转换为对应的源代码;
交互文件模板生成模块,用于根据所述指定的文件格式调用对应的元模板,根据解析得到的所述元数据和调用的所述元模板生成对应的交互文件模板;
交互文件生成模块,用于根据所述源代码和所述交互文件模板生成交互文件。
在其中一个实施例中,所述交互文件模板生成模块还用于将所述元数据代入所述元模板中,根据所述元模板确定所述元数据中的字段的显示方式,以及确定所述元数据中的字段在所述元模板中的字段显示位置;将所述元数据中的文件头信息添加至所述元模板的文件头部中,以得到交互文件模板。
在其中一个实施例中,所述交互文件生成模块还用于根据所述源代码获取与所述元数据中的各个字段对应的数据值,并将获取的所述数据值插入所述交互文件模板中的对应位置,以生成交互文件。
在其中一个实施例中,所述交互文件生成模块包括:
数据值插入模块,用于根据所述源代码将获取的所述数据值插入所述交互文件模板中对应字段的所述字段显示位置;
字节补齐模块,用于获取插入的所述数据值的长度以及与所述插入的数据值对应的所述字段的预设长度;当所述数据值的长度小于所述预设长度时,则根据所对应的所述字段的数据类型对所述数据值进行字节补齐处理,根据字节补齐处理后的文件得到交互文件。
上述文件生成方法和装置,通过获取元数据文件,解析元数据文件得到元数据和指定的文件格式;根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码;根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板;根据源代码和交互文件模板生成交互文件。相当于通过在元数据文件中指定文件格式,并将元数据对与指定文件格式对应的元模板结合起来动态生成所需的交互文件模板,进一步根据元数据转换后的源代码和交互文件模板结合起来生成交互文件。而不需要针对每种文件格式都分别写一套生成对应格式的交互文件代码,减少了代码的编写量,避免了代码的冗余。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中文件生成方法的应用环境图。如图1所示,服务器110通过网络与关联服务器120进行通信。服务器110获取元数据文件,解析元数据文件得到元数据和指定的文件格式,根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码。服务器110根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板。进一步地,服务器110根据源代码和交互文件模板生成交互文件。进一步地,服务器110可以将生成的交互文件发送至关联服务器120。
图2示出了一个实施例中的服务器110的内部结构示意图,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和一种文件生成装置,数据库用于存储数据。该文件生成装置用于实现一种文件生成方法。该处理器用于提供计算和控制能力,支撑整个服务器的运行。服务器中的内存储器为非易失性存储介质中的合同生成装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种文件生成方法。网络接口用于与关联服务器进行网络通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供了一种文件生成方法,现以该方法应用于图1或图2所示的服务器为例进行举例说明,该方法具体包括以下步骤:
步骤302,获取元数据文件,解析元数据文件得到元数据和指定的文件格式。
本实施例中,服务器中预先配置了与交互事项对应的元数据文件。
需要说明的是,交互事项即指要与关联系统发生数据交互的事项。比如,在向关联系统进行开户申请时,需要向关联系统发送开户申请的相关数据,因此“开户申请”属于交互事项。
具体地,可以配置Excel格式的元数据文件。在元数据文件中存储有元数据以及指定的文件格式。
服务器在针对某一交互事项要向关联系统发送交互文件时,会获取与该交互事项对应的元数据文件,并通过元数据解析器解析该元数据文件得到元数据和指定的文件格式。其中,指定的文件格式包括CSV格式或中登格式等。
比如,要生成的是开户申请交互文件,那么就获取与开户申请对应的开户申请元数据文件,解析该元数据文件得到开户申请相关的元数据和指定的文件格式。比如,可以得到申请单编号、个人证件类型及机构证件类型、交易发生日期等字段及各个字段的属性信息,其中,字段的属性信息包括字段的数据类型、长度、中文说明等信息。
步骤304,根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码。
本实施例中,元数据文件中预先配置了字段信息与源代码参数之间的映射关系。比如,元数据包括字段ID、字段名、字段的数据类型、字段长度、字段中文描述以及备注。那么字段信息与源代码参数之间的映射关系,可以如下所示:
header.id=ID
header.name=字段名
header.type=类型
header.length=长度
header.commentName=描述
header.notes=备注
可以理解,元数据文件可以是一份整体的文件,也可以是多份文件的总称,比如,元数据文件可以包含Excel格式的第一元数据文件和配置了字段信息与源代码参数之间的映射关系的第二元数据文件。
进一步地,服务器会根据该映射关系,将元数据转换为对应的源代码。
步骤306,根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板。
本实施例中,服务器中预先根据设置了与各种文件格式对应的元模板。比如,会针对中登格式设置一个对应的元模板A,针对CSV格式设置一个对应的元模板B。服务器会根据获取的指定的文件格式调用对应的元模板。其中,元模板是指可以代入元数据的模板文件。
进一步地,服务器会根据解析得到的元数据和调用的元模板生成对应的交互文件模板。
在一个实施例中,根据解析得到的元数据和调用的元模板生成对应的交互文件模板的步骤,包括:将元数据代入元模板中,根据元模板确定元数据中的字段的显示方式,以及确定元数据中的字段在元模板中对应的字段显示位置,将元数据中的文件头信息添加至元模板的文件头部中,以得到交互文件模板。
本实施例中,服务器会将元数据代入元模板中,根据元模板中预设的逻辑确定代入的元数据中的各个字段的显示方式,以及确定元数据中的各个字段在元模板中对应的字段显示位置。
具体地,元模板会根据元数据中的各个字段的数据类型确定该字段所对应的字节补齐方式和/或日期显示格式和/或金额显示格式。进一步地,字节补齐方式包括当字段对应的数据类型为数字型时,则该字段对应于左补零右对齐的补齐方式,当字段对应的数据类型为字符型时,则该字段对应于右补空格左对齐对齐的调整。
进一步地,元数据中包括文件头信息,服务器会将该文件头信息添加至元模板的文件头部中。
根据上述处理即可得到交互文件模板。
步骤308,根据源代码和交互文件模板生成交互文件。
进一步地,服务器会根据生成的源代码和交互文件模板生成最终的数据交互文件。具体地,服务器会通过应用程序根据源代码获取与元数据中的各个字段对应的数据值,将获取的数据值插入交互文件模板中的对应位置,以生成交互文件。本实施例中,通过元数据结合元模板来自动生成对应的交互文件模板,并根据由元数据生成的源代码自动的将数据值插入交互文件中,提高了交互文件的生成效率。
可以理解,源代码是根据元数据转换生成的,元数据能够用于定位查找字段对应的数据值,所以根据元数据转换生成的源代码可以获取与元数据中的各个字段对应的数据值。进一步地,交互文件模板是由元数据代入元模板中,由元模板确定好各个字段的字段显示位置以及显示方式得到的。所以,与字段对应的数据值可以对应的插入交互文件模板中对应的字段显示位置中。
本实施例中,获取元数据文件,解析元数据文件得到元数据和指定的文件格式;根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码;根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板;根据源代码和交互文件模板生成交互文件。相当于通过在元数据文件中指定文件格式,并将元数据文件中的元数据对与指定文件格式对应的元模板结合起来动态生成所需的交互文件模板,进一步根据元数据转换后的源代码和交互文件模板结合起来生成交互文件。而不需要针对每种文件格式都分别写一套生成对应格式的交互文件代码,减少了代码的编写量,避免了代码的冗余。
此外,根据元数据来自动生成对应的交互文件模板,而不需要人工的设置多套固定的交互文件模板,相较于手动设置多套交互文件模板而言,提高了交互文件模板生成效率。
如图4所示,在一个实施例中,将获取的数据值插入交互文件模板中的对应位置,以生成交互文件的步骤包括字节补齐处理步骤,具体包括以下步骤:
步骤402,根据源代码将获取的数据值插入交互文件模板中对应字段的字段显示位置。
本实施例中,服务器会根据源代码将获取的数据值插入交互文件模板中对应字段的字段显示位置。比如,将获取数据值“广东省深圳市南山区××路××号”插入交互文件模板中的“通信地址”字段所对应的字段显示位置。
步骤404,获取插入的数据值的长度以及与插入的数据值对应的字段的预设长度。
可以理解,文件格式可以根据字段长度的限制与否来分,分为非固定长度和固定长度。固定长度,就是指对各个字段有指定的预设的长度。那么,对于对字段长度有固定长度要求的文件格式来说,就会进行对应的长度检测以及对应的补齐处理。本实施例中,是针对对字段长度有固定长度要求的文件格式而言的。
进一步地,服务器会获取插入的数据值的长度,以及获取与该插入的数据值对应的字段的预设长度。可以理解,交互文件模板是根据元数据代入至元数据模板中形成的,而元数据中包括有字段长度(即字段的预设长度),所以服务器可以在将数据值插入对应的字段后,获取该对应字段所对应的预设长度。
步骤406,当数据值的长度小于预设长度时,则根据所对应的字段的数据类型对数据值进行字节补齐处理,根据字节补齐处理后的文件得到交互文件。
进一步地,服务器会将插入的数据值的长度与对应的字段的预设长度进行比对。当数据值的长度小于对应的字段的预设长度时,服务器会根据该对应的字段的数据类型对该数据值进行字节补齐处理。其中,字节补齐处理是指通过补充字节的方式,使得该数据值的长度加上补齐的字节长度后与预设长度一致。
进一步地,根据字节补齐处理后的文件得到交互文件。可以理解,可以是直接将字节补齐处理后的文件作为交互文件,也可以是检测插入数据值的日期显示格式和/或金额显示格式,将其调整为与字段所对应的日期显示格式和/或金额显示格式,根据格式调整后的文件得到交互文件。对此不作限定。
本实施例中,在将获取的数据值插入交互文件模板时,通过数据值所对应的字段的数据类型对数据值进行字节补齐处理,使得生成的交互文件更加的准确。
在一个实施例中,根据所对应的字段的数据类型对数据值进行字节补齐处理的步骤,包括:检测与插入的数据值对应的字段的数据类型,当字段对应的数据类型为数值型时,则将数据值进行左补零右对齐的处理,当字段对应的数据类型为字符型时,则将数据值进行右补空格左对齐对齐的处理的步骤。
本实施例中,服务器会检测与插入的数据值对应的字段的数据类型。当该字段对应的数据类型为数字型时,则将该数据值进行左补零右对齐的处理。比如,预设长度为8个字节,数据值为“668886”这一整数值,则对其进行左补零右对齐处理,即为“00668886”,既不影响其数值大小,也满足了字段对应的固定长度8。
进一步地,当该字段对应的数据类型为字符型时,则将该数据值进行右补空格左对齐的处理。比如,字段“通讯地址”对应的预设长度为120个字节,而实际的数据值(即实际地址)的长度为110个字节,这个时候就需要对该数据值进行右补空格左对齐的处理,补齐至120个字节。
在一个实施例中,将获取的数据值插入交互文件模板中的对应位置,以生成交互文件的步骤,包括:根据源代码将获取的数据值插入交互文件模板中对应字段的字段显示位置,检测插入的数据值的日期显示格式和/或金额显示格式是否与对应字段的期显示格式和/或金额显示格式一致,若否,则将插入的数据值的日期显示格式和/或金额显示格式调整为与对应字段所对应的日期显示格式和/或金额显示格式,根据格式调整后的文件得到交互文件。
如图5所示,在一个实施例中,提供了一种文件生成装置,该装置包括:解析模块502、源代码生成模块504、交互文件模板生成模块506以及交互文件生成模块508,其中:
解析模块502,用于获取元数据文件,解析元数据文件得到元数据和指定的文件格式。
源代码生成模块504,用于根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码。
交互文件模板生成模块506,用于根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板。
交互文件生成模块508,用于根据源代码和交互文件模板生成交互文件。
在一个实施例中,交互文件模板生成模块506还用于将元数据代入元模板中,根据元模板确定元数据中的字段的显示方式,以及确定元数据中的字段在元模板中的字段显示位置;将元数据中的文件头信息添加至元模板的文件头部中,以得到交互文件模板。
在一个实施例中,交互文件生成模块508还用于根据源代码获取与元数据中的各个字段对应的数据值,并将获取的数据值插入交互文件模板中的对应位置,以生成交互文件。
如图6所示,在一个实施例中,交互文件生成模块508包括:
数据值插入模块602,用于根据源代码将获取的数据值插入交互文件模板中对应字段的字段显示位置。
字节补齐模块604,用于获取插入的数据值的长度以及与插入的数据值对应的字段的预设长度;当数据值的长度小于预设长度时,则根据所对应的字段的数据类型对数据值进行字节补齐处理,根据字节补齐处理后的文件得到交互文件。
在一个实施例中,字节补齐模块604还用于检测与插入的数据值对应的字段的数据类型;当字段对应的数据类型为数值型时,则将数据值进行左补零右对齐的处理;当字段对应的数据类型为字符型时,则将数据值进行右补空格左对齐对齐的处理。
上述文件生成装置,通过获取元数据文件,解析元数据文件得到元数据和指定的文件格式;根据元数据文件中配置的字段信息与源代码参数之间的映射关系,将元数据转换为对应的源代码;根据指定的文件格式调用对应的元模板,根据解析得到的元数据和调用的元模板生成对应的交互文件模板;根据源代码和交互文件模板生成交互文件。相当于通过在元数据文件中指定文件格式,并将元数据对与指定文件格式对应的元模板结合起来动态生成所需的交互文件模板,进一步根据元数据转换后的源代码和交互文件模板结合起来生成交互文件。而不需要针对每种文件格式都分别写一套生成对应格式的交互文件代码,减少了代码的编写量,避免了代码的冗余。
此外,根据元数据来自动生成对应的交互文件模板,而不需要人工的设置多套固定的交互文件模板,相较于手动设置多套交互文件模板而言,提高了交互文件模板生成效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限定。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。