基于COBOL语言的数据字典字段信息获取方法及装置与流程

文档序号:23395216发布日期:2020-12-22 14:03阅读:362来源:国知局
基于COBOL语言的数据字典字段信息获取方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于cobol语言的数据字典字段信息获取方法及装置。



背景技术:

在zos平台上,数据通常以行为单位,每行文件都有数据长度,同样,cobol(commonbusiness-orientedlanguage,面向商业的通用语言)中的数据处理也是以行为单位。一般来说一行数据就是一个完整的数据单元(银行卡系统中的传统接口除外,由于历史原因它使用多行组成一笔交易)。数据单纯的存储在计算机中,数据文件并不包含对每个字段的解析,而这些解析都存在于那些定义在copybook的数据字典中,其中,copybook是cobol的代码片段,在cobol语言中使用copy命令操作,用于在编译阶段时将这些代码片段导入程序,可提高代码重用效率。

现有技术在对产品进行开发和测试的过程中,往往是先查看copybook中的数据字典,根据其中的变量定义来计算某一变量的偏移量和变量长度,再利用人工或者软件在文件中定位以获取数据内容。这样不仅需花费大量的时间来计算偏移量和变量长度,而且整个工作流程自动化程度较低,工作效率较低。



技术实现要素:

本发明实施例提供一种基于cobol语言的数据字典字段信息获取方法,整个工作流程无需手工参与,全部自动完成,工作效率较高,该方法包括:

获取待分析数据字典的源代码信息;

对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志;

根据cobol语言变量规则,提取所述编译日志中的字段属性信息,所述字段属性信息包括:字段的长度数据、起始位置数据和结束位置数据。

可选的,所述方法还包括:

对编译日志进行清理处理。

可选的,根据cobol语言变量规则,提取所述编译日志中的字段属性信息之后,所述方法还包括:

对所述编译日志进行逆向解析还原,获取数据字典中的字段变量类型信息。

可选的,所述方法还包括:

对所述编译日志中的字段属性信息进行格式化输出。

本发明实施例还提供一种基于cobol语言的数据字典字段信息获取装置,整个工作流程无需手工参与,全部自动完成,工作效率较高,该装置包括:

信息获取模块,用于获取待分析数据字典的源代码信息;

编译模块,用于对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志;

信息提取模块,用于根据cobol语言变量规则,提取所述编译日志中的字段属性信息,所述字段属性信息包括:字段的长度数据、起始位置数据和结束位置数据。

可选的,所述装置还包括:

清理模块,用于对编译日志进行清理处理。

可选的,所述装置还包括:

逆向解析模块,用于对所述编译日志进行逆向解析还原,获取数据字典中的字段变量类型信息。

可选的,所述装置还包括:

格式化输出模块,用于对所述编译日志中的字段属性信息进行格式化输出。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明实施例中,通过获取待分析数据字典的源代码信息,对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志,根据cobol语言变量规则,提取所述编译日志中的字段属性信息,即可在对产品进行开发和测试的过程中获取数据内容,整个工作流程无需手工参与,全部自动完成,工作效率较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中基于cobol语言的数据字典字段信息获取方法的流程图;

图2为本发明实施例中对编译日志进行清理处理的流程图;

图3为本发明实施例中对编译日志中的字段属性信息进行格式化输出的流程图;

图4为本发明实施例中基于cobol语言的数据字典字段信息获取装置的结构示意图;

图5为本发明实施例中对编译日志进行清理处理的结构示意图;

图6为本发明实施例中对编译日志中的字段属性信息进行格式化输出的结构示意图;

图7为本发明实施例中字段属性信息的具体示例图;

图8为本发明实施例中基于cobol语言的数据字典字段信息获取方法的具体示例图;

图9为本发明实施例计算机设备示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

下面对本申请中涉及的名称进行解释:

zos主机平台:ibm产品的z系列服务器操作系统平台,不同于其他计算机架构,使用专门的架构、cup、主板芯片和操作系统,目前的zos是1964年os360系统的延伸拓展。

cobol:commonbusiness-orientedlanguage,即面向商业的通用语言,为世界第一代高级程序语言,诞生于1959年,主要为商业和财务系统服务。一般来说,cobol语言针对文件的处理单位是以行为单位。

copybook:cobol的代码片段,在cobol语言中使用copy命令操作,用于在编译阶段时将这些代码片段导入程序,可提高代码重用效率。一般来说,copybook中封装的为一些具有通用含义的代码片段,例如,文件的数据字典解析或一段可封装为子程序的逻辑代码。通常,copybook用于存储文件的数据字典解析,这也是本文中描述的“数据字典”的具体实例。

变量长度:变量所占的空间大小(通常以字节记数),不同类型的变量占据的空间大小不同。针对cobol语言来说,一般一个x型字符(字母数字型,例如变量x(1))和一个9型字符(数字型,例如变量9(1))占用一个字节,一个二进制型变量(comp型,例如变量9(n)comp),分别占有2个字节(当n∈[1,4])、4个字节(当n∈[5,9])、8个字节(当n∈[10,18]),一个压缩十进制型变量(comp-3型,例如变量9(n)comp-3),占([(n+1)/2]+1)个字节(其中n为定义的变量位数,[]表示取该值的整数部分)。

偏移量:相对于行首(一般而言行首为该行从左边起始第一位)的位置,一般用于描述机器语言的代码,或者数据字段的位置。例如在文件a中字段a3的偏移量为56,即表示字段a3在文件a中起始于第56列,也叫所在位置。

jcl:jobcontrollanguage,即作业控制语言,又简称为cntl,是ibm主机(z系列服务器)的脚本,用以实现与系统交互。

job:作业,主机上执行某一任务的最小单元,相当于进程的概念。一般来说,一个提交运行的jcl即是一个job,一个进程。对程序的编译也是一个job。

编译日志:在将cobol程序编译成二进制代码的过程中,会将编译过程中的各种信息,包括将程序编译为汇编语言、生成各个变量的内存地址、建立各个寄存器入口分配表等程序装入内存时需要的一些详细信息。其中针对本发明而言重要的是会计算出每个变量的长度和偏移量。

spool:simultaneousperipheraloperationon-line,外部设备联机并行操作,他是关于慢速字符设备如何与计算主机交换信息的一种技术,通常称为“假脱机技术”。spooling技术实际上是一种外围设备同时联机操作技术,又称为排队转存储技术,他在输入和输出之增加了“输入井”和“输出井”的排队转出环节,类似于一个缓冲区。例如在windows平台spooling一般用于计算机与打印机之间的缓冲区。在zos平台上已经提交待运行的、正在运行的、已经运行完毕的job信息都存储在spool队列系统中,其中就包括了程序的编译日志。

cobol变量分层:cobol变量一般分为组合项和独立项。类似于c语言中的结构体变量,其中独立项就相当于其中的成员,组合项就相当于该结构体。不同的是cobol中的组合项可存在于另外一个组合项之下,因此cobol语言中存在特有的变量层级关系,最高层级为01层,最低层级为49层,即cobol语言最多可有49层(48层的层层包含的组合项,最底层49层为独立项)。组合项必须要包含独立项,独立项才是存储数据的最基本单元。另外cobol语言还有特殊的66层、77层、88层变量,这些与01-49层变量的使用和定义方式均不同。

图1为本发明实施例提供的一种基于cobol语言的数据字典字段信息获取方法的流程图,如图1所示,该方法包括:

步骤101、获取待分析数据字典的源代码信息。

在实施例中,待分析数据字典的源代码信息可以为:需要单个分析的数据字典列表清单或需要全部分析的数据字典源码库。

步骤102、对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志。

具体实施时,可以调用jcl接口的参数实现针对确定的单个待分析的数据字典列表进行处理,也可针对某一数据字典源码库进行处理,处理模式为并行处理,每一个源代码都会生成一个编译作业,进而生成编译日志。

步骤103、根据cobol语言变量规则,提取所述编译日志中的字段属性信息,所述字段属性信息包括:字段的长度数据、起始位置数据和结束位置数据。

