CN103164389B - 一种自定义格式平面话单文件的处理方法和系统 - Google Patents
一种自定义格式平面话单文件的处理方法和系统 Download PDFInfo
- Publication number
- CN103164389B CN103164389B CN201110417981.6A CN201110417981A CN103164389B CN 103164389 B CN103164389 B CN 103164389B CN 201110417981 A CN201110417981 A CN 201110417981A CN 103164389 B CN103164389 B CN 103164389B
- Authority
- CN
- China
- Prior art keywords
- definition
- verification
- node
- rule
- file
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 claims abstract description 130
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 abstract description 53
- 238000003672 processing method Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- KSPXRTYMEVDHAB-LTZKBQIGSA-N 4-[(2R,6S)-4-[[3,5-bis(trifluoromethyl)phenyl]methyl-[5-(1-methylpyrazol-4-yl)pyrimidin-2-yl]amino]-2,6-diethylpiperidine-1-carbonyl]oxycyclohexane-1-carboxylic acid Chemical compound N1([C@H](CC)CC(C[C@@H]1CC)N(CC=1C=C(C=C(C=1)C(F)(F)F)C(F)(F)F)C=1N=CC(=CN=1)C1=CN(C)N=C1)C(=O)OC1CCC(C(O)=O)CC1 KSPXRTYMEVDHAB-LTZKBQIGSA-N 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种自定义格式平面话单文件的处理方法和系统,该处理方法包括:分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用格式定义配置文件来存储相应运营商的话单文件的格式定义;分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用规则定义配置文件来存储相应运营商的节点校验的规则定义;根据所获取的当前话单文件创建所对应的话单文件对象,并装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验。实施本发明的技术方案,通用性高、扩展性好、性能好、可复用好。
Description
技术领域
本发明涉及移动通信领域,尤其涉及一种自定义格式平面话单文件的处理方法。
背景技术
移动通信漫游计费通常是根据GSMA标准的TAP话单文件来实施数据清算,最终达到财务结算的目的。目前,全球多数运营商的计费话单文件都符合TAP标准,这样清算中心在实施话单清算时,只需要根据相应的几种TAP文件版本(如TAP310、TAP311)实现对应的编解码和校验方案,即可应对任何运营商的符合TAP话单标准的的计费文件。
然而部分运营商仍然存在一些不符合TAP标准的话单文件,这些话单文件通常是平面文本格式,常见的如CSV格式、定长分割格式,还存在话单文件包含文件头节点、尾节点的情况,每个单独的节点还可能包含子属性,同时一个文件中可能混用多种格式,节点的数量和校验方法都不尽相同。也就是说,一个运营商的非标准平面话单文件,完全是自定义格式和校验规则的。如此复杂的情况,给清算中心带来较大的压力。
面对这种情况,常用的处理方法是根据每一种自定义格式话单文件分别实施对应的编解码和校验方案,这也是最容易理解的方案,但是这种方案给清算中心带来的较高的成本,因为实现一套编解码和校验方案并非易事,且该方案并不具有通用性,只能应用到与其对应的话单文件上。
另一种处理方法是将自定义格式话单文件转换为标准的TAP文件,然后再进行清算实施。该方案具备可行性的原因是无论哪种格式的话单文件,都需要描述通话的基本信息,因此大部分节点与TAP标准都存在功能相似性。但该方案仍然存在显著的缺点,首先,非标准话单文件和TAP话单文件之间通常也存在较大的差异性,导致在实施转换时某些节点难以匹配;其次,先进行转换再进行清算需要付出转换成本,降低了系统处理能力;最后,需要针对每一类自定义话单文件实施对应的转换方案,不具备复用性。
上文提到的两种常见方案都可以解决自定义格式平面话单文件的编解码和校验问题,但同时又具有不可避免的重要缺陷。首先是成本高,然后特别是针对新的自定义格式话单的出现,完全需要实现一套新的编解码及校验机制,或者是实现一套新的转换规则。长远看来,需要存在一种方案,既能应付现有自定义格式平面话单文件的编解码和校验,又能在出现新的自定义格式话单文件时,只需要付出较小的成本就能完成对新文件的编解码和校验。
本发明就是这样的方案,本方案要解决的技术问题在于,针对现有的自定义格式平面话单文件编解码及校验高成本,特别是面对新格式平面话单文件的出现而系统扩展性不足的问题,提供一种新的自定义格式平面话单文件的编解码及校验方案。该方案主要通过抽象文件格式和校验规则,通过格式定义和校验规则定义,提供一套可复用、易扩展、高效率、从而降低成本的自定义格式平面话单文件编解码和校验方法。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种扩展性好的自定义格式平面话单文件的处理方法。
本发明解决其技术问题所采用的技术方案是:构造一种自定义格式平面话单文件的处理方法,包括:
S10.分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
S20.分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;
S30.根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验。
在本发明所述的自定义格式平面话单文件的处理方法中,在步骤S10中,从运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义的步骤具体包括:
S11.获取运营商提供的话单文件;
S12.将所述话单文件分解成多个语义单元;
S13.逐个判断每个语义单元是否内置在预先存储的语义单元系统中,若是,则进行步骤S14;若否,则定义新的语义单元,然后执行步骤S14;
S14.逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中,若是,则进行步骤S15;若否,则定义新的取值方式;
S15.分析节点属性,并判断节点是否具备子属性,若否,则执行步骤S16;若是,则分析子属性的取值方式,然后执行步骤S16;
S16.将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;
S17.使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义。
在本发明所述的自定义格式平面话单文件的处理方法中,在所述步骤S20中,从运营商提供的节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义的步骤包括:
S21.将语义单元分解为多个节点;
S22.分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中,若是,则执行步骤S23;若否,则定义新的校验属性,然后执行步骤S23;
S23.将所分析的校验属性组合,以确定节点校验的规则定义;
S24.使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义。
在本发明所述的自定义格式平面话单文件的处理方法中,预先存储在校验属性系统中的校验属性包括:节点名称、存在属性、存在条件、数据类型、数据长度、有效取值、存在属性错误码、非法值错误码。
本发明还构造一种自定义格式平面话单文件的处理系统,包括:
格式定义模块,用于分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
规则定义模块,用于分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;
处理模块,用于根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验。
在本发明所述的自定义格式平面话单文件的处理系统中,所述格式定义模块包括:
获取单元,用于获取运营商提供的话单文件;
第一分解单元,用于将所述话单文件分解成多个语义单元;
第一判断单元,用于逐个判断每个语义单元是否内置在预先存储的语义单元系统中;
第一定义单元,用于在判断语义单元无内置在预先存储的语义单元系统中时,则定义新的语义单元;
第二判断单元,用于逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中;
第二定义单元,用于在判断节点的取值方式无内置在预先存储的取值方式系统中时,定义新的取值方式;
第三判断单元,用于分析节点属性,并判断节点是否具备子属性;
分析单元,用于在判断节点具备子属性时,分析子属性的取值方式;
格式确定单元,用于将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;
第一存储单元,用于使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义。
在本发明所述的自定义格式平面话单文件的处理系统中,所述规则定义模块包括:
第二分解单元,用于将语义单元分解为多个节点;
第四判断单元,用于分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中;
第三定义单元,用于在判断所述校验属性无内置在预先存储的校验属性系统中时,定义新的校验属性;
规则确定单元,用于将所分析的校验属性组合,以确定节点校验的规则定义;
第二存储单元,用于使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义。
在本发明所述的自定义格式平面话单文件的处理系统中,预先存储在校验属性系统中的校验属性包括:节点名称、存在属性、存在条件、数据类型、数据长度、有效取值、存在属性错误码、非法值错误码。
实施本发明的技术方案,通过将自定义格式的平面话单文件的格式和节点校验的规则抽象出来,使其组件化、可配置化,因此通用性高,对于非特殊的话单文件,只需通过简单的格式定义和规则定义,再调用相应运营商的格式定义和规则定义即可完成编解码和校验;其次,扩展性好,即使出现新的格式或校验点,只需相应的派生出新的格式和校验点并加以实现即可,并不需要付出太大的成本;再次,性能好,因为直接操作话单文件,相对于现有的方案,并没有类似转换的工作,提高了系统处理能力;最后,可复用好,每一种格式和规则都可以作为基础设施沉淀下来,最终拥有大量的组件,在处理新类型话单文件时,利用这些组件通过简单装配就能高效完成。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明自定义格式平面话单文件的处理方法实施例一的流程图;
图2是图1中步骤S10优选实施例的流程图;
图3是图1中步骤S20优选实施例的流程图;
图4是一种自定义平面话单文件的结构图;
图5是本发明编解码器类关系图;
图6是本发明话单格式类关系图;
图7是本发明校验规则类关系图;
图8是本发明语义单元类关系图;
图9是本发明话单文件与其他工作类关系图;
图10是本发明话单格式(Schema)对象内部结构图;
图11是本发明校验规则对象内部结构图;
图12是本发明自定义格式平面话单文件的处理系统实施例一的逻辑图;
图13是图12中格式定义模块优选实施例的逻辑图;
图14是图12中规则定义模块优选实施例的逻辑图。
具体实施方式
首先说明的是,标准的TAP话单文件将漫游详单信息经过ASN编码为二进制后存储起来,而非TAP话单文件为了降低复杂度,通常都采用平面文件格式,由于各个运营商使用的交换机不同,或者是由于一些个性化信息的加入,再或者是由于对话单文件进行了再加工,导致这些非标准的平面话单文件格式和校验点五花八门。
对于非标准平面话单文件,其基本格式通常有如下类型:
1)符号分隔型。如逗号分隔文件,也称为CSV格式,或者斜线分隔,例如AAA/BBB/CCC类似格式的话单记录,每两个分隔符之间的数据域称为一个节点;
2)定长分割型。按照长度获取节点值。如存在ABCDEFG,规定第一个节点的起始位置为1,长度为2,第二个节点的起始位置为3,长度为5.那么第一个节点的值即为AB,第二个节点的值为CDEFG;
事实上,非标准平面话单格式的复杂性主要体现在如下方面:
1)话单文件存在附加信息。如部分运营商的话单包含头部文件级信息或者尾部审计信息等,或者包含多个附加信息,对于附加信息,其中的信息量及校验方式也不相同;
2)同一话单采用混合格式。一个话单文件中头尾附加信息、话单可能都是不同的格式,如附加信息格式是定长分割型,详单记录是符号分隔型;
3)详单节点定义不一致。话单文件中,一条语音详单和一条GPRS详单,由于要描述的信息的差异性,其节点数量和语义通常都是不一致的;
4)节点还存在子属性。话单文件中的节点还可能由多个子属性构成,而且某些子属性还可能是可选属性;
非标准平面话单的格式还存在其他多种特点,并且随着时间推移,还会出现更多新特点。
清算中心在处理话单时,首要的操作就是将描述一条详单的各个节点信息解析出来,如IMSI(International Mobile Subscriber Identity,国际移动用户识别码)、通话起始时间、时长等,这个过程叫做解码。同理,在将这些节点信息组织起来按照一定格式输出到文件中的过程,称为编码。在进行话单文件的编解码时,必须确定的知晓话单文件的格式。
要清楚的描述一条详单记录,详单中有些节点是必须存在的,有些节点则是可选出现的,而有些又是有条件出现的。同时由于各节点都有其独立的含义,所以其值域也要求满足一定的约束条件。如何判断一条详单是否有效,以及其各节点是否有效,是通过校验来完成的。不同的节点有不同的校验规则,对于一个具体的节点,可能的校验点有是否存在、数据类型、长度、有效值等,某些节点之间还存在互相依存关系。校验的结果需要清楚的展示出来,如节点不存在,值域不合法等。
本发明专利针对具备上述复杂特征的平面话单文件,提供下述处理方案。如图1所示,在本发明自定义格式平面话单文件的处理方法实施例一的流程图中,该处理方法包括:
S10.分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
S20.分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;
S30.根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验。
图2是图1中步骤S10优选实施例的流程图,步骤S10包括步骤S11~S20,应当说明的是,步骤S11~S20仅示出了一个运营商的话单文件的格式定义步骤,应当理解,其它运营商的话单文件的格式定义步骤与其类似,不再赘述。下面具体说明步骤S11~S20:
S11.获取运营商提供的话单文件;
S12.将所述话单文件分解成多个语义单元;
S13.逐个判断每个语义单元是否内置在预先存储的语义单元系统中,若是,则进行步骤S14;若否,则执行步骤S18;
S18.定义新的语义单元,然后执行步骤S14;
S14.逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中,若是,则进行步骤S15;若否,则执行步骤S19;
S19.定义新的取值方式;
S15.分析节点属性,并判断节点是否具备子属性,若否,则执行步骤S16;若是,则执行步骤S20;
S20.分析子属性的取值方式,然后执行步骤S16;
S16.将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;
S17.使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义。
图3是图1中步骤S20优选实施例的流程图,步骤S20包括步骤S21~S25,应当说明的是,步骤S21~S25仅示出了一个运营商的节点校验的规则定义步骤,应当理解,其它运营商的节点校验的规则定义步骤与其类似,不再赘述。下面具体说明步骤S21~S25:
S21.将语义单元分解为多个节点;
S22.分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中,若是,则执行步骤S23;若否,则执行步骤S25;
S25.定义新的校验属性,然后执行步骤S23;
S23.将所分析的校验属性组合,以确定节点校验的规则定义;
S24.使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义。
下面具体说明自定义格式平面话单文件的处理方法:
1)抽象话单文件的格式定义,使用配置文件定义话单格式。
虽然话单文件的格式千变万化,但总体抽象起来,其最基本的取值格式是上文提到的符号分隔型和定长分割型。复杂的话单文件通常是不同的语义单元采用了不同的取值格式,并且话单文件包含多个语义单元。如果将这些特征拆分开来,一个话单文件的格式可以用如下特征描述:
话单文件是否存在附加信息?都有哪些附加信息?
附加信息取值方式是符号分隔型还是定长分割型,还是其它未定义的特殊取值方式?
详单格式有几种类型?其格式分别是什么?是符号分隔型还是定长分割型,还是其它特殊取值方式?
各节点有子属性吗?子属性是符号分隔型还是定长分割型,还是其它特殊取值方式?
本专利方案在分析如上特征后,将话单文件的格式定义划分为三个因素,结合图4所述的话单文件的格式,具体描述如下:
●语义单元。语义单元表示话单中一个具体的信息单元,此处的语义单元处在较高级的层次,不涉及具体的节点信息。话单文件中的语义单元如头结点(HEADER)、尾节点(TRAILER)、详单(CDR)等。本方案定义了基本的语义单元,约定只要出现语义单元定义则表示具有该语义单元,否则表示不存在。如果用户需要的语义单元系统没有内置在预先存储的语义单元系统,还可以定义新的语义单元。
●取值方式。取值方式表示从一条记录中如何获取某个节点的值,包含符号分隔型(DELIMITED)和定长分割型(FIXEDLENGTH)。对于符号分隔型,只需要定义分隔符即可,如DELIMITED(,)表示逗号分隔;对于定长分隔型,需要定义各节点的长度等,如FIXEDLENGTH(1,5,9)表示第一个节点长度为1,第二个节点长度为5,依次类推。当然,用户还可以扩展新的取值方式定义。
●节点属性。节点属性主要表示节点是否具有子属性,如果具有子属性,还需要定义子属性的取值方式(SUBFMT)。为了简化起见,约定只要语法单元存在SUBFMT定义则表示具有子属性。
针对如上三个因素,本方案将这些因素配置化,以达到使用这些因素单元来配置话单文件格式的目的,从而将复杂格式分解化,最后再统一化。一个典型的话单格式配置如下:
[HEADER]
FMT=DELIMITED(,)
SUBFMT=FIXLENGTH(3,5,9)
[CDR]
FMT=FIXEDLENGTH(2,4,6,4,5,8,8)
SUBFMT=DELIMITED(/)
[TRAILER]
FMT=FIXLENGTH(3,5)
2)抽象节点校验规则,使用配置文件定义节点校验规则。
有了话单的格式定义,就可以将其中的信息解析为各个语义单元,进而解析出各个节点,即解码的过程。至于相应的节点是否存在、节点值域是否正确,则依赖校验来完成分析,要提供对节点的校验,则需要知晓节点的详细特征,本方案将其特性用属性表示,各属性抽象如下:
●节点名称(NAME)
●存在属性(EXIST_TYPE,参考TAP标准,取值M/C/O,分别表示Mandatory/Conditional/Optional,如果为C型,则必须指定存在条件)
●存在条件(EXIST_CONDITION,为一个函数名称,函数调用返回成功时,节点必须存在)
●数据类型(DATA_TYPE,分为string,number,datetime)
●数据长度(DATA_LENGTH,当数据类型为string时,可选指定数据长度)
●有效取值(LEGAL_VALUE,对应区间值、枚举型值在此列出,区间用“-”表示,枚举值用逗号分隔,为空表示不限制)
●存在属性错误码(EXIST_ERR_CODE,节点不存在错误码)
●非法值错误码(VALUE_ERR_CODE,非法取值错误码)使用如上节点属性,基本可以确定一个节点的校验规则,如果上述定义的属性还不能满足某些节点的校验,用户可以自行定义新的属性。
要完成一个话单文件的校验规则定义,首先需要将话单文件各语义单元包含的节点及顺序定义出来,此处的语义单元需要和格式定义中的语义单元保持一致;然后再定义每一个节点的校验规则。事实上,通常会将格式定义和规则定义合并在同一个配置文件中。一个典型的话单文件校验规则定义如下:
[HEADER]
NODE=1,2,3
[CDR]
NODE=4,5,6,7
[TRAIIER]
NODE=8,9
[1]
NAME=MSC_TYPE
EXIST_TYPE=M
DATA_TYPE=NUMBER
LEGAL_VALUE=1-5,11,12,13
EXIST_ERROR_CODE=10
FORMAT_ERROR_CODE=20
VALUE_ERROR_CODE=30
EXIST_CONDITION=
[2]
TAG_NAME=CDR_ID
EXIST_TYPE=C
DATA_TYPE=STRING
DATA_LENGTH=16
EXIST_ERROR_CODE=11
FORMAT_ERROR_CODE=21
VALUE_ERROR_CODE=31
EXIST_CONDITION=VALCDRIDEXIST
3)提供编解码和校验服务框架,既能兼容已知格式和校验规则的话单,又能在低成本扩展的情况下支持新类型话单,对所获取的当前话单文件进行处理。
本方案在抽象了格式定义和校验规则的基础上,提供了一套编解码和校验服务框架,该框架采用C++语言实现,不仅能天然支持预定义的格式和校验规则,还具备灵活的扩展能力。本方案的服务框架主要包含如下工作对象:
●编解码器(Codec)。针对两种基本取值方式定义,符号分隔型和定长分隔型,将其对应实现为DelimitCodec和FixedLengthCodec,结合图5所示的编解码器类关系图,二者皆从抽象基类Codec派生而来,具备Decode()和Encode()方法。
●话单格式(Schema)。该对象用来描述话单包含的语义单元及其格式定义。
●格式定义装载器(SchemaLoader)。结合图6所示的话单格式类关系图,当定义了话单的格式后,该对象负责从格式定义配置文件中装载格式信息,装载完成后,提供接口GetSchema()让用户获取话单格式对象。
●校验规则单元(RuleUnit)。校验规则单元是一类对象,规则定义中的每一个校验条目如EXIST_TYPE或DATA_TYPE,都对应一个校验规则单元对象。此类对象从基类Rule派生,提供Validate()方法验证该规则条目是否通过校验。
●节点校验规则(ValRule)。该对象定义了一个节点的校验规则,通常包含多个校验规则单元,提供Validate()方法。
●校验规则装载器(RuleLoader)。结合图7所示的校验规则类关系图,当定义了节点校验规则后,该对象负责从校验规则文件中装载规则信息,装载完成后,提供接口GetCompList()和GetCompRule()让用户获取节点列表及其校验规则。
●语义单元(Component)。结合图8所示的语义单元类关系图,语义单元是一类对象的统称,这一类对象均从Component抽象基类派生出来,主要包含字段(Field)、节点(Node)、记录(Record)。Field表示没有子属性的节点,Node表示具有子属性的节点。上文定义的语义单元均从Record对象派生,包含头结点(Header)、尾节点(Trailer)、详单(Cdr)。
●话单文件(CDFile)。结合图9所示的话单文件与其他工作类关系图,该话单文件对象是最终的工作对象,它利用上文提到的工作对象组合起来完成对话单的Encode()、Decode()和Validate()。
在格式定义文件和校验规则定义文件已存在的情况下,本服务框架的核心作流程如下:
1、创建一个格式定义装载器对象,该对象从格式定义配置文件中获取当前话单文件中存在的语义单元,每个语义单元的取值方式,以及节点是否具有子属性及其取值方式,然后将这些信息存储在Schema对象里,如图10所示的Schema对象内部结构图,一个Schema对象包含了一类话单文件所有的格式信息;
2、创建一个校验规则装载器对象,结合图11所示的校验规则对象内部结构图,该对象从规则定义配置文件中获取每一个语义单元包含的节点以及每个节点的校验规则,在其内部保存了每个语义单元,每个语义单元包含的节点,每个节点的校验规则。
3、创建一个话单文件对象,创建话单文件对象时,必须利用SetSchema()方法和SetRule()方法指定格式和校验规则,同时需要指定话单文件路径。该对象调用格式定义装载器和校验规则装载器获取话单中存在的语义单元,每个语义单元包含的节点、每个节点的校验规则,通过调用Decode()、Encode()和Validate()方法完成对整个文件的编解码和校验。
基于上述方案,我们在处理自定义格式平面话单文件时,可采用如下处理步骤实现:
1.定义文件格式。首先分析出语义单元,再分析出各语义单元的取值方式,同时确认节点是否具有子属性,以及子属性的取值方式。然后将其定义在配置文件中。当出现一种新的语义单元时,用户也可以自定义新的语义单元,只需要在实现时从Record类派生出该语义单元,并实现其对应的接口即可。同理,当出现新的取值方式时,只需要从编解码器Codec派生出新的编解码器即可。
2.定义校验规则。按照格式定义中的语义单元,分别确定各语义单元包含的节点及其顺序,然后根据业务规则,将各个节点的校验属性表现出来。如果需要对某个节点增加新的约束,用户也可自定义一种新的属性,只需要在实现时从RuleUnit对象派生出来并实现对应的接口即可。
3.创建话单文件对象。上述两个步骤完成后,即可创建话单文件对象CDFile,设置格式Schema和校验规则Rule,然后调用其对应的方法完成编解码和校验,其典型工作流程如下:
图12是本发明自定义格式平面话单文件的处理系统实施例一的逻辑图,该处理系统包括依次连接的格式定义模块10、规则定义模块20和处理模块30,其中,格式定义模块10用于分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;规则定义模块20用于分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;处理模块30用于根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验。
图13是图12中格式定义模块优选实施例的逻辑图,该格式定义模块包括获取单元11、第一分解单元12、第一判断单元13、第一定义单元14、第二判断单元15、第二定义单元16、第三判断单元17、子属性分析单元18、格式确定单元19和第一存储单元20。其中,获取单元11用于获取运营商提供的话单文件;第一分解单元12用于将所述话单文件分解成多个语义单元;第一判断单元13用于逐个判断每个语义单元是否内置在预先存储的语义单元系统中;第一定义单元14用于在判断语音单元无内置在预先存储的语义单元系统中时,则定义新的语义单元;第二判断单元15用于逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中;第二定义单元16用于在判断节点的取值方式无内置在预先存储的取值方式系统中时,定义新的取值方式;第三判断单元17用于分析节点属性,并判断节点是否具备子属性;子属性分析单元18用于在判断节点具备子属性时,分析子属性的取值方式;格式确定单元19用于将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;第一存储单元20用于使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义
图14是图12中规则定义模块优选实施例的逻辑图,规则定义模块包括:第二分解单元21、第四判断单元22、第三定义单元23、规则确定单元24和第二存储单元25。其中,第二分解单元21用于将语义单元分解为多个节点;第四判断单元22用于分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中;第三定义单元23用于在判断所述校验属性无内置在预先存储的校验属性系统中时,定义新的校验属性;规则确定单元24用于将所分析的校验属性组合,以确定节点校验的规则定义;第二存储单元25用于使用与运营商的标识相关的规则定义配置文件来存储相应运营商的话单文件的规则定义。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (4)
1.一种自定义格式平面话单文件的处理方法,其特征在于,包括:
S10.分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
S20.分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;
S30.根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验;
在步骤S10中,具体包括:
S11.获取运营商提供的话单文件;
S12.将所述话单文件分解成多个语义单元;
S13.逐个判断每个语义单元是否内置在预先存储的语义单元系统中,若是,则进行步骤S14;若否,则定义新的语义单元,然后执行步骤S14;
S14.逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中,若是,则进行步骤S15;若否,则定义新的取值方式;
S15.分析节点属性,并判断节点是否具备子属性,若否,则执行步骤S16;若是,则分析子属性的取值方式,然后执行步骤S16;
S16.将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;
S17.使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
在所述步骤S20中包括:
S21.将语义单元分解为多个节点;
S22.分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中,若是,则执行步骤S23;若否,则定义新的校验属性,然后执行步骤S23;
S23.将所分析的校验属性组合,以确定节点校验的规则定义;
S24.使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义。
2.根据权利要求1所述的自定义格式平面话单文件的处理方法,其特征在于,预先存储在校验属性系统中的校验属性包括:节点名称、存在属性、存在条件、数据类型、数据长度、有效取值、存在属性错误码、非法值错误码。
3.一种自定义格式平面话单文件的处理系统,其特征在于,包括:
格式定义模块,用于分别从不同的运营商提供的话单文件的格式信息中抽象出话单文件的格式定义,并使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
规则定义模块,用于分别从不同的运营商提供的话单节点校验的规则信息中抽象出节点校验的规则定义,并使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义;
处理模块,用于根据所获取的当前话单文件创建所对应的话单文件对象,并根据所述当前话单文件的运营商分别从相应的格式定义配置文件和相应的规则定义配置文件中装载格式定义和规则定义,然后调用所述格式定义和规则定义,并为所述当前话单文件对象设置格式和设置校验规则,且对所述当前话单文件对象进行编解码和校验;
所述格式定义模块包括:
获取单元,用于获取运营商提供的话单文件;
第一分解单元,用于将所述话单文件分解成多个语义单元;
第一判断单元,用于逐个判断每个语义单元是否内置在预先存储的语义单元系统中;
第一定义单元,用于在判断语义单元无内置在预先存储的语义单元系统中时,则定义新的语义单元;
第二判断单元,用于逐个判断每个节点的取值方式是否内置在预先存储的取值方式系统中;
第二定义单元,用于在判断节点的取值方式无内置在预先存储的取值方式系统中时,定义新的取值方式;
第三判断单元,用于分析节点属性,并判断节点是否具备子属性;
子属性分析单元,用于在判断节点具备子属性时,分析子属性的取值方式;
格式确定单元,用于将所分析的语义单元、取值方式、节点属性组合,以确定格式定义;
第一存储单元,用于使用与运营商的标识相关的格式定义配置文件来存储相应运营商的话单文件的格式定义;
所述规则定义模块包括:
第二分解单元,用于将语义单元分解为多个节点;
第四判断单元,用于分析每个节点的校验属性,并判断所述校验属性是否内置在预先存储的校验属性系统中;
第三定义单元,用于在判断所述校验属性无内置在预先存储的校验属性系统中时,定义新的校验属性;
规则确定单元,用于将所分析的校验属性组合,以确定节点校验的规则定义;
第二存储单元,用于使用与运营商的标识相关的规则定义配置文件来存储相应运营商的节点校验的规则定义。
4.根据权利要求3所述的自定义格式平面话单文件的处理系统,其特征在于,预先存储在校验属性系统中的校验属性包括:节点名称、存在属性、存在条件、数据类型、数据长度、有效取值、存在属性错误码、非法值错误码。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110417981.6A CN103164389B (zh) | 2011-12-14 | 2011-12-14 | 一种自定义格式平面话单文件的处理方法和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110417981.6A CN103164389B (zh) | 2011-12-14 | 2011-12-14 | 一种自定义格式平面话单文件的处理方法和系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN103164389A CN103164389A (zh) | 2013-06-19 |
| CN103164389B true CN103164389B (zh) | 2015-10-28 |
Family
ID=48587485
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201110417981.6A Active CN103164389B (zh) | 2011-12-14 | 2011-12-14 | 一种自定义格式平面话单文件的处理方法和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN103164389B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108809896A (zh) * | 2017-04-28 | 2018-11-13 | 阿里巴巴集团控股有限公司 | 一种信息校验方法、装置和电子设备 |
| CN108989422A (zh) * | 2018-07-12 | 2018-12-11 | 中国建设银行股份有限公司 | 一种报文及文件处理方法及系统 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1889617A (zh) * | 2005-08-26 | 2007-01-03 | 华为技术有限公司 | 移动通信系统中的计费方法 |
| CN101459746A (zh) * | 2007-12-13 | 2009-06-17 | 华为软件技术有限公司 | 一种话单解码方法及装置 |
| CN101754155A (zh) * | 2008-12-17 | 2010-06-23 | 中国移动通信集团山东有限公司 | 话单格式转换方法和装置以及话单处理方法和系统 |
-
2011
- 2011-12-14 CN CN201110417981.6A patent/CN103164389B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1889617A (zh) * | 2005-08-26 | 2007-01-03 | 华为技术有限公司 | 移动通信系统中的计费方法 |
| CN101459746A (zh) * | 2007-12-13 | 2009-06-17 | 华为软件技术有限公司 | 一种话单解码方法及装置 |
| CN101754155A (zh) * | 2008-12-17 | 2010-06-23 | 中国移动通信集团山东有限公司 | 话单格式转换方法和装置以及话单处理方法和系统 |
Non-Patent Citations (1)
| Title |
|---|
| 电信计费系统计费模块的设计与实现;谷晓栋;《中国优秀硕士学位论文全文数据库信息科技辑》;20100315;4.1.1.2节、4.1.2节 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103164389A (zh) | 2013-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Czarnecki et al. | Cool features and tough decisions: a comparison of variability modeling approaches | |
| CN106990952B (zh) | 基于Vue.js的表单校验方法及其系统 | |
| US8108368B2 (en) | System for processing and using electronic documents | |
| CN109379326B (zh) | Xml报文规则校验方法、设备和存储介质 | |
| US9043756B2 (en) | Compound versioning and identification scheme for composite application development | |
| US20120158807A1 (en) | Matching data based on numeric difference | |
| CN101345654A (zh) | 一种指标计算方法和装置 | |
| CN104598619A (zh) | 一种基于约束求解器的服务组合验证方法 | |
| CN112084167A (zh) | 一种权限过滤方法、装置及存储介质 | |
| CN103164389B (zh) | 一种自定义格式平面话单文件的处理方法和系统 | |
| CN103109289B (zh) | 基于web的脚本语言编辑方法、系统和web客户端 | |
| CN111160500B (zh) | 生成合同二维码的方法及装置、获取合同的方法及装置 | |
| CN101459746B (zh) | 一种话单解码方法和装置 | |
| US20140324918A1 (en) | Database Generation System, Method For Generating A Database, Product Line Management System And Non-Transitory Data Carrier | |
| WO2007076676A1 (en) | A method for automatically producing pdu coding-decoding code based on asn.1 definition | |
| CN108243015A (zh) | 一种话单信息提取方法、话单服务器及网管服务器 | |
| US12132620B2 (en) | System and method for artificial intelligence assisted service catalogue generation for network service provisioning | |
| CN110445752A (zh) | 一种支持多种can设备并灵活解析各类can报文的实现方法 | |
| CN116156053A (zh) | 语音质检方法、装置及电子设备、计算机可读存储介质 | |
| CN101808175B (zh) | 话单转换方法及装置 | |
| Trecka et al. | Workflow completion patterns | |
| CN114924780B (zh) | 应用系统参数的正则表达式生成和合法性校验方法及装置 | |
| CN110297651A (zh) | 协议接口的常用变量的更新方法和装置 | |
| Tóthfalusi et al. | TACO-A Generative AI Copilot for Intent-based Telecommunication Core Network Analysis | |
| Mäkelburg et al. | Automating Invoice Validation with Knowledge Graphs: Optimizations and Practical Lessons |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CP03 | Change of name, title or address |
Address after: 518048 Guangdong province Futian District Shenzhen City Binhe Road, No. 9023, building 11, 41 layers of the country through the Patentee after: Medium shift information technology Co., Ltd. Address before: 518048 Guangdong, Shenzhen Binhe Road, No. 9023 building, state building, floor, No. 14 Patentee before: China Mobile (Shenzhen) Co., Ltd. |
|
| CP03 | Change of name, title or address |