单据额度控制方法和装置的制作方法

文档序号:6340165阅读:319来源:国知局
专利名称:单据额度控制方法和装置的制作方法
技术领域
本发明涉及一种单据额度控制方法和装置。
技术背景
单据额度控制是指在单据的状态发生改变之前,对单据上的一些项目进行检查, 只有在满足一定的要求时,才会允许该改变,常见的如单据审核时控制商品折扣不能低于 某个折扣。
一般的单据额度控制方法常常是对单据上的某一个具体字段进行控制,如数量、 单价、金额等,这种方式是直接以单据上的字段作为检查项或者数据项和一个目标值进行 比较,然后得出是否超额的判断。
在一般的单据额度控制方法,一般具备以下几个要素
1.比较操作符包含大于、小于、等于;
2.比较项位于操作符左侧,一般为单据实体对象上的某一项,或者是和当前单 据实体对象有关的动态数据;
3.目标值或者数据项位于操作符右侧,一般为一个具体的数值,也可以是个数 值公式。
比较操作符、比较项、目标值或者数据项三者之间的关系如图1所示。
根据图1的一个示例,对一般的单据额度控制方法的描述举例如下
1.控制单据总金额小于[1000元
2.控制零售单价大于商品价格*88折
3.控制客户信用余额大于0
根据以上示例,定义若干个元数据用来描述以上信息
1. MetaDatal 描述要控制的单据字段,引用单据实体对应的物理表和字段名;
2. MetaData2 描述比较操作符,不同的单据的比较操作符有可能也会不同;
3. MetaData3 描述数据项,可以为数值或者数值公式。
通过这些元数据描述,可以实现一个一般的单据额度控制方法,可以入图2所示。
根据图2,可以首先从单据中取出MetaDatal中定义的字段的值作为比较项,再取 出MetaDatU中定义的值或者公式进行运算得到目标值,通过MetaDatd中定义的比较操 作符将比较项和目标值进行比较,得到最终结果为检查通过或者不通过。
该方法的关键在于MetaDatal的定义是指向单据实体,而问题在于,MetaDatal元 数据中定义的数据字段来源于单据实体,所以单据额度检查时也只能检索单据实体中 的字段和数据,也就是说单据额度检查直接依赖于单据实体,存在的缺陷主要有
1.单据实体的字段属性相对比较固定,是描述单据的信息的集合,不便于扩充, 如果单据额度检查需要用到其它的项目,则没有很好的办法解决,除非扩充单据实体中 的字段属性;
2.单据上的数据未经过进一步加工,一般很难满足稍微复杂一点的单据额度检查要求;
3.单据额度检查的程序设计和开发人员,会经常因为一些特殊的逻辑去修改算 法,导致该算法不稳定,每次修改都要进行大量测试;
4.业务单据开发员,在单据实体上增加为了进行单据额度检查要求的字段后, 有可能需要修改单据的逻辑。
基于上述方法,如果要实现对动态数据如客户信用余额的控制,一般做法为首先 要在单据实体对象上增加一列,为客户信用余额,其次在单据保存或者审核时即时计算信 用余额的值并将其存放到单据实体对象的信用余额字段。可见,如果增加一个对动态数据 的控制,会增加相当的复杂度,而且至少要修改单据实体对象,带来了一定的不稳定性。
因此,需要一种新的单据额度控制方式,能够灵活地对动态数据进行额度控制控 制,且不需要对单据进行改动。发明内容
本发明所要解决的技术问题在于,提供一种新的单据额度控制方式,能够灵活地 对动态数据进行额度控制控制,且不需要对单据进行改动。
有鉴于此,本发明提供一种单据额度控制方法,包括步骤302,根据预定义的规 则,从单据中提取中间数据;步骤304,根据中间数据,获取额度控制要求中的比较项的数 值;步骤306,根据额度控制要求中的比较条件,将比较项的数值与额度控制要求中的数据 项的数值进行比较,以确定单据是否超出了预定的额度。在该技术方案中,对单据处理得到 中间数据,再在中间数据中查找出比较项的数值,可以不需要对单据本身进行改动,只需根 据单据类型灵活制定规则即可。
在上述技术方案中,优选地,在步骤302中,还将中间数据存储在中间表中。
在上述技术方案中,优选地,中间表中具有唯一标识码。
在上述技术方案中,优选地,在步骤304中,还根据额度控制要求和中间数据获取 数据项的数值。
在上述技术方案中,优选地,规则根据单据的类型进行预定义。
本发明还提供一种单据额度控制装置,包括数据准备模块,根据预定义的规则, 从单据中提取中间数据;数据获取模块,根据中间数据,获取额度控制要求中的比较项的数 值;额度控制模块,根据额度控制要求中的比较条件,将比较项的数值与额度控制要求中的 数据项的数值进行比较,以确定单据是否超出了额度控制。在该技术方案中,对单据处理得 到中间数据,再在中间数据中查找出比较项的数值,可以不需要对单据本身进行改动,只需 根据单据类型灵活制定规则即可。
在上述技术方案中,优选地,数据准备模块将中间数据存储在中间表中。
在上述技术方案中,优选地,中间表中具有唯一标识码。
在上述技术方案中,优选地,数据获取模块根据额度控制要求和中间数据获取数 据项的数值。
在上述技术方案中,优选地,还包括规则定义模块,根据单据的类型预定义规则。
根据上述技术方案,可以实现一种单据额度控制方法和装置,可以在不需要对单 据本身进行改动的前提下,通过灵活地提取中间数据,来实现对动态数据的额度控制。


图1是额度控制方法中的比较项、比较操作符、数据项之间的关系示意图。
图2是一般的额度控制方法的原理示意图3是根据本发明的一个实施例的单据额度控制方法的流程图4是根据本发明的一个实施例的单据额度控制装置的框图5是根据本发明的一个实施例的单据额度控制装置的原理示意图6是根据本发明的一个实施例的单据额度控制装置的数据准备模块的工作示 意图;图7是根据本发明的一个实施例的单据额度控制装置的数据获取模块从额度检查中 间表中取得所需数据的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实 施例的限制。
图1是根据本发明的一个实施例的单据额度控制方法的流程图。
如图1所示,本发明提供一种单据额度控制方法,包括步骤302,根据预定义的规 则,从单据中提取中间数据;步骤304,根据中间数据,获取额度控制要求中的比较项的数 值;步骤306,根据额度控制要求中的比较条件,将比较项的数值与额度控制要求中的数据 项的数值进行比较,以确定单据是否超出了预定的额度。在该技术方案中,对单据处理得到 中间数据,再在中间数据中查找出比较项的数值,可以不需要对单据本身进行改动,只需根 据单据类型灵活制定规则即可。
在上述技术方案中,在步骤302中,还将中间数据存储在中间表中。
在上述技术方案中,中间表中具有唯一标识码。
在上述技术方案中,在步骤304中,还根据额度控制要求和中间数据获取数据项 的数值。
在上述技术方案中,规则根据单据的类型进行预定义。
图2是根据本发明的一个实施例的单据额度控制装置的框如图2所示,本发明还提供一种单据额度控制装置400,包括数据准备模块402, 根据预定义的规则,从单据中提取中间数据;数据获取模块404,根据中间数据,获取额度 控制要求中的比较项的数值;额度控制模块406,根据额度控制要求中的比较条件,将比较 项的数值与额度控制要求中的数据项的数值进行比较,以确定单据是否超出了额度控制。 在该技术方案中,对单据处理得到中间数据,再在中间数据中查找出比较项的数值,可以不 需要对单据本身进行改动,只需根据单据类型灵活制定规则即可。
在上述技术方案中,数据准备模块402将中间数据存储在中间表中。
在上述技术方案中,中间表中具有唯一标识码。
在上述技术方案中,数据获取模块404根据额度控制要求和中间数据获取数据项的数值。
在上述技术方案中,还包括规则定义模块408,根据单据的类型预定义规则。
图5是根据本发明的一个实施例的单据额度控制装置的原理示意图。
如图5所示,相对于一般的单据额度控制技术方案,本实施例中,添加了步骤502, 进行数据准备,即按照一定规则从单据实体中提取中间数据,以及步骤504,在中间数据中 找到对应MetaDatal (比较项)、MetaData3 (数据项)的对应数据,以根据MetaData2 (比较 操作符)进行比较来实现额度控制。
图6是根据本发明的一个实施例的单据额度控制装置的数据准备模块的工作示 意图。
如图6所示,数据准备模块402引用单据实体对象,针对不同的单据类型,通过调 用相应的方法(包括COM+组件方法、多种存储过程)通过映射,将单据实体上的信息或经 过计算的信息存储到额度检查中间表,还可以由开发人员为不同的单据类型的单据定制不 同的数据准备模块402,一般来说,一种类型的单据实体会对应一个数据准备模块402。
额度检查中间表为供数据准备模块402存储中间数据的存储装置,目的是供数据 获取模块404使用,该表设计为与业务无关,具体字段设计如下
a) ID:主键字段;
b)Iteml-4 存储和计算相关的文本字段,主要用于条件判断;
c)BigIteml-4 存储和计算相关的长文本字段,主要用于条件判断;
d) Exprl-10 存储和计算相关的数值字段;
e)Resultl 存储上限目标值或者数值公式计算的结果;
f)Result2 存储下限目标值或者数值公式计算的结果;
gKoncurrentID:唯一标识本次额度检查的操作,用于区别同时并发的其他额度 检查操作。
数据获取模块404从该额度检查中间表中取得所需的数据,如图7所示。对于 MetaDatal元数据该元数据描述比较项,数据获取模块404引用额度检查中间表字段,并 使其具备业务含义。如“单价”对应额度检查中间表的“Exprl”字段;对于MetaDatU元数 据该元数据描述数据项字段,用于计算公式的定义,同样也会引用额度检查中间表字段。 如想判断单据明细商品的折扣价不能小于零售价格的88折,此处可以定义“零售价格”,对 应额度检查中间表的“Expr2”字段;还可以描述其他非数值型项目,用于进行逻辑条件的 判断等。数据获取模块404分别取得比较项以及数据项的值(可能包括上限和下限),由额 度控制模块406比较两者的值,最后得出结论。
根据以上技术方案,可以实现一种单据额度控制方法和装置,其优点在于,通过额 度检查中间表以及数据准备操作,即取得中间数据,切断了业务单据实体和MetaDatal的 直接依赖关系,使得MetaDatal、MetaData2、MetaData3、额度检查中间表以及单据额度检查 方法自成一个封闭的、与业务无关的、自描述的一个系统,主要取得了以下几个效果
1.单据额度检查过程稳定,不依赖于外界对象(单据实体对象、数据准备装置), 额度检查的具体算法设计完成后无需经常变动;
2.业务单据实体不再和额度检查算法相关,不用添加和额度检查算法相关的字 段,业务逻辑上也不用再去维护这些字段,所以自身也相对比较稳定;
3.数据准备操作可以按需要增减,而无需影响单据额度检查的具体算法和业务单 据实体;
4.减少开发工作量。通过本发明的技术方案,实现对动态数据的额度控制与对单 据实体对象自身的属性数据的额度控制具有相同的算法复杂度。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种单据额度控制方法,其特征在于,包括步骤302,根据预定义的规则,从单据中提取中间数据;步骤304,根据所述中间数据,获取额度控制要求中的比较项的数值;步骤306,根据所述额度控制要求中的比较条件,将所述比较项的数值与所述额度控制 要求中的数据项的数值进行比较,以确定所述单据是否超出了预定的额度。
2.根据权利要求1所述的单据额度控制方法,其特征在于,在所述步骤302中,还将所 述中间数据存储在中间表中。
3.根据权利要求2所述的单据额度控制方法,其特征在于,所述中间表中具有唯一标 识码。
4.根据权利要求1所述的单据额度控制方法,其特征在于,在所述步骤304中,还根据 所述额度控制要求和所述中间数据获取所述数据项的数值。
5.根据权利要求1至4中任一项所述的单据额度控制方法,其特征在于,所述规则根据 所述单据的类型进行预定义。
6.一种单据额度控制装置,其特征在于,包括数据准备模块,根据预定义的规则,从单据中提取中间数据;数据获取模块,根据所述中间数据,获取额度控制要求中的比较项的数值;额度控制模块,根据额度控制要求中的比较条件,将所述比较项的数值与所述额度控 制要求中的数据项的数值进行比较,以确定所述单据是否超出了额度控制。
7.根据权利要求6所述的单据额度控制装置,其特征在于,所述数据准备模块将所述 中间数据存储在中间表中。
8.根据权利要求7所述的单据额度控制装置,其特征在于,所述中间表中具有唯一标 识码。
9.根据权利要求6所述的单据额度控制装置,其特征在于,所述数据获取模块根据所 述额度控制要求和所述中间数据获取所述数据项的数值。
10.根据权利要求6至9中任一项所述的单据额度控制装置,其特征在于,还包括规则定义模块,根据所述单据的类型预定义所述规则。
全文摘要
本发明提供一种单据额度控制方法,包括步骤302,根据预定义的规则,从单据中提取中间数据;步骤304,根据中间数据,获取额度控制要求中的比较项的数值;步骤306,根据额度控制要求中的比较条件,将比较项的数值与额度控制要求中的数据项的数值进行比较,以确定单据是否超出了预定的额度。本发明还提供一种单据额度控制装置。根据本发明可以不需要对单据本身进行改动,即可对单据的动态数据进行额度控制。
文档编号G06F17/30GK102043860SQ20101060850
公开日2011年5月4日 申请日期2010年12月27日 优先权日2010年12月27日
发明者奚卫平 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1