如图7所示,从左至右第一个框,是该变量的起始位置(偏移位置);从左至右第二个框,是数据字典列表本身,以供参考;从左至右第三个框,与第一个框一样,也是该变量的起始位置;从左至右第四个框,是该变量的长度;从左至右第五个框,是该变量的结束位置。

由图1可知,本发明实施例提供的基于cobol语言的数据字典字段信息获取方法,通过获取待分析数据字典的源代码信息,对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志,根据cobol语言变量规则,提取所述编译日志中的字段属性信息,即可在对产品进行开发和测试的过程中获取数据内容,整个工作流程无需手工参与,全部自动完成,工作效率较高。

图2为本发明实施例对编译日志进行清理处理的流程图,如图2所示,所述方法还包括:

步骤201、对编译日志进行清理处理。

具体实施时,可以根据预设脚本对编译日志(即提交在spool中的job信息,需要说明的是,在对待分析数据字典的源代码信息中的数据字典进行编译处理后,会将该编译日志输出至spool中)进行清理,从而释放系统资源,保持工作环境整洁。本发明提供的基于cobol语言的数据字典字段信息获取方法的具体示例图可参见图8。

为了便于后续工作人员对数据字典中的字段变量类型进行查看,从而对数据进行分析,根据cobol语言变量规则,提取所述编译日志中的字段属性信息之后,所述方法还包括:

对所述编译日志进行逆向解析还原,获取数据字典中的字段变量类型信息。

具体实施时,可以根据cobol语言变量规则对所述编译日志进行逆向解析还原,即可以对cobol编译log的智能文本分析及逆向解析算法。

图3为本发明实施例对编译日志中的字段属性信息进行格式化输出的流程图,为了为后续进行数据分析奠定基础,如图3所示,所述方法还包括:

步骤301、对所述编译日志中的字段属性信息进行格式化输出。

基于同一发明构思,本发明实施例中还提供了一种基于cobol语言的数据字典字段信息获取装置,如下面的实施例所述。由于基于cobol语言的数据字典字段信息获取装置解决问题的原理与基于cobol语言的数据字典字段信息获取方法相似,因此,基于cobol语言的数据字典字段信息获取装置的实施可以参见基于cobol语言的数据字典字段信息获取方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4为本发明实施例提供的一种基于cobol语言的数据字典字段信息获取装置的结构示意图,如图4所示,该装置包括:

信息获取模块401,用于获取待分析数据字典的源代码信息;

编译模块402,用于对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志;

信息提取模块403,用于根据cobol语言变量规则,提取所述编译日志中的字段属性信息,所述字段属性信息包括:字段的长度数据、起始位置数据和结束位置数据。

图5为本发明实施例对编译日志进行清理处理的结构示意图,如图5所示,所述装置还包括:

清理模块501,用于对编译日志进行清理处理。

在本发明实施例中,所述装置还包括:

逆向解析模块,用于对所述编译日志进行逆向解析还原,获取数据字典中的字段变量类型信息。

图6为本发明实施例对编译日志中的字段属性信息进行格式化输出的结构示意图,如图6所示,所述装置还包括:

格式化输出模块601,用于对所述编译日志中的字段属性信息进行格式化输出。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图9所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。

处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

综上所述,本发明通过获取待分析数据字典的源代码信息,对待分析数据字典的源代码信息中的数据字典进行编译处理,以生成编译日志,根据cobol语言变量规则,提取所述编译日志中的字段属性信息,即可在对产品进行开发和测试的过程中获取数据内容,整个工作流程无需手工参与,全部自动完成,工作效率较高。

此外,本发明具有以下优点:

1、可批量动态对所有数据字典进行并行处理,避难了枯燥的手工操作,提供了工作效率。

2、可对编译后的日志进行智能分析,不仅直接获取这些log中所有字段的偏移量、字段长度,同时还对编译log进行逆向解析,展现出这些字段的定义信息以及层次关系。

3、所有这些结果都可以格式化输出,可以直接导入excel并作为文档管理的一部分,作为文件解析的基础。

4、本发明附带有spool的解析日志清理机制,以释放系统资源。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1