检测执行操作表与拟检测表引用同一属性值的方法和系统的制作方法

文档序号:6583400阅读:122来源:国知局

专利名称::检测执行操作表与拟检测表引用同一属性值的方法和系统的制作方法
技术领域
:本发明涉及数据处理
技术领域
,更具体地说,涉及检测执行操作表与拟检测表引用同一属性值的方法和系统。
背景技术
:在很多系统中,不同表经常需要共用(引用)同一属性值(每一属性值都有其对应的属性,以身高1.80m为例,"身高"是"1.80m"的属性,而"1.80m"是"身高"的属性值),这些共用同一属性值的不同表之间具有关联。很多情况下,如果当前的执行操作表与其他表共用同一属性值是不允许对当前的执行操作表进行删除、修改的,因此在对执行操作表执行删除、修改之前,需要检测执行操作表是否与其他表引用同一属性值。目前检测执行操作表是否与其他表引用同一属性值的实现方法是通过硬代码的方式来实现的为可能与执行操作表引用同一属性值的所有拟检测表编写一套检测方法。然而,在实施本发明创造的过程中,发明人发现,上述实现方法存在代码量大、开发工作量大的问题。而对于一般系统,与某一执行操作表可能共用同一属性值的所有拟检测表的、与引用同一属性值相关的属性都是可以统计的。因此,可利用该特性对执行操作表与拟检测表引用同一属性值的检测进行设计。
发明内容有鉴于此,本发明目的在于提供检测执行操作表与拟检测表引用同一属性值的方法和系统,以解决现有检测方法代码量大、开发工作量大的问题。为实现上述目的,本发明提供如下技术方案—种检测执行操作表与拟检测表引用同一属性值的方法,包括获取执行操作表的、与引用同一属性值相关的信息;根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;根据所述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。—种检测执行操作表与拟检测表引用同一属性值的系统,包括第一获取单元,用于获取执行操作表的、与引用同一属性值相关的信息;第二获取单元,用于根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;判断单元,用于根据所述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。对与执行操作表可能共用同一属性值的表(也即拟检测表)的、与引用同一属性值相关的属性的统计需要耗费大量的工作。而使用者可直接从本发明预设的配置表中获取拟检测表的、与引用同一属性值相关的属性,因此无需要对此部分再进行代码编写,从而大3大减小了代码量和开发工作量。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图la为本发明实施例所提供的检测执行操作表与拟检测表引用同一属性值的方法流程图;图lb为本发明实施例所提供的检测执行操作表与拟检测表引用同一属性值的方法另一流程图;图2为本发明实施例所提供的检测某一单据与其他单据引用同一属性值的方法流程图;图3为本发明实施例所提供的提示界面示意图;图4为本发明实施例所提供的执行操作表与拟检测表引用同一属性值的系统结构示意图;图5为本发明实施例所提供的执行操作表与拟检测表引用同一属性值的系统另一结构示意图;图6为本发明实施例所提供的执行操作表与拟检测表引用同一属性值的系统又一结构示意图。具体实施例方式为了引用和清楚起见,下文中使用的技术名词、简写或縮写总结如下SQL,StructuredQueryLanguage,结构化查询语言。SQL是一种数据库查询和程序设计标准的计算机语言,用于存取数据以及查询、更新和管理关系数据库系统;Unicode,一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求;varchar[(n)],长度为n个字节的可变长度且非Unicode的字符数据,n必须是一个介于1和8000之间的数值。varchar[(n)]的存储大小为所输入字符的字节的实际长度,而不是n个字节,而所输入的字符的字节的长度可以为零;ERP,EnterpriseResourcePlanning,企业资源计划系统,该系统建立在信息技术基础上,可对企业的所有资源(物流、资金流、信息流、人力资源)进行整合集成管理,采用信息化手段实现企业供销链管理,从而达到对供应链上的每一环节实现科学管理;反审核,反审核就是将已经审核完的记账凭证进行取消操作;依赖关系,同一属性值被两张不同单据引用,则这两张单据存在依赖关系。比如单据A、B,共同引用了属性值x,则单据A、B之间具有依赖关系;单品,钢铁行业使用的一个数据信息,即使用到单品的单据需要增加一个属性,属性对应单品的序列号(也即属性值)。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种检测执行操作表与拟检测表引用同一属性值的方法,以解决现有检测方法代码量大、开发工作量大的问题。参见图la,上述方法至少包括Sll、获取执行操作表的、与引用同一属性值相关的信息;S12、根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;S13、根据上述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。步骤S13的具体方式可为根据所述与引用同一属性值相关的信息拼写出结构化查询语言SQL;根据所述拟检测表中是否可查找出符合SQL的查询条件的记录,得出执行操作表是否与拟检测表引用同一属性值的判断结果。在具体实现时,可预先设定SQL模板,这样在拼写SQL时,将内容填入SQL模板即可生成SQL。举个最简单的例子假设"+5"为SQL,其中"+"为SQL模板,"5"为具体内容。在拼写SQL时,将"5"填入SQL模板中,即可获取"+5"的SQL。对与执行操作表可能共用同一属性值的表(也即拟检测表)的、与引用同一属性值相关的属性的统计需要耗费大量的工作。而使用者可直接从本发明预设的配置表中获取拟检测表的、与引用同一属性值相关的属性,因此无需要对此部分再进行代码编写,从而大大减小了代码量和开发工作量。而在预设SQL模板的情况下,使用者在操作时可以进一步省去对SQL模板的设计,从而可进一步减少了开发工作量。在本发明另一实施例中,参见图lb,上述检测方法还可包括S14、根据上述判断结果进行提示。在具体实现时,可做如下提示当得出执行操作表与拟检测表引用同一属性值的判断结果时,提示执行操作表不能被删除、修改;当得出执行操作表与拟检测表未引用同一属性值的判断结果时,提示执行操作表可被删除、修改,或者不提示,直接允许删除、修改均可。以上所有实施例中,无论是执行操作表还是拟检测表,其与引用同一属性值相关的信息包括与引用同一属性值相关的属性和与之对应的属性值。针对执行操作表而言,执行操作表的、与引用同一属性值相关的属性至少包括执行操作表引用的属性;而对拟检测表而言,拟检测表的、与引用同一属性值相关的属性则至少包括拟检测表的名称和拟检测表引用的属性。另外,上述执行操作表的、与引用同一属性值相关的属性还可包括执行操作表的相关属性(可为执行操作表的执行时间、有效期限等等);而上述拟检测表的、与引用同一属性值相关的属性还可包括拟检测表的相关属性(可为拟检测表的执行时间、有效期限等等)。5至于配置表,则至少包括拟检测表的、与引用同一属性值相关的属性。表1给出了配置表的一种结构表1<table>tableseeoriginaldocumentpage6</column></row><table>表1中,FRefTableName代表拟检测表的名称,FRefFieldName代表拟检测表引用的属性。—般来讲,执行操作表引用的属性的名称与拟检测表引用的属性的名称相同,但也有不相同的情况。比如,对于向某工厂购入材料一批计价600元,货款尚未支付的情况来说,应在账款表的"应付账款"(引用的属性)一项和原材料购入清单的"原材料"(引用的属性)一项中均记载600元(属性值),600元对应的属性的名称即因所在表不同而不同。因此,配置表还可包括执行操作表引用的属性,以起到参考对照的作用。包括执行操作表引用的属性的配置表的结构可参见表2:表2<table>tableseeoriginaldocumentpage6</column></row><table>表2中,FFie1dName代表执行操作表引用的属性,FRefTab1eName代表拟检测表的名称,FRefFie1dName代表拟检测表引用的属性,且Ffie1dName代表的属性与FRefFieldName代表的属性相对应。另外,由于与执行操作表共用同一属性值的拟检测表的个数可能不止一个,并可能共用多个不同的属性值,因此FFieldName、FRefTableName和FRefFieldName的个数可视情况为多个或一个。具有表1或表2结构的配置表可为针对某一执行操作表的配置表。当然,配置表也可为通用型的,或针对哪一类或哪几类表为通用型的,如此即可利用配置表批量配置检测不同表引用同一属性值的配置信息。由于不同表可能对应不同的拟检测表,因此对于通用型的配置表而言,则还需要记录执行操作表的名称以免发生混淆,通用型配置表的结构可参见表3:表3<table>tableseeoriginaldocumentpage7</column></row><table>表3中,FtableName代表执行操作表的名称,FFieldName代表执行操作表引用的属性,FRefTableName代表拟检测表的名称,FRefFieldName代表拟检测表引用的属性。仍以财款表和原材料购入清单为例,假设表3中FTableNamel为"账款表",FRefTableName2为"原材料购入清单"。当需要检测原材料购入清单是否与拟检测表引用同一属性值时,从表3中FTableName2所在行开始向下寻找配置信息,而如果需要检测账款表是否与拟检测表引用同一属性值时,则需要从表3的FTableNamel所在行开始到FtableName2所在行的前一行结束的这几行中寻找配置信息。当然,在具体实现时,还可根据需要在配置表中增加执行操作表的相关属性、拟检测表的相关属性等等,在此不作赘述。也即,步骤S11具体实现方式可为根据配置表获取与执行操作表引用同一属性值相关的信息,当然也可直接访问执行操作表。另外,上述配置表还可根据客户需要对其中的内容进行修改,以达到根据实际需要进行灵活配置的目的,这样更有利于系统的维护和扩展。上述检测执行操作表与拟检测表引用同一属性值的方法于适用所有引用统一属性值的业务场景。下面将以EPR系统的业务场景为例,进行更加详细的介绍。在ERP系统中,不同的单据(单据可为一张表或多张表的组合,如对单据进行操作,在某一刻实际为对单据中某一张表进行操作,该表即为执行操作表)经常需要共用属性值,这些共用属性值的业务单据之间具有时间先后的依赖关系。假定时间在前的业务单据引用了某一属性值,当存在后续单据引用了同一属性值时,则当前单据不允许删除/反审核。例如在反审核生产入库单时,如果库存调整单引用了与生产入库单相同单品属性值且其操作时间在生产入库单的操作时间之后,则不允许对生产入库单进行反审核。因此,当需要删除/反审核ERP系统中某一单据时,需要对该单据是否与其他单据引用同一属性值进行检测,参见图2,其检测流程如下S21、访问单据的执行操作表,获取该执行操作表引用的属性和执行时间,以及引用属性和执行时间对应的属性值(也即获取执行操作表的、与引用同一属性值相关的信息);S22、从预设的配置表中获取拟检测单据中拟检测表的名称、拟检测表引用的属性和拟检测表的执行时间,以及拟检测表引用的属性和执行时间对应的属性值(也即获取拟检测表的、与引用同一属性值相关的信息)。其中,拟检测表引用的属性与执行操作表引用的属性相对应;配置表结构如表4所示表4字段名字段类型FTableNameVARC應(80)FFieldNameVARC應(40)F0prtTimeFie1dNameVARC應(40)FRefTableNameVARC應(80)FRefFieldNameVARC應(40)FRefOprtTimeFieldNameVARC應(40)FTipVARCHAR(200)表4中,FtableName代表执行操作表的名称,FFieldName代表执行操作表引用的属性,FOprtTimeFieldName代表执行操作表的操作时间,FRefTableName代表拟检测表的名称,FRefFieldName代表拟检测表引用的属性,FRefOprtTimeFieldName代表拟检测表的操作时间,而Ftip则代表提示信息。S23、根据执行操作表的、与引用同一属性值相关的信息以及拟检测表的、与引用同一属性值相关的信息拼写出SQL;在本实施例中,SQL分四部分,每一部分的拼写均为动态拼写,其具体实现步骤如下拼写获取记录的SELECT(部分一)"SELECTCOUNT(1)existCount";将步骤S22中获取的拟检测表的名称追加到SQL的FROM部分(部分二)"FROM,,+"FRefTableName,,;根据表4中执行操作表引用的属性(FfieldName)对应的属性值x和表4中拟检测表引用的属性(FRefFieldName),生成属性引用的条件(部分三)"WHERE"+"FRefFieldName,,+"=,,+"x,,;根据执行操作表的执行时间的属性值y和拟检测表的执行时间(FRefOprtTimeFieldName),生成属性引用的条件(部分四)"AND"+"FRefOprtTimeFieldN8<formula>formulaseeoriginaldocumentpage9</formula>把四部分的SQL拼接在一起,SQL的拼写完成。S24、向拟检测表中查找符合SQL的查询条件的记录;S25、得出执行操作表是否与拟检测表引用同一属性值的判断结果当查找到符合SQL的记录时,得出执行操作表与拟检测表引用同一属性值的判断结果(也即得出单据与其他单据引用同一属性值的判断结果),否则,得出单据未与其他单据引用同一属性值的判断结果;其中,当拟检测表为多个时,步骤S23-S24需要循环进行,只要有一个拟检测表存在符合SQL的查询条件的记录,就可得出单据与其他单据引用同一属性值的判断结果,即本实施例可批量配置检测不同单据引用同一属性值的依赖关系。需要说明的是,除采用SQL进行查询外,本领域技术人员还可以利用其他现有的查询方式进行查询,限于篇幅问题,在此不作赘述。S26、根据步骤S24中得出的判断结果进行提示。例如如欲对生产入库单进行反审核,当检测到库存调整单引用了与生产入库单相同单品属性值且其操作时间在生产入库单的操作时间之后,则提示"库存调整单已经引用该单品,不允许反审核生产入库单"。其提示界面可参见图3。与上述检测方法相对应,本发明实施例同时还提供一种检测执行操作表与拟检测表引用同一属性值的系统。图4示出了该系统的一种结构,包括第一获取单元401、第二获取单元402和判断单元403,其中第一获取单元401用于获取执行操作表的、与引用同一属性值相关的信息;第二获取单元402用于根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;判断单元403用于根据与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。在本发明另一实施例中,参见图5,上述系统还可包括提示单元501,用于根据判断单元403得出的判断结果进行提示。当采用SQL查询方式时,参见图6,判断单元403可包括拼写单元601,用于根据与引用同一属性值相关的信息拼写出结构化查询语言SQL;查询判断单元602,用于根据拟检测表中是否可查找出符合SQL的查询条件的记录,得出执行操作表是否与拟检测表引用同一属性值的判断结果。以上所有实施例中,无论是执行操作表还是拟检测表,其与引用同一属性值相关的信息包括与引用同一属性值相关的属性和与之对应的属性值。针对执行操作表而言,执行操作表的、与引用同一属性值相关的属性包括执行操作表引用的属性;而对拟检测表而言,拟检测表的、与引用同一属性值相关的属性包括拟检测表的名称和拟检测表引用的属性。另外,上述执行操作表的、与引用同一属性值相关的属性还可包括执行操作表的相关属性(可为执行操作表的执行时间、有效期限等等);而上述拟检测表的、与引用同一属性值相关的属性还可包括拟检测表的相关属性(可为拟检测表的执行时间、有效期限等等)。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-0nlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,廳)等。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。10权利要求一种检测执行操作表与拟检测表引用同一属性值的方法,其特征在于,包括获取执行操作表的、与引用同一属性值相关的信息;根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;根据所述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。2.如权利要求l所述的方法,其特征在于,还包括根据所述判断结果进行提示。3.如权利要求2所述的方法,其特征在于所述根据所述信息得出执行操作表是否与拟检测表引用同一属性值的判断结果的具体方式为根据所述与引用同一属性值相关的信息拼写出结构化查询语言SQL;根据所述拟检测表中是否可查找出符合SQL的查询条件的记录,得出执行操作表是否与拟检测表引用同一属性值的判断结果。4.如权利要求l-3任一项所述的方法,其特征在于所述与引用同一属性值相关的信息包括与引用同一属性值相关的属性和与之对应的属性值。5.如权利要求4所述的方法,其特征在于所述执行操作表的、与引用同一属性值相关的属性包括所述执行操作表引用的属性;所述拟检测表的、与引用同一属性值相关的属性包括所述拟检测表的名称和所述拟检测表引用的属性。6.如权利要求5所述的方法,其特征在于所述执行操作表的、与引用同一属性值相关的属性还包括所述执行操作表的相关属性;所述拟检测表的、与引用同一属性值相关的属性还包括所述拟检测表的相关属性。7.如权利要求6所述的方法,其特征在于,所述执行操作表的相关属性为所述执行操作表的执行时间,所述拟检测表的相关属性为所述拟检测表的执行时间。8.—种检测执行操作表与拟检测表引用同一属性值的系统,其特征在于,包括第一获取单元,用于获取执行操作表的、与引用同一属性值相关的信息;第二获取单元,用于根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;判断单元,用于根据所述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。9.如权利要求8所述的系统,其特征在于,还包括提示单元,用于根据所述判断结果进行提示。10.如权利要求9所述的系统,其特征在于,所述判断单元包括拼写单元,用于根据所述与引用同一属性值相关的信息拼写出结构化查询语言SQL;查询判断单元,用于根据所述拟检测表中是否可查找出符合SQL的查询条件的记录,得出执行操作表是否与拟检测表引用同一属性值的判断结果。全文摘要本发明实施例公开了一种检测执行操作表与拟检测表引用同一属性值的方法和系统,以解决现有检测方法代码量大、开发工作量大的问题。其中方法包括获取所述执行操作表的、与引用同一属性值相关的信息;根据预设的配置表中拟检测表的、与引用同一属性值相关的属性,获取拟检测表的、与引用同一属性值相关的信息;根据所述与引用同一属性值相关的信息得出执行操作表是否与拟检测表引用同一属性值的判断结果。可见,使用者可直接从本发明实施例预设的配置表中获取拟检测表的、与引用同一属性值相关的属性,因此无需要对此部分再进行代码编写,从而大大减小了代码量和开发工作量。文档编号G06F17/30GK101727484SQ20091021697公开日2010年6月9日申请日期2009年12月31日优先权日2009年12月31日发明者许昭林申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1