CN104572216A - 一种业务元素的通用描述方法 - Google Patents
一种业务元素的通用描述方法 Download PDFInfo
- Publication number
- CN104572216A CN104572216A CN201510040231.XA CN201510040231A CN104572216A CN 104572216 A CN104572216 A CN 104572216A CN 201510040231 A CN201510040231 A CN 201510040231A CN 104572216 A CN104572216 A CN 104572216A
- Authority
- CN
- China
- Prior art keywords
- business
- business element
- attribute
- persistence
- service
- 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.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种业务元素的通用描述方法,属于计算机ERP软件开发领域。该方法包括:以业务解耦为出发点,聚焦ERP系统内部的业务公共资源,抽象提取为具有一类或者一簇业务含义的通用业务元素,提供给各个模块和服务来调用;ERP系统中各个模块使用业务元素时遵循低耦合、各取所需的使用规约,并且在业务元素发生变化时,任何使用业务元素的模块都将动态的应用这些变化。与现有技术相比,发明的方法使得使用业务元素开发的ERP系统具备非常高的业务一致性以及可复用性,同时在很大程度上降低了各个模块因业务公共资源产生的间接依赖,并实现了业务公共资源在设计和使用上的统一。
Description
技术领域
本发明涉及计算机ERP软件开发领域,具体地说是一种ERP系统中业务元素的通用描述方法。
背景技术
在ERP系统中,各个模块之间并不是相互独立的,更多是各个模块通过服务的方式进行互相调用、协作。模块间既然存在服务的调用和协作,其耦合性随之存在。这种耦合性主要分为两类:一类是模块或服务之间的直接依赖;第二类是模块或者服务通过业务公共资源产生的间接依赖。在实际的开发过程中,软件开发人员通过各种控制反转容器和框架尽可能的降低这种模块和服务间的耦合性,即直接依赖。但是因为业务公共资源产生的间接依赖,隐式地增加了模块间的耦合度。诸如基础数据帮助、区域与语言设置、枚举、领域模型间的关联、表单界面标签、业务实体状态等此类的业务相关的公共资源,广泛的在ERP系统的各个模块内部使用,同时出现了重复定义、含义不一致、相互引用等设计问题。因此,如何更好的抽象和提取ERP系统内部的业务公共资源层,降低各个模块之间的隐式依赖,是ERP软件亟需解决的设计问题。
发明内容
本发明的技术任务是针对上述现有技术的不足,提供一种业务元素的通用描述方法。
本发明的技术任务是按以下方式实现的:一种业务元素的通用描述方法,其特点是:以业务解耦为出发点,聚焦ERP系统内部的业务公共资源,抽象提取为具有一类或者一簇业务含义的通用业务元素,提供给各个模块和服务来调用;
ERP系统中各个模块使用业务元素时遵循低耦合、各取所需的使用规约,并且在业务元素发生变化时,任何使用业务元素的模块都将动态的应用这些变化。
作为优选,所述通用业务元素包括业务元素类型、持久化属性域、业务属性域、扩展属性域。
所述业务元素类型:用于描述业务元素的分类,不同类型的业务元素可应用的业务场景有所不同;所述持久化属性域:用于描述业务元素与持久化相关的属性,作用于业务的持久化场景;所述业务属性域:用于描述业务元素通用的、核心的业务属性,作用于业务的逻辑处理场景;扩展属性域:所述用于描述业务元素的扩展属性,提供一种通用的方式作用于业务的扩展场景。
作为优选:所述业务元素类型包含简单单一型业务元素和复杂复合型业务元素。在企业级应用软件领域,面向各类复杂的业务功能,从抽象和业务重用的角度考虑,抽取出以上两种类型的业务元素,以满足常用企业应用的开发。其中:简单单一型业务元素定义了一个有业务含义的单元,只能表述某一类业务含义,常见的有单据状态业务元素,除了表述业务单据的状态之外,没有其他含义。复杂复合型业务元素定义了多个具有不同业务含义的单元,这多个不同业务含义的单元必须同时存在,表述了一簇业务含义。常见的,金额业务元素,其包含币种和数字两个业务单元,必须通过币种和数字的组合才能代表金额这类业务含义。
对于业务元素的持久化域,从字面上可以理解为业务元素的持久化属性。在纷繁复杂的业务系统中,持久化的需求是最常见的业务需求,无论是持久化到数据库,还是文件系统,或是内存,业务元素可以通过不同的形式进行持久化处理。因此,业务元素以技术域的方式来统一描述其持久化属性,来满足不同持久化需求,主要支持对数据库、文件系统、内存的持久化。其中:
业务元素的数据库持久化,主要是面向数据库进行持久化操作。数据库支持业界主流的Oracle、MS SQL Server、MySQL等数据库。业务元素在数据库中以一个字段或者多个字段的形式存储在数据表中。既然使用数据表字段进行存储,那么业务元素的技术域必须涵盖数据表字段持久化所需的属性。因此,在数据库持久化选项中,业务元素的技术域包含以下属性:
l 字段名称;
l 字段数据类型;
l 字段长度;
l 字段精度。
其中,字段的数据类型抽象为一种通用的数据类型,支持上述的三大主流的数据库。例如,可变长字符型,对应Oracle中的Varchar2,对应MS SQL Server中的Varchar,对应MySQL中的Varchar。可以看出,业务元素的技术域在一定程度上屏蔽了数据库的差异。
常用的需要数据库持久化的业务元素例如:单据编号。其技术域为:字段名称:Code;字段数据类型:字符型;长度16。
业务元素的文件系统持久化,主要是面向文件系统进行持久化操作。例如ERP系统中附件。在文件系统持久化选项中,业务元素的技术域包含以下属性:
l 文件类型:图片、文档、声音、视频;
l 存储方式:文件服务器、数据库;
l 逻辑存放路径;
l 是否启用压缩。
业务元素的内存持久化,主要是面向内存进行的持久化操作。例如ERP系统中存放在内存缓存中的配置、基础数据等对象,方便快速读取。在内存持久化选项中,业务元素的技术域包含以下属性:
l 缓存类型:一级缓存、二级缓存;
l 是否逐出;
l 加载模式:懒加载、立即加载;
l 缓存时间。
对于业务元素的业务属性域,即业务元素所承载的业务属性。在ERP系统中,对业务元素的抽取是非常重要的。合理的抽取业务元素,可以大大降低各个模块的开发重复率,并且可以避免业务定义的差异。例如,单位编号这一类型的业务元素,各个模块但凡使用单位编号的业务场景,都可以引用单元编号业务元素,其在各个模块中所具备的业务含义是完全一致的。
所述业务属性域指:在整体层面抽象提取出具有相同业务含义的业务元素,以业务属性域的方式来描述业务元素的业务属性。总体上讲,业务元素的业务属性域包含两大类属性集合:
第一大类是与业务逻辑处理相关的属性集合,主要有:
l 业务数据类型:String、Int、Decimal、Long、Float等;
l 默认值;
l 长度;
l 精度;
l 是否关联以及关联配置;
l 是否帮助参照以及帮助参照配置;
l 是否枚举以及枚举配置;
l 是否计算型业务元素以及计算表达式;
l 校验规则;
第二大类是与展现相关的属性集合,主要有:
l 长文本;
l 短文本;
l 是否必填;
l 控件类型;
l Label及Label的长度。
上述两大类业务属性集合,满足了ERP系统中常见的业务需求。可以看出,业务元素的业务属性域抽取了业务中最基本的、最细粒度的属性,这些最基本的业务属性,正是ERP系统使用最频繁的属性。
对于业务元素的扩展属性域,设计上主要是为了实现业务元素的可扩展性和灵活性的需求。任何一个业务元素都无法完全满足各式各样的业务需求,通过使用扩展属性域的方式实现业务元素的可扩展性和灵活性。业务元素的扩展属性域也是一个属性集合,和结构明确的业务属性域不同,扩展属性域是通用的键值对属性集合,是一种更加普适的设计和实现。
对于业务元素的使用规约,即业务元素的统一使用方式。业务元素的使用必须遵循一种低耦合、各取所需的使用规约,同时业务元素实例的管理应交由业内成熟的Ioc控制反转容器来管理,将因业务元素的而产生的耦合性降到最低。
各个模块遵循各取所需的原则来使用业务元素,例如系统的持久化层,能且只能使用业务元素的持久化属性域;业务逻辑层能且只能使用业务元素的业务属性域。即系统中的各个层次只关注和使用和本层次相关的业务元素属性。
同时,在业务元素发生变化时,任何使用业务元素的模块都应动态地应用这些变化。
通过上述规约,以达到业务元素的使用统一。
本发明的业务元素的通用描述方法中,在ERP系统下,通过业务元素这一层的抽象和提取,将大大减少了业务功能的重复开发工作量。因为业务元素涵盖了业务中最基本的、最细粒度的属性,这些最基本的业务属性,正是ERP系统使用最频繁的属性。同时,ERP系统中各个模块使用业务元素遵循低耦合、各取所需的使用规约,并且在业务元素发生变化时,任何使用业务元素的模块都将动态的应用这些变化。这在很大程度上降低了各个模块因业务公共资源产生的间接依赖,并实现了业务公共资源设计和使用的统一。
附图说明
附图1是本发明方法中业务元素结构示意图;
附图2是本发明方法中业务元素使用示意图。
具体实施方式
参照说明书附图以具体实施例对本发明的业务元素的通用描述方法作以下详细地说明。
实施例:
如附图1所示,本发明方法中通用业务元素包括业务元素类型、持久化属性域、业务属性域、扩展属性域和业务元素的使用规约五个部分。
以本发明的业务元素描述方法定义ERP系统中的常用业务元素:
ERP开发人员在完成业务领域建模之后,将单位编号设计为通用的业务元素,提供给各个业务模块使用。
首先,第一步定义业务元素的类型和基本信息:
l 编号:BU_OrgnizationCode;
l 名称:单位编号;
l 类型:简单单一型业务元素。
第二步定义业务元素的持久化属性,单位编号涉及数据库持久化和内存持久化(方便快速读取),即将单位编号信息持久化到数据库和内存中,但不涉及文件系统不存在持久化需求,因此:
持久化类型:数据库持久化、内存持久化;
数据库持久化属性:
l 字段名称:OrgnizationCode;
l 字段数据类型:字符型;
l 字段长度:16;
l 字段精度:0;
内存持久化属性:
l 缓存类型:二级缓存;
l 是否逐出:否;
l 加载模式:懒加载;
l 缓存时间:最长时间。
第三步定义业务元素的业务属性,其中,与业务逻辑相关的业务属性配置如下:
l 业务数据类型:String;
l 默认值:空;
l 长度:16;
l 精度:0;
l 是否关联以及关联配置:关联Orgnization业务模型;
l 是否帮助参照以及帮助参照配置:参照Orgnization帮助;
l 是否枚举以及枚举配置:否;
l 是否计算型业务元素以及计算表达式:否;
l 校验规则:空。
其次,与展现相关的属性配置如下:
l 长文本:单位编号;
l 短文本:单位编号;
l 是否必填:是;
l 控件类型:帮助型TextBox;
l Label:单位编号;
l Label长度: 16。
通过上述三个步骤已经设置完成单位编号这个通用业务元素,其持久化属性和业务属性都已经根据实际业务需求配置完成,扩展属性目前还不需要配置。
在完成了单位编号通用业务元素的定义之后,各个业务模块就可以在各自的设计实现中使用它。如附图2所示,各个模块遵循各取所需的原则来使用业务元素,以ERP系统中总账模块的凭证业务举例,凭证使用了单位编号业务元素,在持久化层存在 OrgnizationCode字段,统一使用单位编号业务元素的持久化属性;在业务逻辑层存在单位编号关联,统一使用单位编号业务元素的业务逻辑属性配置;在展现层UI界面上,单位编号统一使用单位编号业务元素的业务属性中的展现属性。设计上达到了各个层次只关注和使用和本层次相关的业务元素属性。
同时,在业务元素发生变化时,任何使用业务元素的模块都可以动态地应用这些变化。
Claims (5)
1.一种业务元素的通用描述方法,其特征在于:
以业务解耦为出发点,聚焦ERP系统内部的业务公共资源,抽象提取为具有一类或者一簇业务含义的通用业务元素,提供给各个模块和服务来调用;
ERP系统中各个模块使用业务元素时遵循低耦合、各取所需的使用规约,并且在业务元素发生变化时,任何使用业务元素的模块都将动态的应用这些变化。
2.根据权利要求1所述的业务元素的通用描述方法,其特征在于,所述通用业务元素包括业务元素类型、持久化属性域、业务属性域、扩展属性域:
业务元素类型:用于描述业务元素的分类,不同类型的业务元素可应用的业务场景有所不同;
持久化属性域:用于描述业务元素与持久化相关的属性,作用于业务的持久化场景;
业务属性域:用于描述业务元素通用的、核心的业务属性,作用于业务的逻辑处理场景;
扩展属性域:用于描述业务元素的扩展属性,提供一种通用的方式作用于业务的扩展场景。
3.根据权利要求2所述的业务元素的通用描述方法,其特征在于,所述业务元素类型,包含简单单一型业务元素和复杂复合型业务元素。
4.根据权利要求2所述的业务元素的通用描述方法,其特征在于,所述持久化属性域指:业务元素以属性集合的方式描述其持久化属性,以满足不同场景的持久化需要。
5.根据权利要求2所述的业务元素的通用描述方法,其特征在于,所述业务属性域指:在整体层面抽象提取出具有相同业务含义的业务元素,以业务属性域的方式来描述业务元素的业务属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510040231.XA CN104572216A (zh) | 2015-01-27 | 2015-01-27 | 一种业务元素的通用描述方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510040231.XA CN104572216A (zh) | 2015-01-27 | 2015-01-27 | 一种业务元素的通用描述方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572216A true CN104572216A (zh) | 2015-04-29 |
Family
ID=53088374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510040231.XA Pending CN104572216A (zh) | 2015-01-27 | 2015-01-27 | 一种业务元素的通用描述方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572216A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529027A (zh) * | 2016-11-09 | 2017-03-22 | 济南浪潮高新科技投资发展有限公司 | 一种组织建模方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262453A1 (en) * | 2004-05-21 | 2005-11-24 | Luca Massasso | Modular data management system |
CN102902543A (zh) * | 2012-09-29 | 2013-01-30 | 山东浪潮齐鲁软件产业股份有限公司 | 一种Web服务应用框架模型 |
CN102937965A (zh) * | 2012-09-29 | 2013-02-20 | 山东浪潮齐鲁软件产业股份有限公司 | 一种基于数据模型的元系统设计方法 |
CN103957188A (zh) * | 2014-03-24 | 2014-07-30 | 浪潮集团山东通用软件有限公司 | 一种对称的双向解耦的企业服务描述方法及服务调度系统 |
-
2015
- 2015-01-27 CN CN201510040231.XA patent/CN104572216A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262453A1 (en) * | 2004-05-21 | 2005-11-24 | Luca Massasso | Modular data management system |
CN102902543A (zh) * | 2012-09-29 | 2013-01-30 | 山东浪潮齐鲁软件产业股份有限公司 | 一种Web服务应用框架模型 |
CN102937965A (zh) * | 2012-09-29 | 2013-02-20 | 山东浪潮齐鲁软件产业股份有限公司 | 一种基于数据模型的元系统设计方法 |
CN103957188A (zh) * | 2014-03-24 | 2014-07-30 | 浪潮集团山东通用软件有限公司 | 一种对称的双向解耦的企业服务描述方法及服务调度系统 |
Non-Patent Citations (1)
Title |
---|
李颖: "《基于关系数据库的对象持久化及性能优化研究》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529027A (zh) * | 2016-11-09 | 2017-03-22 | 济南浪潮高新科技投资发展有限公司 | 一种组织建模方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615142B2 (en) | Mapping and query service between object oriented programming objects and deep key-value data stores | |
US10311062B2 (en) | Filtering structured data using inexact, culture-dependent terms | |
US9870202B2 (en) | Business object model layer interface | |
CN103377289B (zh) | 统一表查询处理 | |
CN103425723B (zh) | 删除多级存储架构中的记录而不进行记录锁定 | |
US8095570B2 (en) | Decorated model architecture for efficient model-driven application development | |
US9575819B2 (en) | Local buffers for event handlers | |
US8874601B2 (en) | SADL query view—a model-driven approach to speed-up read-only use cases | |
CN109947422B (zh) | 一种基于领域驱动设计的业务实体实现方法及系统 | |
CN111858615B (zh) | 数据库表生成方法、系统、计算机系统和可读存储介质 | |
US20190377561A1 (en) | Transforming non-apex code to apex code | |
WO2018114366A1 (en) | Automatic ontology generation | |
US20210374146A1 (en) | Framework and metadata artefacts for updating data artefacts | |
US20130151571A1 (en) | Interface defined virtual data fields | |
US20160350209A1 (en) | Selective Bypass of Code Flows in Software Program | |
US10521426B2 (en) | Query plan generation for split table query operations | |
CN111538794A (zh) | 一种数据融合方法、装置及设备 | |
US8589451B1 (en) | Systems and methods for generating a common data model for relational and object oriented databases | |
US10650021B2 (en) | Managing data operations in an integrated database system | |
CN102819542A (zh) | 展现实例文档的方法及装置 | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN104572216A (zh) | 一种业务元素的通用描述方法 | |
US20180203914A1 (en) | Document Clustering In In-Memory Databases | |
US10997160B1 (en) | Streaming committed transaction updates to a data store | |
CN101799822A (zh) | 分层网状知识模型建模方法及知识仓库系统建立方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |