1.引言
目前,商品的销售模式大都采用批发+零售的销售模式,其中批发代理又可以分为不同的级别。下级经销商进货量与上级批发商所得利润成正比,根据下级批发商的销售量的多少,上级批发商都会有相应的返利和促销政策以激励下级经销商,以达到共赢。本文研究的对象是作为上级批发商的企业的业务流程管理需求。目前企业可以使用的管理软件很多,但是大多是标准版本,没有细致进行分类,标准版本可以满足企业相同一部分的需求,还有一部分还需要根据企业的实际情况进行分类补充。
本文针对批发销售企业业务流程的实际需求及采用面向服务架构技术的优点,提出一种SOA架构下基于BPM的产品批发业务集成平台框架。通过采用SOA框架,企业可以最大限度地减少系统间的耦合,提高资源可重用性。通过采用BPM实现工作流程的自动化和灵活性。
2.技术支持
2.1面向服务架构SOA
SOA(Service Oriented Architecture)是一种架构方法。它面向服务架构,可以根据需求通过网络将应用程序的不同功能单元(称为服务)通过定义良好的借口和协议联系起来。接口是采用中立的方式进行定义。独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种各样的系统中的服务可以以一种统一、通用的方式进行交互。SOA具有开放性、可扩展性、松藕合等特点,因为没有绑定到具体的平台,所以当整个应用程序服务的内部结构和实现发生改变时,能够继续存在,并为企业提供所要求的能力。
2.2业务流程管理BPM
BPM(BusinessPi.ocessManagement)。即业务流程管理。是以构造规范化的业务流程为中心,推进人与人之间、人与系统之间以及系统与系统之间的信息流通及整合。从管理的角度来看,BPM是将流程作为一种新的抽象数据类型。以流程作为直接操作和管理的基本对象。从技术的角度来看,BPM是流程自动化和系统设计的发展方向。
基于BPM的系统包含有企业的关键流程。系统可以监控、修改、优化流程,可以以数据、图形、报表等形式给出哪些流程合理,哪些流程需要调整。随着企业的流程不断地执行和优化,形成企业自己的特点,给企业的领导者提供决策的依据。
3.产品批发业务集成平台设计
3.1设计思想
目前企业所使用的管理软件越来越多,比如ERP、CRM等。在构建一个新的平台时,必须要考虑到如何与现有管理软件进行信息的交流和共享,避免出现信息孤岛和资源的重复,在设计时利用了SOA架构,可以和多种业务系统整合。最大限度地减少系统问的耦合。提高数据利用率。同时,现代企业逐步转向以业务流程为中心的管理,所以在设计时采用BPM,通过组合单独业务和流程实现复杂的业务应用。SOA架构下的BPM,可以把业务流程变成独立于应用程序及其运行平台的可复用组件,将变化的流程图与实际的IT系统有机地联系在一起。使企业的业务流程更高效、架构更灵活。
3.2平台设计架构
图1为基于BPM的产品批发业务集成平台架构图,系统总体架构分为四层,各层详细功能如图l所示。
(1)系统平台层
该层主要是完成系统资源上的支持以及对企业原有系统与现有平台进行资源交互的整合,为平台提供各种应用接口,包括企业内部和企业外部信息。数据方面,在保持对各系统数据的正确存取的情况下,实现对各数据源的统一访问管理。消息服务上,应用基于XML的企业服务总线作为服务传输的核心,它在整个面向服务架构中处于非常重要的位置。
(2)BPM服务层
该层主要是为BPM的应用实现过程中提供各种业务规则和逻辑。包括流程原子任务、任务间的控制流、任务间的数据流以及流程相关的规则。并将某些功能封装成为可重用的服务提供给上层调用。以供组合成各种业务流程。
工作流引擎是对业务流程上的定义与管理,规则引擎则是对业务规则进行定义与管理。规则库是把所有的业务活动抽离出来,按照规则进行存储。
图1 产品批发业务集成平台框架
(3)流程控制层
该层的主要功能是对系统所有业务流程进行创建、管理和维护。应用T作流引擎和规则引擎,结合企业实际业务需求,创建工作流模型库和规则模型库。
(4)应用表示层
该层是根据批发销售企业业务流程的实际需求,所提供的系统应用。主要分为以下模块:
工作流程管理模块:该模块完成的主要功能包括企业中工作流程的建立、工作流程的修改。该模块根据企业的实际情况定制工作流程,是企业进行各项丁作的基础。
销售政策管理模块:该模块主要功能是建立奖励政策规则库。在实际的批发销售企业中,为了提高下级经销商的热情,需要进行奖励优惠,比如轮胎批发中下级经销商本月销售额达到100万,下月的进货价格会打折等。根据下级经销商的销售额进货量的多少进行不同的返利,赠送赠品等激励促销奖励政策。制定好规则后,系统会直接根据经销商完成的销售额与规则库中的规则进行匹配,自动计算出优惠额度和赠品。
智能统计分析模块:该模块与企业ERP对接,统计经销商的进货量包括某一期间内的进货量、每月进货量,每年进货量,分析与其同期相比进货量的变化,出现大幅度变化时智能提醒。比如有客户近期未订货,实现自动预警,提醒管理层,并及时了解情况分析原因。
智能客户管理模块:该模块主要用于下级经销商和上级批发商的客户基本信息的记录。如企业中已有CRM,可以直接与CRM进行对接。
智能短信提醒模块:该模块的主要功能是对客户进行智能提醒。包括发货通知,自动催款通知。自动促销通知等。比如发货通知,编辑发货数量、名称、发货时间大约到达时间等信息。
组织机构管理模块:该模块主要完成岗位授权,岗位角色调整,用期管理,智能员工评分等。
4.平台模块功能实现举例
整个平台使用JSP来实现系统页面,业务流程管理引擎采用JBPM,数据库存储支持采用Hibernate实现。现以员工请假流程介绍实现过程。
(1)创建流程图
系统中使用BPM引擎JBPM提供的可视化流程建模插件。通过分层建模的方式,先对各系统模块问进行建模,其次对各模块内部各自进行流程建模,最终完成对整个仓储物流管理系统的业务流程建模。
(2)流程定义文件的XML代码
流程处理层由JBPM引擎将流程规剐单独提取出来,接收和解析业务瀛程模型定卫。并通过不同的代理类调度实现。员工请假业务流程配置文件描述如下:
<task-node name=”人事处理请假单”> <task name=”请假人事处理”> <assignment class=”com.hr.g3.jBPM.assignment.PersonnelAssignment”></assignment> </task> <transition to “邮件通知请假人”></transition> </task-node> <task-node name=”总经理审批请假单”> <task name=”总经理审核”> <assignment class=”com.hr.g3.jBPM.assigment.BossAssigment”></assignment> </task> <transition to=”邮件通知请假人”name=”boss disagree”></transition> <transition to=”人事处理请假单”name=”boss sgree”></transition> </task-node> <node name=”邮件通知请假人”> <action class=”com.hr.g3.jBPM.action.LeaveNotifyAction”></action> <transition to=”流程结束”></transition> </node> <end-state name=”流程结束”></end-state> |
</process-definition>
(3)创建数据库方法
public void testCreateDB() throws Exception{//获得 JBPMConfiguration 对象 JBPMConfiguration jBPMConfiguration=JBPMConfiguration.getInstance(); JBPMConfiguration.createSchema();} |
5.结束语
本文中的基于BPM的产品批发业务集成平台是根据山东某集团轮胎批发公司的实际需求设计而成,通过业务流程的设计与实现满足了企业需求,同时实现与其它信息系统的资源共享和应用集成,在产品批发企业中具有一定的代表性。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
在iBPM和BPM间做选择 不一定非此即彼
大多数系统都有一样的能力,在很多人看来,除了BPM或者iBPM这两个标签以外,实际上它们之间并没有任何区别。
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
用BPM策略对遗留应用现代化
一些人提议把业务流程管理作为应用现代化的手段之一,但也有人对此提出质疑,但采用BPM策略可以成为现代化遗留应用的明智方式。Tom Nolle对此进行了解释。
-
RESTful API设计给开发人员带来怎样的未来?
在模块化应用世界里,最为持久的争论莫过于面向服务架构和表述性状态转移之争了。本文探讨这样的争论带来了什么及其背后的原因。