- 281.00 KB
- 2022-05-17 15:59:24 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
电子化客户关系管理eCRM系统的设计与实现HarpinXoo诱发植物过敏反应和抗病性信号传导解析电子化客户关系管理eCRM系统的设计与实现摘要
客户关系管理强调以客户为中心,企业的活动围绕客户展开。本文旨在设计开发一个适合中小企业的客户关系管理系统,使企业应用客户关系管理的理念,提高企业的客户关系管理水平。本文根据中小企业特点,结合对CRM理论及相关技术的研究和对系统的需求分析,确定了系统的实现方案。本文设计的系统采用Browser/Server三层体系结构模式进行设计。该系统应用MicrosoftSQLServer2000作为数据库服务器,采用MicrosoftVisualStudio.NET2005作为开发平台,使用C#语言进行应用程序的开发,应用ADO.NET技术实现在Internet上高效数据库通信。结合开发系统的需求特点,确定了eCRM系统功能模块和业务流程,完成了系统总体功能设计和各子系统的详细功能设计。本文eCRM系统设计实现了客户资源管理、客户发展管理、客户服务管理、分析决策管理、基础配置管理五个子系统。通过对分析决策算法的研究,本文为分析决策功能设计了如下算法:因素影响评估算法、绩效评估算法、投诉评估算法,运用这些算法分别实现了客户流失原因评估分析、员工绩效评估分析、员工投诉评估分析等,为企业决策提供分析决策依据。根据系统设计原则,按子系统功能模块开发实现了各个子系统的具体功能。通过对存储过程的研究,利用存储过程高效灵活地对数据库进行访问,提高了系统的运行效率。本文设计实现的eCRM系统可运行在Windows2000/2003操作系统上,并进行了系统的实验室测试,运行良好。
关键词:客户关系管理ADO.NET分析决策算法存储过程DESIGNANDIMPLEMENTATIONOFECRMSYSTEMABSTRACTCustomerRelationshipManagementstressesthecustomersascenter,andallworkofenterprisesaresurroundingcustomers.TheCustomerRelationshipManagementsystemwhichcouldbefitsmallandmedium-sizedenterprisesisdeveloped.TheenterprisesapplytheideaofCustomerRelationshipManagementtoimprovethemanagementleveloftheenterprises.UsingthetheoryanddevelopmenttechnologyofCRMsystemandtheanalysisofthesystemdemand,theprojectforeffectuatingthesystemisestablishedaccordingtothecharacteristicsofsmallandmedium-sizedenterprises.ThesystemisdesignedwithBrowser/Servermodelofthethree-tierarchitecture.MicrosoftSQLServer2000isadoptedasbackgrounddatabase,MicrosoftVisualStudio.NET2005isadoptedas
developingtool,C#isadoptedasdevelopinglanguageandADO.NETapplicationtechnologyisadoptedastheefficientInternetdatabaseaccess.Accordingtothecharacteristicsofsystemrequirement,thefunctionalmodeloftheeCRMsystemisestablished,thebusinessprocess,theoverallsystemfunctionstructureandsubsystemdetailedfunctionstructurearedesigned.TheeCRMsystemisdesignedinto5subsystems:CustomerResourceManagementSubsystem,CustomerDevelopmentManagementSubsystem,CustomerServiceManagementSubsystem,AnalysisDecisionManagementSubsystem,ConfigurationManagementSubsystem.Analysisanddecisionalgorithmisstudiedand3assessmentalgorithms:Factorsimpactassessmentalgorithm,PerformanceAssessmentAlgorithmandComplaintsassessmentalgorithmaredesigned.Usingthesealgorithmsinthesystem,assessmentanalysisofthereasonsforthelossofcustomers,employeeperformanceassessmentanalysis,customercomplaintassessmentanalysisetcareachieved,whichcanprovidetheanalysisdecisionbasisfortheenterprisedecision.Theconcretefunctionofeverysubsystemisdevelopedaccordingtotheprincipleofsystemdesign.thetechnologyofstoredprocedurisstudie,andthestoredprocedureisutilizeedtoefficientlyandflexiblyoperatedatabase,toimprovethesystemoperatingefficiency.Inthispaper,theeCRMsystemcanberunonWindows2000/2003/XPoperatingsystem.Itisdebuggedinlaboratoryandrunswell.
KEYWORDS:CRM;ADO.NET;Analysisanddecisionalgorithm;Storedprocedur目录I摘要IABSTRACT1第一章绪论11.1课题概述11.1.1课题来源11.1.2课题背景及意义21.2CRM理论及研究21.2.1CRM的概念21.2.2CRM的核心理念31.2.3CRM软件的基本功能41.3ERP与CRM的关系51.4CRM国内外研究现状及其发展趋势51.4.1CRM国外研究现状51.4.2CRM国内研究现状71.4.3CRM的发展趋势
71.5本论文的主要研究内容8><#004699">81.6本章小结9第二章系统需求分析及系统功能设计92.1系统开发背景102.2系统需求分析102.2.1系统功能需求分析112.2.2系统特性需求分析122.2.3系统的实现方案142.3系统功能模块设计142.3.1系统总体设计162.3.2基础配置管理162.3.3客户资源管理172.3.4客户发展管理1<#004699">82.3.5客户服务管理192.3.6分析决策管理202.4数据库技术应用202.4.1数据库设计的方法212.4.2数据库设计的原则212.4.3数据库表设计242.4.4ADO.NET技术292.5本章小结30第三章分析决策管理相关算法研究与实现303.1因素影响评估算法303.1.1因素影响评估算法研究323.1.2因素影响评估算法实现
373.2绩效评估算法373.2.1绩效评估算法研究373.2.2绩效评估算法实现403.3投诉率评估算法403.3.1投诉率评估算法研究403.3.2投诉率评估算法实现423.4本章小结43第四章系统功能实现434.1设计原则444.2系统实现444.2.1系统业务流程444.2.2页面导航功能实现474.2.3基础配置管理系统474.2.4客户资源管理系统524.2.5客户发展管理系统554.2.6客户服务管理系统564.2.7分析决策管理系统5<#004699">84.3存储过程技术研究及应用634.4本章小结64第五章系统应用实践645.1页面导航功能645.2客户关系管理系统操作示例645.2.1基础配置管理675.2.2客户资源管理725.2.3客户发展管理
755.2.4客户服务管理7<#004699">85.2.5分析决策管理795.3本章小结<#004699">80第六章总结与展望<#004699">806.1总结<#004699">806.2展望<#004699">81参考文献<#004699">85致谢<#004699">86攻读学位期间发表论文情况第一章绪论1.1课题概述1.1.1课题来源本课题来源于广西壮族自治区南宁市科学技术局2005年实施的科技攻关项目:面向用户定制的中小企业ERP系统开发设计(20040209A)。1.1.2课题背景及意义随着电子商务的深入发展,以客户为驱动的生产战略越来越受到国内外企业的重视和认同。客户驱动经营模式有赖于在客户与企业内部之间建立一个畅通、快速、准确的信息系统,客户关系管理(CRM,CustomerRelationship
Management的缩写)系统是其中典型代表之一。从宏观上来看,整个社会经济的发展己经进入了以“客户”、“竟争”、“变化”为主线的新经济时代。在这个时代,产品同质化的趋势越来越明显,竞争的焦点也己经从产品的功能、价格的竞争转向品牌、服务的竞争,最终转为客户资源的争夺。所以,企业如何与客户建立和保持一种长期、良好的合作关系;如何掌握客户资源、赢得客户信任;如何根据客户需求及价值,制定出企业发展战略和市场策略,提供满足客户需要的产品和服务,将是企业竞争力的关键所在。文献[1]-[4]认为,CRM的核心思想是以客户为中心,它是企业从传统的“以产品为中心”的经营理念发展为“以客户为中心”的产物。这就意味着企业将把客户作为其动作的核心,也就是说企业的一切活动都是围绕客户展开,客户需要什么,企业就做什么。CRM的宗旨就是改善企业与客户的关系,使客户时刻感觉到企业的存在,企业随时了解到客户的变化。这种思想将推动企业最大限度的利用其与客户有关的资源,实现企业从市场营销到销售到最后的服务和技术支持的交义立体管理。20世纪<#004699">80年代Intenret的诞生,在信息技术领域成为一个新的起点,也是一次深远的革命。信息技术不仅使每个人受益,同时从这一刻开始,它真正使得整个社会作为一个整体从信息技术中获益,工业化社会从此开始了向信息化社会的过渡。Intenret技术的成熟使信息化技术的开发达到了一个新的高度。1.2CRM理论及研究1.2.1CRM的概念客户关系管理(CustomerRelationshipManagement)最初起源于20世纪<#004699">80年代初提出的“接触管理”(Contact
Management),即专门收集整理客户与公司联系的所有信息。经历了20多年的不断发展客户关系管理不断演变发展并趋向成熟,最终形成了一套完整的管理理论体系。CRM就是客户关系管理,从字义上看,是指企业用CRM来管理与客户之间的关系。CRM是选择和管理有价值客户及其关系的一种商业策略,CRM要求以客户为中心的商业哲学和企业文化来支持有效的市场营销、销售与服务流程。如果企业拥有正确的领导、策略和企业文化,CRM应用将为企业实现有效的客户关系管理。CRM的概念由美国Gartner集团率先提出。CRM是辨识、获取、保持和增加“可获利客户”的理论、实践和技术手段的总称。它既是一种国际领先“以客户为中心”的企业管理理论、商业策略和企业运作实践,也是一种以信息技术为手段、有效提高企业收益、客户满意度、雇员生产力的管理软件。文献[5][6]认为,CRM是一个获取、保持和增加可获利客户的方法和过程,是企业利用IT技术和互联网技术实现对客户的整合营销,是以客户为核心的企业营销的技术实现和管理的实现。文献[7][<#004699">8]认为,CRM是一种技术手段,它的根本目的是通过不断改善客户关系、互动方式、资源调配、业务流程和自动化程度等,达到降低运营成本、提高企业销售收入、客户满意度和员工生产力。企业以追求最大赢利为最终目的,进行客户关系管理是达到上述目的的手段,CRM的应用是立足企业利益的,同时方便了客户,让客户满意。
在企业管理中,CRM将首当其冲地应用于各企业的销售、销售组织和服务组织,为企业带来长久增值和竞争力。1.2.2CRM的核心理念1、以客户为中心:客户是交易的主导者,客户决定购买的选择,客户满意才能赢得客户,以客户为中心的经营理念有三个重要的关注点:即客户利润率,客户购买的选择标准以及客户细分,也就是根据客户需求特征细分客户,满足客户购买的选择标准,实现客户利润率的最大化。2、让客户更满意:竞争的本质是围绕客户满意度的竞争。3、差异化竞争:通过市场细分和个性化服务来获得差异化的竞争优势成为企业经营战略的发展潮流,是CRM以客户为中心的思想在企业竞争战略中的一种体现。CRM主张根据客户的需求细分市场,通过对细分市场的个性化服务提高客户满意度,更好的获得和保持客户[9]。4、完整的管理客户生命周期:准确的把握客户的生命周期,挖掘客户的潜在价值,是企业在激烈的市场竞争中发展客户,留住客户,提高销售,增强效益的关键。5、按价值管理客户:客户价值通常遵循2:<#004699">8原则,即20%的客户提供<#004699">80%的利润贡献,发现价值贡献最大的客户,并有效的获得和保持他们,成为企业经营的关键[10]。
6、有效的获得并保持客户:CRM通过对客户需求信息、营销过程信息、交易信息和客户服务信息的分析可以及时、准确的了解和把握客户状况,帮助企业有效的把握和管理好客户生命周期各环节的关键控制点,同时,通过CRM建立营销环节的信息化平台,使企业真正建立起以客户为中心的营销体系,改善营销环节的执行能力和管理能力[11]。7、改善营销和销售效率:通过合理的客户发展计划,提高营销和销售效率。<#004699">8、改善赢利能力:CRM通过建立不同的客户价值等级,并有效的区分,从而增强企业的盈利能力。9、降低营销成本:通过对客户信息的有效管理,利用对客户需求的实时掌握,运用合理的营销策略,降低营销成本[12]。1.2.3CRM软件的基本功能正是CRM的独创性的管理理念和管理手段,真正把“以客户为本”的观念结合到企业的日常业务之中,从而在多个方面改善企业的管理。CRM的基本功能可以归纳为三个方面:1、对客户资源进行统一管理,使企业客户信息实现企业级共享,加速企业对客户的响应速度。客户资源是企业重要的战略性资源,企业的一切经营活动、营销策略都是围绕“发现、保持和留住客户”。分散的客户信息、客户资料形成了对客户进行有效管理的屏障,因此,对客户资源进行统一管理十分重要。CRM改变了企业的运作流程,大大缩短了企业对客户的响应时间,企业也可以更敏锐的捕捉到客户的全面信息。也避免了由于销售人员的流失,同时也常造成客户的流失的风险。
2、对企业从市场营销到销售到最后的服务等业务实现交义立体信息化管理。有效的客户关系管理能够让员工根据公司或上级主管下达的市场营销和销售等任务,制定合理的计划;根据计划采取有效的具体的营销、销售和服务活动;对企业从市场营销到销售到最后的服务等业务实现交义立体信息化管理。3、对所积累下的信息进行加工处理,为企业的决策提供有效支持。客户关系管理的分析决策功能,可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。1.3ERP与CRM的关系从管理理念上,ERP的管理理念是提高企业内部资源的计划和控制能力,侧重于在满足客户、及时交货的同时最大限度地降低各种成本,通过提高内部运转效率来提高对客户的服务质量,可以说是以效率为中心。CRM的理念是以客户关系的建立、发展和维持为主目的。它们的理念在关注对象上有区别,与企业级的内部资源计划ERP相比,CRM的更关注市场与客户。CRM的作用主要在与客户直接接触的部门,它主要针对的是企业的市场营销、销售、服务部门,包括管理整个客户生命周期等各个阶段,为企业提供对客户的统计、跟踪、服务等信息化手段和功能[13]。也就是说,如果说ERP是企业级的全面管理应用的话,CRM就是ERP的最前端,它的作用延伸到了ERP以前力所不能及的范围之外。从应用系统的设计角度看,大部分CRM业务流程相对比较灵活,而ERP主要业务流程则相对固定。ERP系统是一个“事务处理”
系统,强调准确记录企业中人、财、物各项资源的轨迹,无缝集成企业生产、库存、财务等管理模块,提高企业的“自动化”能力,从而极大地降低人力需求及差错,提高效率。而CRM的体系设计以客户关系发展和维系为目标,系统以统一的客户数据库为中心,为系统用户提供统一的客户的信息和对客户的分析决策等。从上面管理理念和设计角度可以发现,ERP和CRM既有区别,又有很紧密的联系,重要的就在于他们最终都要使企业的利益最大化、长久化,使投资回报率(ROI)最高。CRM和ERP结合才能使企业一外一内两条腿走路。从价值链角度,两者相辅相成,不可或缺。CRM与ERP的整合,将不仅仅为企业带来销售业绩的增长,更是一次全面提升企业管理水平和方法的机遇,改变企业的内部管理积弊现状,从而提升企业的核心竞争力,带来更多的利润。1.4CRM国内外研究现状及其发展趋势1.4.1CRM国外研究现状客户关系管理是围绕客户生命周期的发生和发展,针对不同价值的客户实施以客户满意为目标的营销策略,通过企业级协同,有效的“发现、保持和留住客户”,从而达到发展客户、留住客户、缩短销售周期、降低销售成本、扩大销售量、增加收入与利润、抢占更多的市场份额,实现企业利润最大化的目的,最终提升企业的核心竞争力[14]。CRM自提出之后,其市场就一直以惊人的速度在增长。目前国外比较成熟的CRM软件产品主要有Siebel公司的SiebelSystem,SAP公司的MySAPCRM,Oracle公司的OracleCRM,微软公司的MicrosoftCRM等软件产品。
国外CRM软件的优势主要体现为:1、具有雄厚的实力,在技术力量的培养、研发、市场推广等方面大力投入;2、具有一批包括硬件厂商,数据库公司,咨询公司在内的合作伙伴,形成强强联手的格局;3、国外CRM软件伴随着管理理论的发展而发展,其设计思路蕴涵了西方先进的管理理念;4、国外CRM软件起步较早,完整性和成熟性高,开发了适用于不同行业的解决方案;5、西方发达国家已广泛使用这些CRM软件,并且与ERP系统和SCM系统集成,使得国外CRM系统的应用优势更加突出[15];6、国外CRM软件对于基于互联网技术的研究和支持不遗余力,使得其易用性大大加强[16]。国外CRM软件的不足:1、国外CRM软件本土化方面不尽如人意;2、国外CRM软件相对价格较高,对实施企业造成了较沉重的费用负担;3、国外CRM产品源自西方的管理思想,在有些方面不符合中国国情和中国商业环境的需要,企业实施风险大;4、本地技术力量支持不够。总的来说,国外CRM起步较早,产品历经上千家企业、上万个用户的检验,积累了丰富的管理和实施经验,软件较为成熟,稳定性很高,可扩展性较强,功能模块健全。但是,国外CRM软件在国内的实施应用存在一些不足也不能忽视。1.4.2CRM国内研究现状CRM在中国,最早应该追溯到互联网经济如日中天的1999年。1999年<#004699">8月6日朗讯科技(中国)公司商业通讯系统部在京举办了以“营造完美电信呼叫中心”
主题的研讨会,介绍了其全新的客户关系管理(CRM)解决方案,并强调指出,商业部门必须着眼于客户关系,提供独具特色的个性化服务,才能在网络经济时代立于不败之地。1999年9月27日,有国内IT第一媒体之称的《计算机世界报》连载关于Oracle细说客户关系管理(CRM)的文章。2000年3月27至4月4日Oracle公司首次在北京、上海、长沙等地举行了电子商务巡展活动。在这些巡展活动上,Oracle?公司介绍了其Internet平台产品Oracle?<#004699">8i和包括CRM、ERP、SCM、战略性企业管理系统(SEM)、Portal-To-Go在内的全面集成的电子商务解决方案。作为“泊来品”,CRM自1999年进入中国以来,经历<#004699">8年的发展,并没有如人们当初预期的那样成为“IT英雄”,CRM市场陷入尴尬局面。CRM除了在房地产、银行、保险等少数行业被小范围认可外,CRM更多给人的印象是“中看不中用”,高达45%的CRM实施失败率曾经让人们开始质疑CRM的可行性,与ERP概念逐渐为人们接受相比,CRM在中国正进入困难时期。然而,但这并不是说基于先进营销理念的CRM本身有什么问题,而是中国企业所处的市场环境及管理现状与西方企业有很大的区别。目前,国内大部分中小企业信息化基础还相对较差,还没有建立起基本的管理信息平台(MIS),大量关于客户、合作伙伴、产品、交易记录和商业机会的信息资料分散于各部门及员工的私人邮件、传真文件、文本文档、工作簿中,现在要求他们一步到位地导入标准化CRM体系,进行复杂的业务流程重组,将销售业务的运作和人员活动强行细分管理,这只能成为中小企业的不可承受之重。CRM在我国的几个特点[17]:1、还处在起步阶段,市场体系不完善,分化严重我国的CRM市场起步较晚,无论是从产品、区域、行业,还是从销售来看,整个市场体态都还不健全。目前主要集中在北京、上海等经济发达地区;而在应用行业则主要是信息化程度较高的行业为主。在这些地区和行业中也初步建立自己的信息化平台,而在其它地区和行业中则是闻之甚少。2、CRM逐渐被国内企业熟悉和接受,市场需求量加大在经过一段较长时间对客户关系管理系统的认识之后,CRM逐渐被国内众多的用户所熟悉和接受。在竞争激烈的信息化时代,客户关系管理系统给企业带来了更大的经济效益,这使得很多企业用户对CRM的市场需求加大。
3、缺乏适合的产品虽然自CRM进入国内后,很多软件厂商纷纷推出了自己的CRM产品,但是能够提供功能比较全面、适合中小企业的实际情况的CRM产品的国内厂商很少。1.4.3CRM的发展趋势根据企业需求,企业信息化行业进行预测,未来的CRM将会更为充分地体现Internet的根本要求。CRM技术的发展将会体现如下趋势:以Internet应用为核心并支持企业开展电子商务的eCRM将在今后成为CRM产品发展的一个重要方向[1<#004699">8]。从更广的意义上来讲,传统的CRM只是通过明确的规则和优化的工作流程帮助企业控制与客户的互动。但Internet将交流与达成交易的权力更多地移向客户一端,企业将不得不给予客户对于双方关系的更多控制权。例如以在线销售、客户服务、客户需要的信息等来架构商业交互的方式。只有真正基于Internet平台的eCRM产品,才能够支持未来企业全面电子化运营的需要。eCRM系统是决策支持需求驱动的系统,它以企业日常业务处理的各类数据为基础,利用数据库技术或商业智能系统,对业务数据进行综合分析或预测。在业务发展、企业市场经营战略等问题上为领导者提供决策帮助[19]。eCR
M不仅意味着能够由内到外为企业提供服务的系统,可以交互地处理客户的服务要求和销售任务。只有真正基于Internet平台的eCRM产品,才能够支持未来企业全面电子化运营的需要。以后会有越来越多的功能通过Web浏览器即可完成,以适应快速发展的电子商务对数据不断进行实时访问的要求[20]。通用模块完善、基于Web应用、决策支持需求驱动、支持电子商务的eCRM,将会是技术的发展方向和市场更需要的产品。1.5本论文的主要研究内容本文根据中小企业特点,结合对CRM理论及相关技术的研究和对系统的需求分析,确定了系统的实现方案。本文设计的系统采用B/S三层体系结构模式进行设计。该系统应用SQL2000作为数据库服务器,采用VS.NET2005作为开发平台,使用C#语言进行应用程序的开发,应用ADO.NET技术实现在Internet上高效数据库通信。结合开发系统的需求特点,确定了eCRM系统功能模块和业务流程,完成了系统总体功能设计和各子系统的详细功能设计。通过对分析决策算法的研究及分析决策功能实现,可以帮助企业挖掘信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。本文为分析决策功能设计了如下算法:因素影响评估算法、绩效评估算法、投诉评估算法,为企业决策提供分析决策依据。根据系统设计原则,按子系统功能模块开发实现了各个子系统的具体功能。通过对存储过程的研究,利用存储过程高效灵活地对数据库进行访问,提高了系统的运行效率。本eCRM系统设计实现了客户资源管理、客户发展管理、客户服务管理、分析决策管理、基础配置管理五个子系统。1.6本章小结
本章首先对课题的来源和课题研究的背景及意义作了概述,然后阐述了对客户关系管理理论的研究,分析了CRM国内外研究现状及客户关系管理系统发展趋势,最后阐述了本文课题研究的主要内容。第二章系统需求分析及系统功能设计2.1系统开发背景中小企业面临着越来越大的竞争,以客户为中心的思想逐渐成为其经营理念,于是客户关系管理被引入企业业务处理流程中,力图通过其支持和简化与客户相关联的业务流程,并将企业注意力集中于满足客户的需求和提高客户满意度上。目前,中小企业普遍面临的问题比较典型的有:客户信息方面:如何让企业对分散的客户信息进行整合;如何通过各种渠道了解客户更多信息;用哪些方式,缩短企业对客户的响应时间,更敏锐的捕捉到客户的全面信息。如何避免了由于销售人员的流失,同时也常造成客户的流失的风险。
客户发展方面:如何制定合理的客户发展任务、如何合理安排接触计划有效的执行并按期完成;怎样实时跟踪企业与客户的联系进展;如何发展更多客户,方便地进行网上销售,增加销量提高企业利润。客户服务方面:如何及时了解客户对产品的看法;如何及时处理客户的问题;如何加强企业后期的客户服务;如何提高客户的满意度和忠诚度。分析决策方面:如何对进行合理的绩效评估,激励员工更好的工作;如何进行有效的分析,把握市场新需求动态;如何对客户投诉信息和流失信息进行分析,为企业改进不良环节提供决策。eCRM为以上问题提供了比较好的解决方案,eCRM系统作为新一代信息化系统,可以有效地提高企业的竞争力。通过运用eCRM,企业对客户信息资源进行整合,实现客户资源共享,更有效地管理客户关系,建立客户与企业的沟通桥梁;通过运用eCRM,制定有效的营销策略和销售任务计划和具体行动,发展和保持更多的客户,方便地进行网上销售,增加销量;通过运用eCRM,从而为客户提供更快速、更周到的优质服务,能够使企业及时了解市场的变化,对市场迅速反映;通过运用eCRM分析决策功能,可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。总之,eCRM系统作为新一代信息化系统,运用“以客户为中心”理念,最大限度的利用其与客户有关的资源,实现企业从市场营销到销售到最后的服务和技术支持的交义立体管理。2.2系统需求分析2.2.1系统功能需求分析
一个成功的系统设计离不开好的需求分析,需求分析处于系统设计开发的初期阶段,其直接影响到后面的设计。本文对企业的客户关系管理功能需求做了较全面的分析。功能需求分析主要包含以下几个方面:1、高效的客户资源管理全面高效地存储、维护和查询客户信息。客户资源是企业最重要得战略性资源,企业的一切经营活动、营销策略都是围绕“发现、保持和留住客户”。分散的客户信息、客户资料形成了对客户进行有效管理的屏障,导致企业对客户的状况把握不准,从而使企业的营销策略出现偏差;同时客户与企业的关系也变成了孤立的客户与个人的关系。因此,对客户资源进行统一管理十分重要。将与企业有业务关系或者有潜在关系的客户的信息收集起来,统一放到数据库中,对客户信息进行企业级共享。完整的管理客户生命周期,准确的把握客户的生命周期,是企业在激烈的市场竞争中发展新客户,留住老客户,提高销售,增强效益的关键。通过建立信息化平台,使企业真正建立起以客户为中心的管理理念体系。客户特征细分客户,满足客户购买的选择标准,实现客户利润率的最大化。通过市场细分和个性化服务来获得差异化的竞争优势成为企业经营战略的发展潮流,是以客户为中心的思想在企业竞争战略中的一种体现。根据客户细分市场,通过对细分市场的个性化服务提高客户满意度,更好的获得和保持客户。
企业与客户直接接触时的对象是联系人,联系人是销售过程的重要角色,是企业与客户沟通的纽带和桥梁,企业与客户之间往往具有固定的一个或多个联系人,通过掌握联系人信息,企业可以很方便的与客户之间进行联系。客户流失信息方面的管理,根据对流失客户相关信息记录,总结分析流失原因,改善那些导致客户流失的环节,把流失客户重新转变为有效客户。2、合理的客户发展管理存储、维护和查询员工根据市场营销和销售任务及市场营销和销售任务而制定的客户发展任务、客户的接触计划,对计划执行进展的实时跟踪和对在线销售实时维护处理。有效的客户发展管理能让员工根据公司或上级主管下达的市场营销和销售任务,制定客户发展任务;根据客户发展任务,制定阶段性的客户联系人接触计划,并根据客户联系人接触计划安排具体的营销和销售活动;同时实时跟踪、维护和处理在线销售信息。3、周到的客户服务管理客户服务要有效处理企业与客户的沟通信息,获取、处理和维护客户投诉、客户新需求和客户合同信息。客户是交易的主导者,客户决定购买的选择,高客户满意才能赢得客户,更好的获得和保持客户。客户投诉管理是维护客户满意度的一项重要管理工作。客户新需求管理是保持客户、留住客户的一项重要管理手段,也是维护客户满意度的方法。有效的客户合同管理可以帮助企业更好的例行合同,提高客户满意度。
4、全面的分析决策管理开发的系统要有分析功能,通过分析功能可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。分析功能可以更好地增加企业对客户新需求等的研究分析,把握市场新需求动态,保持住老客户,发展新客户;通过对客户投诉信息和客户流失信息分析计算,可以指导企业进行相应方面改善,减少客户投诉和客户流失,提高客户满意度和忠诚度。2.2.2系统特性需求分析由于本系统是企业级的应用,具有涉及资源众多、事务密集、数据量大、用户数多和要有较强的安全性等特点。所以,在设计系统时,要充分考虑到系统承受高负荷负载的能力,系统连续使用的承受力,解决系统瓶颈问题的能力。为了提高系统性能需要采取如下的措施:1、需要拥有存储海量数据库的能力由于本系统是B/S结构,一个服务器要为多个用户服务,服务器和客户端之间需要传递大量数据,这就可能造成网络不同程度上的拥塞,减少网络中的数据流量无论是在降低系统负载还是解决系统瓶颈问题都起到了非常重要的作用。为了减少网络中数据的流量,采用了如下的措施:
(1)显示Web页面方面,尽量避免在一个页面上一次显示很多信息。在页面上显示很多的信息就意味着服务器要给客户端一次传递很多信息,为了避免网络拥塞,对检索出的上百条记录要进行分页显示。(2)利用缓存机制提高数据访问性能和效率。在Web应用程序中,大量从数据库中提取出来的要被重复使用的数据一般不会频繁改变。针对这种频繁访问数据库势必降低数据访问性能的情况,利用缓存机制将数据在内存中缓存起来,以减少频繁访问数据库的次数,从而提高数据访问性能和效率。2、系统响应时间要满足用户需求由于本系统是Web应用系统,系统的延迟是必须避免的。为了降低用户的等待时间,就要提高程序的执行效率,而其中对等待时间影响最大的程序段就是对数据库查询语句。为了解决这一问题在SQL语句尤其是Select语句的编写上提出了一些规范,同时,在进行数据库的查询时,采用了存储过程以提高对数据库操作的执行速度。3、系统需要具有较高的系统稳定性系统的稳定性是指系统的一些边缘故障。比如系统运行一直很好,只是偶尔出现一些奇怪的问题,但是找不到原因,经过重启或者重装之后就恢复正常,这就在考验系统的稳定性。从系统本身来说,不会无缘无故地出现问题,出现问题一定是在某个方面有缺陷,而且问题往往是出在设计上。如果要从设计角度去保障系统的稳定性就需要设计人员充分的考虑系统各个模块之间的关系,减少耦合度,使问题隔离起来。模块内部也是一样,最大的问题就出在内存的使用上,不过这就是编码的问题了。总之,稳定的系统需要专业的经验丰富的设计人员,合理的划分系统,详细设计做到足够细,避免在开发阶段出现问题。
4、系统需要具有较高的系统可靠性系统可靠性是指系统在规定的硬件平台支撑环境条件下,在规定时间范围内,依据系统功能需求或规格说明准确完成任务的能力。为保证系统的可靠性,需要对系统进行测试,尽可能找出系统中存在的问题,保证系统在投入使用后具有较高的可靠性。2.2.3系统的实现方案客户关系管理系统的结构设计,目前存在两种较为流行的模式:Client/Server(客户端/服务器)模式和Browser/Server(浏览器/服务器)模式。然而三层的B/S体系结构具有许多传统C/S体系结构不具备的优点,而且又紧密的结合了Internet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。ASP.NET是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序。它最大的优点除了编译执行速度快外,还有页面和代码分离的编写方式,再加上.NET库提供的支持事件的各种Web控件,使得采用ASP.NET编写Web程序比起以前的网页编写方式可谓是一场革命[21]。ASP.NET可以使用.NET平台快速方便的部署三层结构。ASP.NET革命性的变化是在Web页面中使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#,VB,J#
作为后台代码语言。.NET中可以方便地实现组件的装配,后台代码通过命名控件可以方便地使用自己定义的组件。表示层放在ASPX页面中,数据库操作和逻辑层用类来实现,这样就很方便地实现了三层结构。“三层结构”指的是逻辑上的三层,而非物理上的三层结构。第一层表示层,即Web浏览器。在表示层中包含系统的显示逻辑,位于客户端。其任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。第二层功能层,由具有应用程序扩展功能的Web服务器实现。在功能层中包含系统的事务处理逻辑,位于Web服务器端。其任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,然后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。第三层数据层:由数据库服务器实现。在数据层中包含系统的数据处理逻辑,位于数据库服务器端。其任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。
基于对客户关系管理模式的现状和需求分析,设计开发的客户关系管理系统要有适用范围广、异构和开放性强、平台技术稳定的特点,特别是适合网上处理的需要。考虑企业的实际需求,因此,本eCRM系统设计成三层架构模式,以B/S结构方式来对外部系统提供Web服务,以此来满足不同用户的分布访问。B/S结构具有分布性特点,可以随时随地地进行业务处理。系统中用户工作界面是采用Web浏览器来实现,能实现不同用户,从不同地点以不同接入方式访问和操作数据库。该系统采用MicrosoftSQLServer2000作为数据库服务器,MicrosoftVisualStudio.NET2005作为开发平台。使用其中的ASP.NET和C#语言进行Web应用程序的开发。系统采用ADO.NET作为数据访问基础,该系统可运行在Windows2000/2003/XP操作系统上。系统的整体结构如图2-1所示。图2-1系统的整体结构Fig.2-1TheOverallStructureofSystem2.3系统功能模块设计2.3.1系统总体设计根据需求分析,本系统的主要设计目标是实现方便、快捷、准确的跟踪、维护和管理企业客户信息和客户事务处理,并进行相关方面的分析,以客户为中心优化管理业务流程,帮助企业提高客户关系管理水平和效率。在本文中确定以下几个子系统来构建一个eCRM系统,包括客户资源管理子系统、客户发展管理子系统、客户服务管理子系统、分析决策管理子系统、基础配置管理子系统等。系统的整体结构图如图2-2所示。
本系统是一套功能较全面、操作简便、实用的信息管理系统。它主要任务是实现对企业的客户资源信息、客户发展信息和客户服务信息等进行管理进行管理、维护并进行分析。它比较全面的实现了企业客户关系管理的功能,体现了以客户为中心的思想。图2-2系统的整体功能结构图Fig.2-2TheOverallFunctionStructure2.3.2基础配置管理基础配置管理模块:主要包括一些系统运行需要的配置,基础配置是系统运行的基础。其包括客户所在区域、城市、客户状态(即客户所处生命周期的阶段)、客户等级、客户业务类型等的配置,如图2-3所示。图2-3基础配置管理详细功能结构Fig.2-3ConfigurationManagementDetailedFunctionStructure2.3.3客户资源管理客户资源是企业最重要的战略性资源,企业的一切经营活动、营销策略都是围绕“发现、保持和留住客户”。因此,对客户资源进行统一管理十分重要。客户资源管理模块就是为了解决以上问题而设计的。
客户资源管理系统模块:主要管理客户的资料信息、等级信息、业务类型信息,以及与企业有关系的联系人信息等。该模块下面有三个功能模块:客户资料管理、联系人管理、客户流失管理。该模块详细结构如图2-4所示。客户资料管理模块:设计了客户信息的添加、查询、编辑等功能。客户信息主要包括客户名称、客户地址、客户状态(即客户所处生命周期的阶段)、客户等级、客户类别、联系方式等信息。将客户资料信息收集起来,统一存储在数据库中,以便对客户资源进行统一管理,让企业对分散的客户信息实现整合。联系人管理模块:设计了联系人信息的添加、查询、编辑及联系人生日提醒等功能。联系人信息主要包括姓名、性别、生日、喜好、联系方式、所属的企业、其它个人信息等。联系人是销售过程的重要角色,是企业与客户沟通的纽带和桥梁,通过联系人生日提醒功能对客户进行客户关怀,可与联系人建立更紧密的关系。通过全面掌握联系人信息,企业可以很方便的与客户之间进行联系。图2-4客户资源管理详细功能结构Fig.2-4CustomerResourceManagementDetailedFunctionStructure客户流失管理模块:设计了对流失客户进行查询、编辑和分析,总结分析流失原因,改进提高那些导致客户流失的环节,把流失客户重新转变为有效客户,从而达到留住客户和提高管理水平的目的。2.3.4客户发展管理
客户发展管理系统模块:主要为了制定合理的客户发展任务及客户接触计划,及时和客户取得联系,对计划执行进展进行实时跟踪和实时跟踪、维护和处理在线销售信息,随时了解客户的情况,增加新客户、稳定已有客户。该模块下面设计了五个功能模块:员工资料管理、客户发展任务管理、客户接触计划管理、计划执行管理、在线销售管理。该模块详细结构如图2-5所示。员工资料管理模块:该模块设计目的主要是为了实现员工信息共享,从而实现客户发展行动的协同作业。设计了对员工信息的添加、查询、编辑等功能。员工信息主要包括姓名、性别、生日、部门、联系方式和其它个人信息等。发展任务管理模块:主要设计目的是为了实现员工根据公司或上级主管下达的市场营销任务和销售任务,制定阶段性的客户发展任务,并根据客户发展任务安排阶段性任务行动。本模块设计了对客户发展任务信息的添加、查询、编辑等功能。接触计划管理模块:主要设计目的是为了实现员工根据客户发展计划,制定阶段性的客户联系人接触计划,所制定的联系人接触计划包括了企业的市场营销计划、销售计划。本模块设计了对接触计划信息的添加、查询、编辑等功能。图2-5客户发展管理详细功能结构Fig.2-5CustomerDevelopmentManagementDetailedFunctionStructure
计划执行管理模块:主要设计目的是为了实现员工根据客户发展任务和联系人接触计划,记录员工每天所进行的具体的市场营销和销售行动信息,对计划执行进展进行实时跟踪。本模块设计了对计划执行信息的添加、查询等功能。在线销售管理模块:主要设计目的是为了实现客户根据其需求通过查询产品目录信息,选择客户满意的的产品,通过在线订单的形式向企业进行订购。销售人员根据在线订单信息实时进行维护处理。本模块设计了产品信息录入、产品查询维护、在线订单录入、订单查询编辑和在线订单处理等功能。2.3.5客户服务管理客户服务管理系统模块:主要处理企业与客户的反馈信息,通过统一管理客户反馈信息,让企业更好的把握市场新需求动态和为客户提供更好的服务,从而提高企业对市场需求的反映速度和客户满意度及忠诚度。该系统模块下面设计了三个功能模块:客户投诉管理、客户新需求管理、客户合同管理。该模块详细结构如图2-6所示。客户投诉管理模块:有效的客户投诉管理是维护客户满意度的一项重要管理工作。本子模块设计了客户投诉录入、投诉处理、投诉查询等功能。通过合理处理客户投诉,提高客户满意度。客户新需求管理模块:客户新需求管理是更好把握市场需求动态,提高企业对市场需求变化的反映速度,并保持客户、留住客户的一项重要管理手段和提高客户满意度重要方法。本子模块设计了客户新需求录入、新需求处理、新需求查询等功能。
图2-6客户服务管理详细功能结构Fig.2-6CustomerServiceManagementDetailedFunctionStructure客户合同管理子模块:客户合同管理是为了企业更好的例行合同,提高客户满意度而设计的。本子模块设计了客户合同记录、合同变更、合同跟踪处理、合同查询、合同到期提醒等功能。2.3.6分析决策管理分析决策管理系统模块:主要通过分析功能来为企业决策提供依据,让企业更好的把握市场需求变化,减少客户投诉,减少客户流失,提高企业员工和部门绩效。该模块下面设计了三个功能模块:绩效评估分析、因素影响评估分析、投诉率评估分析。该模块详细结构如图2-7所示。图2-7分析决策管理详细功能结构Fig.2-7AnalysisandDecisionManagementDetailedFunctionStructure绩效评估分析模块:本子模块设计了员工绩效评估分析和部门绩效评估分析两个评估功能。绩效评估是通过对员工和部门的工作效果、业绩等的评估来反映员工和部门的对企业收益的贡献大小。
因素影响评估分析模块:本子模块设计了对客户新需求类型评估分析、客户投诉原因评估分析和客户流失原因评估分析。对客户新需求类型进行分析计算,可以让企业更好的了解市场新需求变化,更好的把握市场需求动态。对客户投诉原因和客户流失原因进行分析计算,量化出客户投诉和客户流失的原因的对企业影响的大小,用于指导企业进行相应方面完善,提高客户满意度,减少客户流失。投诉率评估分析模块:本子模块设计了对员工的投诉评估分析和对部门投诉的评估分析。客户对员工或部门进行投诉,需要对服务情况进行评估总结,以供企业对自身的不足进行整改。2.4数据库技术应用数据库设计是建立数据库及其应用系统的基础,是信息系统开发和建设中的核心技术之一。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。2.4.1数据库设计的方法由于信息结构复杂,应用环境多样,在相当长的一段时间内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,工程的质量难以保证,常常是数据库运行一段时间后又不同程度地发现各种问题,增加了系统维护的代价。人们经过努力探索,提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法[22]。规范设计法中比较著名的有新奥尔良(New
Orleans)方法。它将数据库设计分为四个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后又有L.R.Palmer等主张把数据库设计当成一步接一步的过程,并采用一些辅助手段实现每一过程。基于E-R模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象与规范的设计方法等,是在数据库设计的不同阶段上支持实现的具体技术和方法[23]。2.4.2数据库设计的原则1、表设计原则数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但3NF通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF标准的数据库的表设计原则是:某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据[24]。举例:存放客户信息及其相关联系人信息的3NF数据库就可能有两个表:UserInfo和LinkMan。LinkMan表不包含联系人关联客户的信息,但表内会存放一个键值UserID,该键指向UserInfo表里包含该客户信息的那一行。2、字段设计原则选择数字类型和文本类型尽量充足。在SQL中使用smallint和tinyint类型要特别小心。而ID类型的文本字段,比如CityID等等都应该设置得比一般想象更大[25]。举例:GradeID为2位数长。那你应该把数据库表字段的长度设为3或者4个字符长。但这额外占据的空间却无需将来重构整个数据库就可以实现数据库规模的增长了。2.4.3数据库表设计
根据数据库设计方法和原则及在上一节中对要实现的CRM系统进行的功能模块设计,在此设计上进一步细化,根据字段设计原则,可以进行数据表设计。对数据库进行设计,涉及的数据表比较繁多,关系也比较复杂:有1对1的关系,比如客户等级信息表UserGrade和权值信息表Weight;有一对多的关系,比如客户信息表UserInfo和联系人信息表Linkman;有多对多的关系,比如客户信息表UserInfo和客户需求类别信息表DemandType。其主要数据表关系如图2-<#004699">8所示。由于客户关系管理系统的数据表比较多,在这里我们以客户信息表UserInfo和联系人信息表LinkMan(如表2-1、2-2所示)为例来简要说明本系统数据库设计的特点。表2-1主要记录客户的详细信息,如:客户名称、客户地址、主要联系人名称、客户电话、客户电子邮箱、客户备注以及客户流失原因分析等。客户信息表UserInfo以UserID为主键,并通过CityID、GradeID、TypeID、StateID、LinkmanID、EmployeeID、ReasonID、ProductionID等外键与城市信息表City、客户等级信息表UserGrade、客户企业类型信息表UserType、客户状态信息表UserState、联系人信息表Linkman、员工信图2-<#004699">8主要数据表结构关系Fig.2-<#004699">8TheStructureRelationofMainDataTables息表EmployeeInfo、客户投诉流失原因信息表Reason、产品信息表Production等建立关联,以便进行相应的信息录入查询编辑和分析计算等。
表2-1客户信息表Table2-1UserInfoInformationTableKey字段英文名类型长度可为空说明*UserIDInt4N客户IDCityIDInt4N城市ID
GradeIDInt4N客户等级IDTypeIDInt4N客户业务类型IDStateIDInt4N客户状态IDEmployeeIDInt4
员工IDReasonIDInt4客户流失原因IDProductionIDInt4使用产品UserNameVarchar40客户名称UserAddress
Varchar200客户地址LinkmanVarchar40主要联系人名称Phone1Varchar20电话1Phone2Varchar20电话2
EMailVarchar40电子邮箱Varchar20号码MSNVarchar20MSN号码Fax1Varchar
20传真1Fax2Varchar20传真2PeopleAmountInt4企业人数AccountBankVarchar200客户开户银行
AccountNumVarchar200客户银行账号TaxNameVarchar200客户开票名LoseNoteVarchar400客户流失分析DayTimeDatetime<#004699">8
状态修改日期NoteVarchar400备注表2-2主要记录联系人的详细信息,如:联系人姓名、联系人性别、联系方式、联系人生日、联系人喜好以及联系人备注信息等。联系人信息表以LinkmanID为主键,并通过UserID外键与客户信息表UserInfo建立关系,以便进行相应的信息添加查询编辑等操作。表2-2联系人信息表Table2-2LinkmanInformationTableKey字段名类型长度可为空说明
*LinkmanIDInt4N联系人IDUserIDInt4N客户IDLinkmanNameVarchar20N联系人名称LinkmanSexBit
1联系人性别LinkmanPhone1Varchar20联系人电话1LinkmanPhone2Varchar20联系人电话2LinkmanAddressVarchar40联系人地址
LinkmanVarchar20联系人号码LinkmanMSNVarchar20联系人MSN号码LinkmanEMailVarchar40联系人电子邮箱LinkmanBirthdayDatetime<#004699">8
联系人生日LinkmanLikeVarchar400联系人喜好LinkmanNoteVarchar400备注2.4.4ADO.NET技术ADO.NET是一组包括在Microsoft.NET
框架中的库,用于在.NET应用程序的各种数据存储之间通信[26]。ADO.NET库中包含了可与数据源连接、提交查询并处理结果的类,还可以将ADO.NET作为一种强壮、层次化的、断开连接的数据缓存来使用,以脱机处理数据。其中最主要的断开连接对象(数据集)可执行对数据排序、搜索、筛选、更改等操作。数据集还包含许多功能,填补了传统数据访问和XML开发之间的空白[27]。大多数基于Web的应用程序都需要访问数据库,而ADO.NET是专门针对Web设计的,并且考虑了伸缩性和无状态性[2<#004699">8]。下面通过深入分析ADO.NET的各种数据访问对象,来阐释ADO.NET数据访问模型的特点和运行机制。ADO.NET是.NET框架类库的System.Data命名空间和它的子空间中提供的一组类。与以前ADO和OLEDB不同,ADO.NET从一开始就是为在Web的无连接世界中工作而设计的,并且很容易同XML集成,在关系数据和XML之间架起桥梁,简化了在它们之间移动数据的任务[29]。ADO.NET适合于建立在Internet和Intranet上使用的高效多层数据库应用程序。连接的对象直接与数据库通信,以管理连接和事务,并可以从数据库检索数据和向数据库提交所做的更改。断开连接的对象,允许脱机处理数据。构成ADO.NET对象模型中断开部分的对象是不与连接的对象直接通信,也不与数据库直接通信,它通过DataAdapter对象的Fill方法把数据从数据库中转入DataSet。同样,要把存储在DataSet中的更改提交给数据库,可以将DataSet传递给DataAdapter对象的Update方法[30]。1、连接的对象Connection对象,表示与数据源之间的连接。它起到渠道作用,其它对象如Command和DataAdapter对象通过它同数据库通信,以提交查询并获取查询结果[31]。
Command对象,表示对数据库的查询、存储过程的调用或返回特定表内容的直接请求。使用Command对象查询数据库相当直接,先设置连接数据库的Connection对象的Connection属性,再指定CommandText文本,并可通过CommandType属性设置要执行查询的类型。DataReader对象,用以快速检索查询所返回的行。DataReader对象是只读的向前的,一次查询一行,移动到下一行的同时前一行就会被放弃。由于DataReader对象支持最小特性集,所以速度非常快。Transaction对象,数据库通常是以事务为工作单元对数据进行处理的。如果提交事务之前出现了操作异常,就回滚该事务,回到之前的正确状态。映射到ADO.NET,Connection对象有一个BeginTransaction方法,可用来创建Transaction对象,该对象可在其生存期内提交或取消对数据库所做的更改。DataAdapter对象,表达了一种全新的数据访问模型,充当了数据库同ADO.NET对象里断开连接对象的桥梁。其中Fill方法把查询数据库返回的结果导入到DataSet或DataTable对象中去,这样就可以进行脱机处理了,可以向数据库提交存储在DataSet中的更改。DataAdapter对象包含四个重要属性,分别是SelectCommand、InsertCommand、DeleteCommand和UpdateCommand。分别用来与表示查询数据、插入数据行、删除数据行、修改数据行的Command对象相对应。和以前数据访问模型不同的是,它可以由用户设置操作数据库的属性,使用自己创建的Command对象向数据库提交DataSet中缓存的更改,给编程最大的自由度[32]。2、断开连接的对象
ADO.NET对象模型包括了充当脱机数据缓存的类,当把查询结果导入到DataTable后,就可以关闭与数据源的连接,并继续使用数据。因为这些对象不需要与数据源进行活动连接,我们称其为断开连接的对象。DataTable对象,可以通过行和列的集合查看数据,用DataAdapter对象的Fill方法,可以把查询的数据填充到DataTable中。DataSet对象,它是一种面向集的访问模型,而不是面向流的访问。DataSet对象作为一个性能优异的DataTable对象的容器,可以根据需要,把数据库中的数据都装入到DataSet对象中,在应用程序与数据库之间建立了一个数据缓存,避免了重复调用的过程。当对DataSet对象中存储的数据进行更改后,所做的更改会简单的缓存在DataRow中,可以使用GetChange方法,从DataSet中选取所修改的行,通过这种方式可使同服务器之间的数据量变小[33]。DataRow对象,要想访问DataTable对象中的数据,可以使用Rows集合,该集合包含了一组DataRow对象,可以通过其Item属性来读取某一行某一列的数据值。同以前ADO版本不同的是,DataTable通过DataRows的集合使得所有数据行都可访问,而不是只为当前数据行返回数据。DataRelation对象,表明DataSet中不同的DataTable对象之间的关系。在数据库里,通过定义外键来联系两个相关的表,DataSet相当于缓存在内存里的数据库,如何在里面不同的表格之间建立联系,DataRelation对象就是为解决这个问题而产生的。DataSet类定义了一个Relations属性,该属性是DataRelation对象的集合。可以使用DataRelation对象表明DataSet中不同DataTable对象间的关系。
ADO.NET这一发展版本同以前的数据结构之间的重要区别就是DataSet对象的存在,该对象独立于任何数据存储区,作为一个独立的存储区运行,可以将数据集(DataSet)设想为始终断开的记录集。DataSet的里面很像数据库,有表、列、关系、约束、视图等。3、应用实例ADO.NET支持面向流的数据访问(如:DataReader对象)和基于集的数据访问(如:DataSet对象),下面将重点介绍面向集的数据访问。使用DataSet的最重要的优点是提高性能。由于DataSet与基础数据库断开连接,代码无需经常调用数据库,因而显著地提升了性能。可以将许多新行添加到一个DataSet中的多个数据表中,并在创建DataSet时检查每一行的有效性和引用的完整性。如果要提交对数据集里的表的更新,DataAdapter对象将DataSet连接到基础数据库,然后就可以用一条命令来更新基础数据。每个表中的所有新行都是通过该命令添加的,这确保了添加到数据库中的所有行的有效性。下面对通过处理投诉设计代码来阐述面向集数据访问方式。PublicPartialClassControls_EditNotion:System.Web.UI.UserControl{
protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){SqlConnectionstrcon=newSqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[;SoftCRMConnectionString;].ConnectionString);//与数据库建立连接strcon.Open();SqlDataAdapterempl=newSqlDataAdapter(;select*fromEmployeeInfoorderbyEmployeeIDdesc;,strcon);//在数据集的表之间建立关系,在员工表和投诉表之间建立多对多关系DataSetds=newDataSet();empl.Fill(ds,;EmployeeInfo;);this.DropDownList1.DataSource=ds;
this.DropDownList1.DataMember=;EmployeeInfo;;this.DropDownList1.DataValueField=;EmployeeID;;this.DropDownList1.DataTextField=;EmployeeName;;this.DropDownList1.DataBind();//绑定员工姓名SqlDataAdapteruser=newSqlDataAdapter(;select*fromUserInfoorderbyUserIDdesc;,strcon);//在数据集的表之间建立关系,在客户表和投诉表之间建立多对多关系user.Fill(ds,;UserInfo;);this.DropDownList2.DataSource=ds;this.DropDownList2.DataMember=;UserInfo;;this.DropDownList2.DataValueField=;UserID;;this.DropDownList2.DataTextField=;UserName;;this.DropDownList2.DataBind();
//绑定客户姓名SqlDataAdaptersda=newSqlDataAdapter(;select*fromNotionWhereNotionID=;+Request[;id;],strcon);sda.Fill(ds,;Notion;);DataRowViewnt=ds.Tables[;Notion;].DefaultView[0];DropDownList1.Text=nt[;EmployeeID;].ToString();DropDownList2.Text=nt[;UserID;].ToString();txttile.Text=nt[;NotionTitle;].ToString();txtnotion.Text=nt[;NotionContent;].ToString();txthandle.Text=nt[;HandleContent;].ToString();txtnotiondate.Text=nt[;NotionDate;].ToString();//对投诉信息进行处理更新。strcon.Close();}
this.Button2.Attributes.Add(;onclick;,;window.close();;);}protectedvoidButton1_Click(objectsender,EventArgse){stringHandleContent=this.txthandle.Text.ToString();DateTimeHandleDate=DateTime.Now.Date;//处理日期为当前日期SqlConnectionstrcon=newSqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[;SoftCRMConnectionString;].ConnectionString);strcon.Open();SqlCommandscd=newSqlCommand(;updateNotionsetHandleContent=';+HandleContent+;',HandleDate=';+HandleDate+;'WhereNotionID=;+Request[;id;],strcon);
scd.ExecuteNonQuery();//完成对投诉信息进行处理更新strcon.Close();Response.Write(;<scriptlanguage=javascript>alert('您已经处理完毕');opener.location.reload();window.close()</script>;);}}使用DataSet的最重要的优点是提高性能。由于DataSet与基础数据库断开连接,代码无需经常调用数据库,因而显著地提升了性能。可以将许多新行添加到一个DataSet中的多个数据表中,并在创建DataSet时检查每一行的有效性和引用的完整性。如果要提交对数据集里的表的更新,DataAdapter对象将DataSet连接到基础数据库,然后就可以用一条命令来更新基础数据。每个表中的所有新信息都是通过该命令添加的,这确保了添加到数据库中的所有行动的有效性。2.5本章小结
本章首先对系统的开发背景作了概述,并针对所要开发客户关系管理系统的系统功能、系统特性进行了需求分析,根据系统的需求特点,提供了系统的实现方案。然后根据系统的功能需求分析,完成了系统总体功能设计和各子系统的详细功能设计。最后根据数据库设计原则和方法进行了客户关系管理系统数据库的设计,并通过对ADO.NET技术的研究,应用ADO.NET技术实现了在Internet上的高效数据库通信。第三章分析决策管理相关算法研究与实现随着市场竞争的日趋激烈,企业的发展壮大需要不断维持已有客户和获得新客户。在维持已有客户和增加新客户的同时,如何更好地减少客户的投诉,提高客户满意度;如何更好地减少客户流失,更好地保持有效客户;如何对客户新需求进行研究分析,更好的满足客户需求,把握市场动态;如何更好对员工和部门进行绩效评估分析,激发员工的积极性;如何更好对员工或部门进行投诉评估分析等是企业急待解决的问题。eCRM系统可以为企业的决策提供科学的支持。eCRM是建立在海量的数据之上的,eCRM的统计分析功能可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系。掌握了这些,企业的管理者可以做出更科学、准确的决策,使得企业在竞争中占尽先机。为了解决以上问题,在本文所设计eCRM管理系统,设计了分析和辅助决策功能。这些分析和辅助决策功能的实现过程中需要设计一些算法。下面对本系统中所用到的算法及编程实现予以阐述。3.1因素影响评估算法
3.1.1因素影响评估算法研究在论述因素影响评估算法之前,首先阐述一下相关理论。因果预测算法在销售预测中是经常运用的一种预测方法,它是一种线性回归中的最小二乘分析方法。因果预测理论认为对销售需求影响的原因和销售需求之间存在因果关系,可以通过对两者之间关系的分析,运用线性回归的思想和计算方法进行分析计算,进而来确定销售需求预测。在客户关系管理中,文献[34]-[36]认为,客户价值通常遵循2:<#004699">8原则,即20%的客户提供<#004699">80%的利润贡献,发现价值贡献较大的客户,并有效的获得和保持他们,成为企业经营的关键。但是,在现实中影响原因和结果之间往往并不是简单的线性关系,它们之间的关系常常相当复杂。基于这种问题,本文运用因果预测算法的思想并结合客户价值2:<#004699">8原则,设计了适用于客户关系管理分析决策的因素影响评估算法。因素影响评估算法是灵活运用销售预测中因果预测算法的思想和在客户关系管理中的2:<#004699">8定律逆向和正向思维思想相结合,而设计出的一种算法。因素影响评估算法是通过分析影响某种现象出现的多种因素后,运用加权平均法分析计算,从而得出量化多种因素对该现象影响程度的大小,基于量化计算结果,为企业提供相关决策支持。
对客户关系管理2:<#004699">8原则进行逆向思维。在所有客户投诉和客户流失中,20%的高价值客户投诉或客户流失原因,造成了所有客户投诉或客户流失原因造成后果和引起企业利润额流失贡献程度的<#004699">80%。所以,这20%的高价值客户投诉原因和客户流失原因,也是在所有客户投诉原因和客户流失原因中,而造成后果和引起企业利润额流失贡献程度的<#004699">80%。根据以上论述,所以权值的确定根据客户价值2:<#004699">8原则进行确定是科学的。然后,利用该权值对客户投诉原因和客户流失原因进行分析计算,量化出客户投诉和客户流失的原因的具体差别,可以指导企业进行相应方面改善,提高客户满意度,减少客户投诉和客户流失。因素分析结果计算公式如下。投诉因素影响系数计算公式:(3-1)=某价值等级客户在某段时间对某种原因进行投诉的次数=某价值等级客户在某段时间对各个原因进行投诉的次数=某价值等级客户对某种原因进行投诉对应的权值=某价值等级客户各个投诉原因对应的权值客户流失因素影响系数计算公式:
(3-2)=在某段时间某种原因引起某价值客户流失的个数=在某段时间所有原因引起某价值客户流失的的个数=某种原因引起某价值客户流失对应的权值=各个原因引起某价值客户流失对应的权值用以上算法可以按时段分析计算出引起客户投诉和客户流失的原因对企业造成不良后果的影响程度,对因素影响系数较大的原因,企业应作为重点及时找出造成这些原因的企业问题并予以整改。对客户关系管理的2:<#004699">8原则进行正向运用。在所有客户新需求中,20%的高价值客户新需求,是所有客户新需求中为企业带来新利润额贡献程度的<#004699">80%。故这20%的高价值客户新需求种类,也是在所有客户新需求种类中,为企业带来新利润额贡献程度的<#004699">80%。客户新需求种类因素影响系数计算公式:(3-3)=某价值等级客户在某段时间内对某种新需求种类的个数=某价值等级客户在某段时间对各个新需求种类的个数
=某价值等级客户对某种新需求种类对应的权值=某价值等级客户对各个新需求种类对应的权值对客户新需求种类因素影响系数计算结果较大的新需求种类,这些新需求种类更可能反映市场需求变化,也更可能为企业带来高利润,企业应给予重视。3.1.2因素影响评估算法实现由于在因素影响评估算法中投诉因素影响系数计算、客户流失因素影响系数计算、客户新需求种类因素影响系数计算,程序设计实现方发相似。所以,在这里,我们以因素影响评估算法中的客户流失因素影响评估算法编程实现来进行分析。该算法是通过编写两个名称为SP_LoseAnalysis和SP_LoseAnalysisByReason存储过程来实现的。如图3-1所示。存储过程SP_LoseAnalysis则是为了实现客户流失评估分析默认时间为当前日期向前三十天内,为分析计算时间段,根据客户流失原因所造成的客户流失数量、流失客户的价值等级及流失客户等级权值等,从而分析计算出客户流失因素影响系数,并按客户流失因素影响系数由高到底列表排列。图3-1SP_LoseAnalysis和SP_LoseAnalysisByReason存储过程Fig.3-1SP_LoseAnalysisandSP_LoseAnalysisByReasonStored
Procedurs实现代码如下:CREATEProcedureSP_LoseAnalysis(@StartDatedatetime,@EndDatedatetime)ASDeclare@Tempasdecimal(1<#004699">8,3)Declare@TotalasintSELECT@Temp=sum(w.[Weight])From[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateand
ui.[DayTime]<=@EndDateSELECT@Total=count(ui.[UserID])From[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateandui.[DayTime]<=@EndDateSELECTui.[ReasonID],r.[ReasonName],count(ui.[UserID])asquantity,@Totalastotal,sum(w.[Weight])/@TempasrateFrom[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateandui.[DayTime]<=@EndDate
Groupbyui.[ReasonID],r.[ReasonName]OrderbyratedescRETURN运行实例如图3-2至3-6所示:图3-2客户状态表Fig.3-2CustomerStateTable图3-3原因表Fig.3-3ReasonTable图3-4权值表Fig.3-4WeightTable图3-5客户信息表
Fig.3-5CustomerInformationTableexecSP_LoseAnalysis'200<#004699">8-4-1','200<#004699">8-4-15'图3-6SP_LoseAnalysis运行结果Fig.3-6SP_LoseAnalysisOperatingResults存储过程SP_LoseAnalysisByReason是为了实现通过输入客户流失评估分析起止时间和分析计算的原因名称ID,从而分析计算出该客户流失原因在该段时间所造成的客户流失数量、客户流失因素影响系数。实现代码如下:CREATEProcedureSP_LoseAnalysisByReason(@StartDatedatetime,@endDatedatetime,@ReasonIdint)ASDeclare@Tempasdecimal(1<#004699">8,3)Declare@Totalasint
SELECT@Temp=sum(w.[Weight])From[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateandui.[DayTime]<=@endDateSELECT@Total=count(ui.[UserID])From[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateandui.[DayTime]<=@endDateSELECTui.[ReasonID],r.[ReasonName],count(ui.[UserID])asquantity,
@Totalastotal,sum(w.[Weight])/@TempasrateFrom[UserInfo]uiLeftjoin[Reason]ronui.[ReasonID]=r.[ReasonID]Leftjoin[Weight]wonui.[GradeID]=w.[GradeID]Wherestateid=4andui.[DayTime]>=@StartDateandui.[DayTime]<=@endDateandui.[ReasonID]=@ReasonIdGroupbyui.[ReasonID],r.[ReasonName]运行实例如图3-7所示:execSP_LoseAnalysisByReason'200<#004699">8-4-1','200<#004699">8-4-15',1图3-7SP_LoseAnalysisByReason运行结果Fig.3-7SP_LoseAnalysisByReasonOperatingResults3.2绩效评估算法3.2.1绩效评估算法研究
绩效评估是通过对员工和部门的工作效果、业绩等的评估来反映员工和部门对企业的贡献程度,绩效评估的方法同样有很多种,文献[37]-[40]认为,常用的有排序法、比较法、等级分配法、行为评价法、工作成果评价法等。综合考虑绩效评估算法和客户关系管理中的客户价值2:<#004699">8原则,本文采用行为评价法中的量表评等法,它也是企业应用最广泛的绩效评估法。由于在客户关系管理中,客户价值遵循2:<#004699">8原则。客户价值的大小在本系统中是以客户价值等级来定义的,所以在本系统中把不同的客户等级赋予不同的权值,进行计算。绩效计算分员工绩效和部门绩效。绩效评估结果计算公式如下:(3-4)=某个员工或部门的绩效评分=某价值等级客户绩效评估的权值=某个员工或部门在某个时间段发展某价值等级客户个数本文中应用该算法,可以分析计算出员工和部门绩效评分,为企业对员工和部门的考评提供依据。3.2.2绩效评估算法实现
由于在绩效评估算法中员工绩效评估计算和部门绩效评估计算计算程序设计实现方发相似。所以,在这里,我们以员工绩效评估算法编程实现来进行分析。该算法是通过编写名称为:SP_EmPerformanceAnalysis和SP_EmPerformanceAnalysisByEmployeeName两个存储过程来实现的。如图3-<#004699">8所示。存储过程SP_LoseAnalysis则是为了实现员工绩效评估分析默认时间为当前日期向前三十天内,为分析计算时间段,根据员工在这短时间新发展客户的数量、发展客户的价值等级及客户等级权值,从而分析计算出员工绩效评分等,并按员工绩效评分由高到底列表排列。图3-<#004699">8SP_EmPerformanceAnalysis和SP_EmPerformanceAnalysisByEmployeeName存储过程Fig.3-<#004699">8SP_EmPerformanceAnalysisandSP_EmPerformanceAnalysisByEmployeeNameStoredProcedurs实现代码如下:CreateProcedureSP_EmPerformanceAnalysis(@StartDatedatetime,@endDatedatetime)AS
Declare@totalasintSELECT@total=count(UserInfo.UserID)FromUserInfoLeftjoinEmployeeInfoonUserInfo.EmployeeID=EmployeeInfo.EmployeeIDLeftjoinWeightonUserInfo.GradeID=Weight.GradeIDWherestateid=3andUserInfo.Daytime>=@StartDateandUserInfo.Daytime<=@EndDateSELECTUserInfo.EmployeeID,EmployeeInfo.EmployeeName,count(UserInfo.UserID)asquantity,@totalastotal,sum(Weight.Weight)asrateFromUserInfoLeftjoinEmployeeInfoonUserInfo.EmployeeID=EmployeeInfo.EmployeeIDLeftjoinWeightonUserInfo.GradeID=Weight.GradeID
Wherestateid=3andUserInfo.Daytime>=@StartDateandUserInfo.Daytime<=@endDateGroupbyUserInfo.EmployeeID,EmployeeInfo.EmployeeNameOrderbyratedescRETURN运行实例如图3-9至3-11所示:图3-9客户信息表Fig.3-9CustomerInformationTableexecSP_EmPerformanceAnalysis'200<#004699">8-4-1','200<#004699">8-4-15'图3-10SP_LoseAnalysisByReason运行结果Fig.3-10SP_LoseAnalysisByReasonOperatingResultsexecSP_EmPerformanceAnalysisByEmployeeName'200<#004699">8-4-1','200<#004699">8-4-15',4图3-11SP_EmPerformanceAnalysisByEmployeeName运行结果Fig.3-11SP_EmPerformanceAnalysisByEmployeeNameOperatingResults
3.3投诉率评估算法3.3.1投诉率评估算法研究客户对员工或部门进行投诉,需要对服务情况进行评估总结。这样可以让企业更好的发现企业的不足,从而改善和完善,进而提高客户满意度。客户投诉包括对员工的投诉和员工所在部门部门的投诉,所以本系统设计了员工被投诉率和部门被投诉率评估指标,各评估指标的计算公式如下:(3-5)=在某个时间段内某员工被投诉次数=在某个时间段内客户投诉总次数(3-6)=在某个时间段内某部门被投诉次数=某个时间段内客户投诉次数用这种算法可以及时计算分析员工被投诉率和部门被投诉率,从而让企业及时掌握员工和部门的服务水平。3.3.2投诉率评估算法实现
在这里,我们以员工投诉率算法编程实现来进行分析。该算法是通过编写两个名称为SP_EmNotionAnalysis和SP_EmNotionAnalysisByEmploName存储过程来实现的。如图3-12所示。存储过程SP_EmNotionAnalysis则是为了实现默认员工投诉评估分析时间为当前日期向前三十天内,为分析计算时间段。从而分析计算出所有员工在这短时间被投诉的数量、所有员工被投诉数量、员工被投诉率等,并按员工投诉被投诉率由高到底列表排列。实现代码如下:图3-12SP_EmNotionAnalysis和SP_EmNotionAnalysisByEmploName存储过程Fig.3-12SP_EmNotionAnalysisandSP_EmNotionAnalysisByEmploNameStoredProcedursCREATEPROCEDURESP_EmNotionAnalysis(@StartDatedatetime,@endDatedatetime)ASDeclare@totalasdecimal
SELECT@total=count(Notion.EmployeeID)FromNotionLeftjoinEmployeeInfoonNotion.EmployeeID=EmployeeInfo.EmployeeIDWhereNotion.NotionDate>=@StartDateandNotion.NotionDate<=@EndDateSELECTNotion.EmployeeID,EmployeeInfo.EmployeeName,count(Notion.EmployeeID)asquantity,@totalastotal,count(Notion.EmployeeID)/@totalasrateFromNotionLeftjoinEmployeeInfoonNotion.EmployeeID=EmployeeInfo.EmployeeIDWhereNotion.NotionDate>=@StartDateandNotion.NotionDate<=@EndDateGroupbyNotion.EmployeeID,EmployeeInfo.EmployeeNameRETURN运行实例如图3-13至3-15所示:
图3-13投诉信息表Fig.3-13NotionInformationTableexecSP_EmNotionAnalysis'200<#004699">8-4-1','200<#004699">8-4-15'图3-14SP_EmNotionAnalysis运行结果Fig.3-14SP_EmNotionAnalysisOperatingResultsexecSP_EmNotionAnalysisByEmployeeName'200<#004699">8-4-1','200<#004699">8-4-15',3图3-15SP_EmNotionAnalysisByEmployeeName运行结果Fig.3-15SP_EmNotionAnalysisByEmployeeNameOperatingResults3.4本章小结本章主要根据对分析决策算法的研究,分别设计了分析决策算法:因素影响评估算法、绩效评估算法、投诉评估算法,为企业挖掘出信息和数据背后蕴含的规律和逻辑关系,帮助企业做出更科学、准确的决策;并阐述了分析决策算法编程实现过程,展示了相关算法的运行实例。
第四章系统功能实现系统功能实现阶段是系统开发一个重要阶段,在这个阶段需要将系统设计内容通过编码完成系统的构建,使之成为可以运行使用的系统。本章主要介绍各个模块具体的实现过程和方法。4.1设计原则1、可扩展性在系统的设计中,应用软件模块设计应该遵循可扩充的原则,系统必须能够随业务发展的需要进行相关功能扩充。此外,系统的升级必须保证在不停止服务的前提下无缝实现。2、可维护性采用B/S应用架构,只需维护服务器端程序,无须随时更新客户端程序,可以很好的解决维护性问题。采用面向对象编程方法,以利于以后对系统的扩充和修改;数据库设计中在表中预留字段,以利于对数据库进行扩充,从而提高可维护性。在尽可能减少投资的前提下,综合考虑系统结构、网络结构、技术措施、设备选型等,确保系统实现不间断服务。3、可操作性
(1)输入设计的原则尽量减少用户的输入动作,将输入时可选则的数据设置在下拉框中,让用户尽量使用下拉框中的数据,以避免输入错误,保证数据一致性。屏蔽掉在当前动作的上下文中不适用的或无效的命令,从而防止用户试图使用能导致错误的动作;允许用户控制交互的流程,用户可以跳过不必要的操作,改变动作次序或不退出程序就从错误中恢复出来;具有自动数据校验和检查的功能,尽可能防止用户出现不必要的输入错误;对于可以由信息系统导出或计算出来的数据,以及需要从共享数据库中调用的数据,禁止通过输入界面由用户输入,以保证数据的正确性和一致性。(2)用户界面设计原则最大程度征求用户的意见,界面设计以功能清晰直观,流程简单,便于操作为原则;提供一致的用户界面,避免屏幕上的内容太多、同一界面运用太多不同的颜色以及避免字符和图形符号太小难以辨认;能够自行引导用户进行系统的操作,无须用户记忆太多、太复杂的操作命令;对于某个业务操作,省去用户不关心的细节和页面,保证用户工作的高效率。4.2系统实现4.2.1系统业务流程
业务流程是为实现业务的某特定目的所采取的一系列有控制的步骤、活动与方法。客户关系管理要求按照一定的程序,有条不紊地开展业务,同样必须按照一定的业务流程进行。本文设计的客户关系管理信息系统业务信息流程如图4-1所示。企业员工获得客户发展任务信息后,根据客户资料管理和联系人管理信息,制定客户接触计划并予以执行,保持已有客户,发现新客户,同时把通过与客户接触而获得的客户新信息反馈到客户资源管理中。并对客户进行营销销售和客户服务,扩大销售量,提高客户满意度和忠诚度。客户根据其需求通过查询产品目录信息,选择客户满意的的产品,通过在线订单的形式向企业进行订购。根据维护在信息系统中的信息,进行绩效评估分析、投诉评估分析和因素影响评估分析等,挖掘信息和数据背后蕴含的规律和逻辑关系,为企业决策提供分析决策依据。4.2.2页面导航功能实现随着技术的发展,Web页面导航也在发生变化。导航的原始定义是通过绑定到超媒体信息上的超链接在页面间跳转的动作,而现在导航已经不仅仅是页面间的跳转动作,而且包括程序信息空间上的移动[41]。在ASP.NET应用程序中进行动态网页应用程序制作时都要处理多个Web表单页面间的导航[42]。ASP.NET应用程序为Web表单提供了多种页面导航方式,特别是ASP.NET2.0的出现更是丰富了页面导航方式的种类。而在这些导航中进行恰当的选择对系统的设计及运行的合理性显得尤为重要[43]。在ASP.NET2.0中,为了方便进行页面导航,新增了一个叫做页面导航控件XmlDataSource,其中还可以绑定到不同的其它页面控件,比如TreeView,Menu,使得能很方便地实现页面导航的不同形式,而且还提供了运行时的编程接口,可以以编程的形式动态实现页面导航控件[44]。
本系统应用XML技术、XPth方法、Treeview控件、XmlDataSource控件和LinkButtion控件配合使用,实现了方便的页面导航。图4-1eCRM业务流程图Fig.4-1eCRMBusinessProcess首先创建一个名叫MasterPage.master的master类型的页面。然后以XML的形式提供出整个网站的页面结构层次。本文编写一个叫SiteMap.xml的XML文本文件,在该文件中定义出要导航页面的结构层次。举例如下:<?xmlversion=;1.0;encoding=;utf-<#004699">8;?><siteMapNodeurl=;;title=;客户资源管理;description=;;><siteMapNodeurl=;;title=;联系人管理;description=;;><siteMapNodeurl=;AddLinkmanPage.aspx;title=;添加联系人;description=;;/><siteMapNodeurl=;LinkmanPageBirthday.aspx;
title=;联系人生日提醒;description=;;/><siteMapNodeurl=;ViewEditLinkmanPage.aspx;title=;查询编辑联系人;description=;;/></siteMapNode></siteMapNode>其次,在TreeView配置XmlDataSource数据源,并有XPath表达式筛选XML的数据,返回该文件的子集。具体实现代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(Session[;xpath;]!=null)//判断是否存在XPath路径值XmlDataSource1.XPath=Session[;xpath;].ToString();//如果存在则为XmlDataSource1设置筛选路径}然后用LinkButtion的的Click事件实现选择不同的模块,显示不同的子集。举例如下:protectedvoidLinkButton1_Click(objectsender,EventArgse){
XmlDataSource1.XPath=;siteMapNode/siteMapNode[@title='客户资源管理'];;//为XmlDataSource1赋路径值Session[;xpath;]=XmlDataSource1.XPath;//搜索XmlDataSource1的路径值}在完成了Masterpage页面页面导航后,就等于已经把网站的模版页建立起来了,接下来就可以新建其他子页面,以继承masterpage页面。在新建其他的子页面时,只需要在其中的Contentplaceholderid中写入不同的内容,就可以实现方便的页面导航。4.2.3基础配置管理系统基础配置是系统运行的基础。基础配置管理主要实现了一些系统应用所需要的基础配置:客户所在区域、城市、客户状态(即客户所处生命周期的阶段)、客户等级、客户业务类型等。由于在技术实现方面该模块与其它模块比较,相对简单,因为篇幅有限,在这里不再赘述。4.2.4客户资源管理系统1、实现功能
客户资源管理系统主要实现了客户资料管理、联系人管理、客户流失管理等功能。客户资源管理系统统一管理与企业所掌握的客户及其相关联系人信息,这是eCRM其余系统模块的基础。客户及其相关联系人信息是一个企业重要的资源,通过客户资源管理子系统,实现对客户信息及其相关联系人信息有效的管理,从而在客户及其相关联系人数据基础上,才能更好地对与客户之间发生的活动、机会、销售等进行详细管理及相应的分析。其业务流程如图4-2所示。客户资源管理模块设计工作流程如图4-3所示。图4-2客户资源管理业务流程Fig.4-2CustomerResourceManagementBusinessProcess图4-3客户资源管理模块设计工作流程Fig.4-3TheWorkflowtoDesignCustomerResourceManagement2、客户资料管理模块具体实现(1)添加客户信息客户信息属性的设计非常详细,在这些属性中有主次之分,为了让界面布局比较合理,有重点地让用户添加客户信息,在界面布局时把必须填写的属性放在上面,把次要的属性放在下面。在添加客户信息时,由于客户信息表与客户状态表、客户业务类型表、客户等级表、联系人信息表和城市表等通过外键关联,所以实体中还有几个通过名称获取ID的实体类方法。创建新客户时,数据库自动添加客户标识ID,通过名称获取ID的实体类方法获取客户业务类型ID、客户等级ID和客户所在城市ID等。在单击“保存”
按钮时,要对客户信息数据进行合法性校验,通过校验才可以保存。保存完数据后,通过页面提示用户客户信息己经保存成功。添加客户信息实体方法的工作流程如图4-4所示。(2)查询浏览客户信息查询浏览客户信息是客户资源管理模块基本的功能之一,客户资源管理系统客户信息的查询需要灵活多变,方便快速地实现对客户的搜索。本功能实现的分类查询有按客户状态、客户等级、客户业务类型、客户所在城市、发展客户员工名称等和按名称的模糊查询。用户能够根据需要灵活查询浏览数据库中的客户信息,显示客户信息的页面中需要显示包括客户名称、客户地址、电话、E-mail等与客户相关的信息。图4-4添加客户资料实体方法工作流程Fig.4-4TheEntityMethodWorkflowtoAddCustomerInformation
处理的思路是:首先,根据用户表单提交过来的客户状态ID、客户业务类型ID、客户等级ID、客户所在城市ID或客户名称等数据,读取相应数据库里的数据信息,将其保存到全局变量当中,然后再赋予表单初值,在表单中显示需要的客户信息。所以程序在一开始创建记录集对象后,就获取表单递交的客户状态ID、客户业务类型ID、客户等级ID、客户所在城市ID、发展客户员工ID或客户名称等数据,并相应读取数据库数据。如果用户没有递交任合数据,则默认从数据库中读取所有客户信息。接下来是对浏览客户记录标识进行处理,实现分页浏览功能。客户列表可以将多项客户信息通过列表方式详细地展示给用户,并可以快速链接到浏览客户详细信息页面查看详细客户信息。该功能实现的实体方法的工作流程如图4-5所示。(3)编辑客户信息在浏览客户信息时,有可能要修改其中的信息,所以要有客户信息修改的页面。当用户填写完需要修改的数据后,单击“保存”按钮来保存修改的数据。在通过合法验证后,对表单递交数据进行处理以后,将数据保存到数据库中。其实体方法的工作流程如图4-6所示。3、联系人管理模块具体实现图4-5查询客户资料实体方法工作流程Fig.4-5TheEntityMethodWorkflowtoInquiryCustomerInformation图4-6编辑客户资料实体方法工作流程Fig.4-6TheEntityMethodWorkflowtoEditCustomerInformation下面将逐步介绍联系人管理模块的具体实现。(1)添加联系人信息联系人信息属性与客户信息属性相似,在这些属性中有主次之分。在界面布局时把必须填写的重要属性放在上面,把次要的属性放在下面,以便用户有重点的添加联系人信息。
在添加联系人信息时,由于联系人信息表与客户信息表通过ID有关联,所以实体中还有通过名称获取客户ID的实体类方法。创建新联系人信息时,数据库自动添加的联系人标识ID,通过名称获取相关客户ID的实体类方法获得客户ID。在单击“保存”按钮时,要对联系人信息数据进行合法性校验,通过校验才可以保存。保存完数据后,通过页面提示用户联系人信息己经保存成功。(2)查询浏览联系人信息联系人信息的查询浏览需要灵活多变,方便快速地实现对联系人信息的搜索是很必要的。本系统实现的分类查询有按客户名称及联系人名称等和按联系人喜好的模糊查询。用户能够根据需要灵活地查询浏览数据库中的联系人信息。查询结果以联系人列表形式显示,方便用户查看。联系人列表将多项联系人信息通过列表方式展示给用户,用户可以分页浏览每页显示的记录,并可以快速链接到浏览联系人详细信息页面查看详细联系人详细信息。(3)编辑联系人信息在进行联系人信息编辑时,当用户填写完需要修改的数据后,单击“保存”按钮来保存修改的数据。在提交表单之前,必须对填写数据的合法性进行校验,通过校验才可以保存。保存完数据后,通过页面提示用户联系人信息已经保存成功。(4)联系人生日提醒
本系统实现了联系人生日提醒功能,系统通过自动搜索数据库,提前一周向用户提醒要过生日的联系人。生日提醒以列表形式显示,联系人列表将要过生日的联系人主要信息展示给用户,用户可以分页浏览每页显示的记录,并可以快速链接到浏览联系人详细信息页面查看要过生日联系人的详细信息。联系人生日提醒实体方法的工作流程如图4-<#004699">8所示。4、客户流失管理模块具体实现客户流失管理主要实现了对流失客户的查询、编辑、原因分析等功能。可对客户流失信息进行分类查询按客户流失原因、客户状态、客户等级、客户业务类型、客户所在城市等和按名称的模糊查询。用户能够通过该模块查询浏览数据库中的客户流失信息。通过客户流失信息列表分页浏览每页显示的记录,并可以快速链接到浏览客户流失信息页面查看客户流失详细信息。在进行客户流失原因分析时可以按查询的分类进行分类处理。根据客户流失分析,从而使改进企业管理,提高企业竞争力。功能实现方法与客户资料管理模块相似,在此不再详细阐述。图4-<#004699">8联系人生日提醒实体方法工作流程图Fig.4-<#004699">8TheEntityMethodWorkflowforLinkmanBirthdayReminder4.2.5客户发展管理系统1、实现功能
客户发展管理系统主要实现了客户发展任务管理、客户接触计划管理、计划执行管理、在线销售管理和员工资料管理等功能。客户发展管理为了制定合理的客户发展任务及客户接触计划,及时和客户取得联系,随时了解客户的情况,发展新客户、稳定已有客户和方便地进行网上销售。客户发展管理业务流程及设计工作流程如图4-9和4-10所示。2、发展任务管理具体实现(1)制定客户发展任务由于客户发展任务信息表与客户信息表和员工信息表等通过ID有关联,所以实体中还有通过员工名称获取员工ID的实体类方法。创建客户发展任务时,数据库自动添加客户发展任务标识ID,通过名称获取ID的方法获得客户ID和员工ID等。任务信息数据通过合法性校验才可以保存。保存完数据后,通过页面提示用户发展任务信息己经保存成功。(2)编辑发展任务在进行发展任务编辑时,当用户填写完需要修改的数据后,单击“保存”按钮来保存修改的数据。在提交表单之前,对填写数据的合法性进行校验,通过校验才可以保存。在对表单递交数据进行处理以后,可将数据保存到数据库中。保存完数据后,通过页面提示用户发展任务信息已经保存成功。图4-9客户发展管理业务流程Fig.4-9CustomerDevelopmentManagementBusinessProcess图4-10客户发展管理设计工作流程图
Fig.4-10TheWorkflowtoDesignCustomerDevelopmentManagement(3)查询浏览发展任务方便的查询活动任务有利于对任务更好的维护及执行。本系统实现了分类查询有按员工名称、员工所在部门和任务起止日期进行查询。用户能够通过该模块查询浏览数据库中的发展任务信息。用户可以通过任务信息列表分页浏览每页显示的记录。查询浏览发展任务实体方法的工作流程如图4-11所示。图4-11查询任务实体方法工作流程图Fig.4-11TheEntityMethodWorkflowtoInquiryDutyEntity3、员工资料管理具体实现员工资料管理主要实现了员工企业级共享信息的添加、查询、编辑等功能。从而实现了员工信息企业级共享,让员工在客户发展行动中更好地协同作业。员工资料管理功能模块的具体实现步骤和方法与联系人管理功能模块相似,在此不再赘述。4、接触计划管理具体实现接触计划管理主要实现了员工根据活动任务,制定阶段性的客户联系人接触计划,并对接触计划信息的添加、查询、编辑等功能。接触计划管理功能模块的具体实现步骤和方法与客户发展任务管理功能模块相似,在此不再赘述。5、计划执行管理具体实现
计划执行管理功能模块实现了员工根据发展任务和接触计划,管理员工所进行的任务计划行动进展情况和相关执行信息。本模块实现了对计划执行信息的添加、查询等功能。计划执行管理功能模块的具体实现步骤和方法与客户发展任务管理功能模块相似,在此不再赘述。6、在线销售管理具体实现在线销售管理主要实现了产品信息录入,并对产品信息进行查询、维护;在线订单录入,并对在线订单进行查询、编辑及在线订单实时处理等功能。在线销售管理系统的具体实现步骤和方法与客户发展任务管理功能模块相似,在此不再赘述。4.2.6客户服务管理系统1、实现功能客户服务管理系统主要实现了客户的投诉管理、客户新需求管理和客户合同管理。整个客户服务管理模块的设计工作流程图如图4-12所示。图4-12客户服务管理设计工作流程图Fig.4-12TheWorkflowtoDesignCustomerServiceManagement2、客户投诉管理具体实现
客户投诉管理主要实现了对客户投诉的添加、查询、处理等功能。客户投诉记录登记后,可对客户投诉信息进行分类查询按客户名称、被投诉员工名称、部门、投诉原因、投诉日期和投诉处理日期进行查询和按投诉标题进行模糊查询。用户能够通过该模块查询浏览数据库中的投诉信息。通过投诉信息列表分页浏览每页显示的记录,并可以快速链接到浏览投诉详细信息页面查看投诉详细信息。在处理投诉时可以按查询的分类进行分类处理。3、客户新需求管理具体实现客户新需求管理实现了新需求登记、处理、查询等功能。客户新需求信息登记后,可对客户新需求信息进行分类查询按客户名称、协作员工名称、协作部门、客户新需求种类、客户新需求登记日期和客户新需求处理日期进行查询和按客户新需求标题进行模糊查询。用户能够通过该模块查询浏览数据库中的客户新需求信息。通过客户新需求信息列表分页浏览每页显示的记录,并可以快速链接到浏览客户新需求详细信息页面查看详细客户新需求详细信息。在处理客户新需求时可以按查询的分类进行分类处理。4、客户合同管理具体实现
客户合同管理实现了客户合同记录、合同变更、合同查询、合同到期提醒等功能。对客户合同信息进行登记后,可对合同进行变更处理,还可对客户合同信息进行分类查询按客户名称、负责员工名称、负责作部门、客户合同登记日期和客户合同终止日期进行查询和按客户合同标题进行模糊查询。用户能够通过该模块查询浏览数据库中的客户合同信息。通过客户合同信息列表分页浏览每页显示的记录详细,并可以快速链接到浏览客户合同详细信息页面查看详细客户合同详细信息。在合同到期之前三十天,将进行合同到期提醒,以便相关人员进行合同续签。4.2.7分析决策管理系统1、实现功能分析决策管理子系统主要实现了绩效评估分析、投诉率评估分析和因素影响评估分析三个模块功能。绩效评估分为员工绩效评估分析和部门绩效评估分析两个评估功能。投诉率评估分析分为对员工的投诉评估分析和对部门投诉的评估分析。因素影响评估分析分为客户新需求类型评估分析、客户投诉原因评估分析和客户流失原因评估分析。整个分析决策管理子系统业务流程如图4-13所示。为实现该子系统功能设计了如下实体方法,如图4-14所示。2、绩效评估分析具体实现绩效评估分析实现了员工绩效评估分析和部门绩效评估分析两个评估功能。其处理思路是:根据用户表单提交过来的评估起止日期、员工ID、部门ID等数据,读取相应数据库里的数据信息,将其保存到全局变量当中,然后再赋予表单初值,在表单中显示需要的绩效评估信息。如果用户没有递交任合数据,则默认从数据库中读取所有员工或部门绩效评估信息。接下来是对浏览绩效评估记录标识进行处理,实现分页浏览功能。绩效评估列表可以将多项绩效信息通过列表方式以绩效评分结果由高到低的顺序展示给用户。图4-13分析决策管理业务流程
Fig.4-13AnalysisandDecisionManagementBusinessProcess图4-14分析决策管理实体方法Fig.4-14AnalysisandDecisionManagementEntityMethods3、投诉率评估分析具体实现投诉率评估分析实现了对员工的投诉评估分析和对部门投诉的评估分析。其处理思路是:根据用户表单提交过来的分析起止日期、员工ID、部门ID等数据,读取相应数据库里的数据信息,将其保存到全局变量当中,然后再赋予表单初值,在表单中显示需要的投诉率评估信息。如果用户没有递交任合数据,则默认从数据库中读取所有员工或部门投诉率评估信息。接下来是对浏览投诉率评估记录标识进行处理,实现分页浏览功能。投诉率评估列表可以将多项投诉率评估信息通过列表方式以投诉率结果由高到低的顺序展示给用户。4、因素影响评估分析具体实现因素影响评估分析实现了客户新需求类型评估分析、客户投诉原因评估分析和客户流失原因评估分析。处理思路是:根据用户表单提交过来的分析起止日期、新需求类型ID、客户投诉原因ID、客户流失原因ID等数据,读取相应数据库里的数据信息,将其保存到全局变量当中,然后再赋予表单初值,在表单中显示相应的因素影响评估信息。如果用户没有递交任合数据,则默认从数据库中读取所有新需求类型、客户投诉原因、客户流失原因评估信息。接下来是对浏览因素影响评估记录标识进行处理,实现分页浏览功能。因素影响评估列表可以将多项因素影响评估信息通过列表方式以因素影响评估系数由高到低的顺序显示给用户。
4.3存储过程技术研究及应用存储过程在概念上类似于程序中的函数。它们获取输入参数,以黑盒模式运行并返回相应信息。与函数不同的是存储过程由数据库引擎执行,而不是在程序中执行。也就是说,将信息输入到存储过程或从中输出信息都必须通过与数据库交互的技术来完成[45]。在VS.NET中我们可以用ADO.NET完成该项任务,图4-15是DataAdapter用存储过程和SQL语句两种访问数据库的图示。存储过程提供了一种高效的、安全的访问数据库的方法。它在数据库程序设计中有着非常重要的地位,经常被用来访问数据库或管理被修改的数据。文献[46]-[4<#004699">8]认为,存储过程是SQLServer服务器上一组预先编译好的Transact-SQL语句,它以一个名称存储在数据库中,可以作为一个独立的数据库对象,也可以作为一个单元供用户在应用程序中调用。存储过程可以接收和输出参数、返回执行存储过程的状态值,还可以嵌套使用。存储过程一旦创建,就以编译形式存放在数据库服务器中,可以被无数次调用。文献[49][50]认为,存储过程在服务器端运行,执行一次后就驻留在高速缓冲存储器中,在以后的操作中,只需要从高速缓冲存储器中调用即可,提高系统性能和执行速度,减轻网络的通信负载。存储过程还能极大地增强SQL语句的功能、效率和灵活性。图4-15存储过程和SQL语句访问数据库
Fig.4-15StoredProcedureandSQLSentencetoAccessDatabase采用用户自定义存储过程具有以下优点:加快执行速度存储过程是预先编译过后被存放在数据库服务器的过程高速缓存中,当使用时不必分析和编译它们,它是执行查询或者批处理的最快方法[51]。2、减少网络流量在服务器而不是桌面计算机上执行程序可以极大地降低网络流量。3、增强可维护性存储过程是模块化的,易于部署,代码也容易修改。如果前端的程序是通过调用存储过程来进行数据处理的,那么在程序升级时,只需要修改存储过程就可以升级所有客户的应用程序[52]。4、增强安全性存储过程是数据库安全性的一个重要组成部分。一个好的数据库系统的标志就是它可以防止用户直接访问表,如果系统用户是通过存储过程来访问某些数据,那么,就可以禁止用户对表的直接访问,并控制用户对数据的访问[53]。
客户关系管理系统的业务逻辑比较多,将需重复调用、比较浪费时间,影响网络传送的操作过程以及需要集中管理和控制的逻辑与运算处理过程编写成存储过程由服务器执行,这样既提高了系统运行效率又增强了系统的可维护性。本系统编写的部分存储过程如图4-16所示。图4-16用户自定义存储过程Fig.4-16User-definedStorageProcedur下面以客户关系管理系统中的客户资源管理部分为例对存储过程的应用情况进行阐述。添加客户信息存储过程的实现代码:CREATEProcedureSP_InsertUserInfo(@GradeIDInt,……)ASINSERTIntoUserInfo(CityID,GradeID,StateID,TypeID,UserName,UserAddress,Production,Linkman,Phone1,Phone2,EMail,,MSN,Fax1,Fax2,PeopleAmount,Note)Values(@CityID,@GradeID,@StateID,@TypeID,@UserName,@UserAddress,@Production,@Linkman,@Phone1,@Phone2,@EMail,@,@MSN,@Fax1,@Fax2,
@PeopleAmount,@Note)RETURN编辑客户信息存储过程的实现代码:CREATEProcedureSP_UpdateUser(@UserNamevarchar(40),……)ASUPDATEUserInfoSETCityID=(SELECTCityIDFROMCityWHERE(CityName=@cityname)),GradeID=(SELECTGradeIDFROMUserGradeWHERE(gradename=@gradename)),StateID=(SELECTStateIDFROMUserStateWHERE(StateName=@statename)),TypeID=(SELECTTypeIDFROMUserTypeWHERE(TypeName=@typename)),UserName=@UserName,UserAddress=@UserAddress,
Linkman=@Linkman,Phone1=@Phone1,……FROMUserInfoWHEREUserID=@UserIDRETURN通过客户名称进行模糊存储过程的实现代码:CREATEProcedureSP_GetUserInfoByUsername(@UsernamevarChar(40))ASSelectUserID,UserName,(SelectCityNameFromcityWhereCityID=UserInfo.CityID)AsCityname,(SelectTypeNameFromUserTypeWhereTypeID=UserInfo.TypeID)AsTypeName,(SelectStateNameFromUserStateWhereStateID=UserInfo.StateID)
AsStateName,(SelectGradeNameFromUserGradeWhereGradeID=UserInfo.GradeID)AsGradeName,……UserAddress,EMail,,MSN,……FromUserInfoWhereUserNameLike'%'+@UserName+'%'RETURN联系人生日提醒存储过程的实现代码:CREATEProcedureSP_GetBirthdayManASSELECTLinkmanID,(SelectUserNamefromUserInfowhereUserID=Linkman.UserID)AsUserName,LinkmanName,LinkmanSex,LinkmanPhone1,LinkmanPhone2,Linkman,LinkmanMSN,LinkmanEMail,LinkmanLike,LinkmanBirthday,LinkmanNoteFROMLinkman
WHERE(datediff(d,getdate(),Rtrim(year(getdate()))+'-'+Rtrim(month(LinkmanBirthday))+'-'+Rtrim(day(LinkmanBirthday)))<=7anddatediff(d,getdate(),Rtrim(year(getdate()))+'-'+Rtrim(month(LinkmanBirthday))+'-'+Rtrim(day(LinkmanBirthday)))>=0)Or(datediff(d,getdate(),Rtrim(year(getdate())+1)+'-'+Rtrim(month(LinkmanBirthday))+'-'+Rtrim(day(LinkmanBirthday)))<=7anddatediff(d,getdate(),Rtrim(year(getdate())+1)+'-'+Rtrim(month(LinkmanBirthday))+'-'+Rtrim(day(LinkmanBirthday)))>=0)RETURN
以上代码分别是添加客户信息、编辑客户信息、通过客户名称进行客户信息模糊和联系人生日提醒功能等的存储过程实现代码。使用存储过程既提高了系统运行效率又增强了系统的可维护性,减少网络流量。4.4本章小结本章首先阐述了系统设计原则,然后根据客户关系管理系统功能,阐述了系统的业务流程和实现方便快捷的网页导航功能的方法。其次按功能模块开发实现了各个子系统的具体功能。最后通过对存储过程的研究,实现了利用存储过程高效的、灵活的访问数据库的应用实践。第五章系统应用实践5.1页面导航功能客户关系管理采用先进的Web导航方式,实现了方便快捷的页面导航。在网页的上方有五个LinkButtion按钮,分别是:基础配置管理、客户资源管理、客户发展管理、客户服务管理、分析决策管理按钮。当点击相应的按钮时,就会在网页的左边显示出该功能模块的页面导航路径列表,点击导航路径列表中相应导航路径就可以进入该网页了。导航按钮和导航路径列表如图5-1所示。图5-1网页页面导航Fig.5-1WebPagesGuidance
5.2客户关系管理系统操作示例5.2.1基础配置管理基础配置是系统运行的基础。基础配置管理主要实现了一些系统应用所需要的基础配置。有客户所在区域、城市、部门、客户状态(即客户所处生命周期的阶段)、客户等级、客户业务类型等。由于该模块与其它模块比较,操作相对简单,因为篇幅有限,在此仅以客户状态配置和城市配置为例作进行介绍。1、配置客户状态在配置客户状态时,在客户状态名称下方有一个验证按钮,如果客户状态名称已存在则不允许添加。通过验证方可添加,并在添加按钮右边会有添加成功提示信息。添加成功后的客户状态名称,在网页下面部分以状态列表形式分页显示,点击状态列表最右边一栏的编辑LinkButtion,即可对客户状态进行编辑。客户状态配置完后,在系统中以下拉菜单形式供用户方便使用。客户状态配置页面如图5-2所示。图5-2客户状态设置Fig.5-2CustomersStateConfigurationWebPage2、客户所在城市配置
在区域配置完成之后,就可以添加城市了。在添加时,要先选择城市所在区域,然后添加。通过验证即可保存,并在添加按钮右边会有添加成功提示信息。客户所在城市配置完后,在系统中以下拉菜单形式供用户方便使用。该页面如图5-3所示。图5-3客户所在城市配置Fig.5-3CityConfigurationWebPage3、编辑城市添加完城市后,可在编辑城市页面进行查询编辑。首先在选择区域下拉菜单中选择要编辑的城市所在区域,在城市列表中就会列表分页显示该区域的城市,点击城市列表最左边一栏的编辑LinkButtion,即可对城市进行编辑。编辑城市页面如图5-4所示。图5-4编辑城市页面Fig.5-4EditCityWebPage5.2.2客户资源管理1、客户资料管理(1)添加客户信息
添加客户信息页面记录了客户的基本信息其中包括发展客户员工名称、客户名称、行业类型、客户状态、客户等级、所在城市、联系方式等。在添加客户信息时,在页面上有一个客户名称验证按钮,如果客户名称已存在则不允许添加。如果E-Mail格式不正确,则在添加按钮下方以红字提示“E-Mail格式不正确”。该页面设计如图5-5所示。图5-5添加客户信息页面Fig.5-5AddCustomerInformationWebPage(2)查询浏览客户信息客户资源管理系统客户信息的查询灵活多变,需要方便快速地对客户信息进行搜索。在该网页可以按客户状态、客户等级、客户行业类型、客户所在城市、发展客户员工名称分类查询等和按名称的模糊查询。用户进行查询后,在网页下面部分分页显示客户信息列表,点击客户信息列表最右边一栏的详细信息LinkButtion,将会跳转到浏览客户详细信息页面进行浏览。如图5-6所示。图5-6查询客户信息页面Fig.5-6InquiryCustomerInformationWebPage(3)编辑客户信息
编辑客户信息时,首先用户可以进行查询,然后在客户信息列表中点击最右边一栏的编辑LinkButtion,将会跳转到编辑客户详细信息页面进行编辑。如图5-7、5-<#004699">8所示。2、客户流失管理客户流失管理主要实现了对流失客户的查询、编辑、分析等功能,可以对流失客户方便地进行查询、编辑、分析。图5-7编辑客户详细信息页面Fig.5-7EditionCustomerDetailedInformationWebPage图5-<#004699">8编辑提示信息Fig.5-<#004699">8EditionInformationofAuditingWebPage客户流失分析管理主要以客户流失分析页面来介绍对客户的流失原因分析功能。在进行客户流失原因分析时,可先对客户流失信息进行分类查询按客户流失原因、客户状态、客户等级、客户行业类型、客户所在城市等和按名称的模糊查询。然后按查询的分类进行分类处理。点击客户信息列表中最右边一栏的流失分析LinkButtion,将会跳转到客户流失分析页面进行流失原因分析。如图5-9、5-10、5-11所示。图5-9客户流失分析页面
Fig.5-9LoseCustomerAnalysisWebPage图5-10客户流失原因分析页面Fig.5-10AnalyseLoseCustomerReasonWebPage图5-11客户流失分析提示信息Fig.5-11AnalysisInformationofAuditingWebPage3、联系人管理联系人管理子实现了对联系人信息的添加、查询、编辑及联系人生日提醒等功能。联系人信息添加信息主要包括姓名、性别、生日、喜好、联系方式、所属的企业等。在添加时会进行联系人名称验证和E-Mail格式验证,如果客户相关联系人名称已存在则不允许添加。如果E-Mail格式不正确,则在添加按钮下方提示“E-Mail格式不正确”。联系人信息的查询可以按客户名称进行分类查询和按联系人名称、联系人喜好进行模糊查询。用户能够通过该功能查询浏览联系人详细信息。查询结果以联系人列表形式分页显示,方便用户查看。点击联系人信息列表最右边一栏的编辑LinkButtion,将会跳转到编辑联系人详细信息页面进行浏览。编辑完后点击修改信息按钮进行保存,保存成功后会有成功信息提示。
图5-12联系人生日提醒页面Fig.5-12LinkmanBirthdayReminderWebPage图5-13联系人详细信息页面Fig.5-13DetailedLinkmanInformationWebPage联系人生日提醒功能,通过自动搜索数据库,提前一周向用户提醒要过生日的联系人。提醒以列表形式显示,联系人列表将一周内要过生日的联系人信息显示给用户,用户可以分页浏览每页显示的记录信息。点击列表最右边一栏的详细信息LinkButtion,并可以快速链接到浏览联系人详细信息页面查看要过生日联系人的详细信息。如图5-12、5-13所示5.2.3客户发展管理客户发展管理系统主要功能有客户发展任务管理、客户接触计划管理、计划执行管理、在线销售管理和员工资料管理等。可以对客户发展任务、客户接触计划、计划执行、在线销售等进行方便的录入、查询、编辑、处理等操作。客户发展管理的功能比较多,并且功能操作比较相似,由于篇幅有限,在这里仅以客户接触计划管理为例作进行介绍。1、制定客户接触计划
制定客户接触计划页面记录了制定计划员工名称、客户名称、联系时间、接触计划标题和接触计划的详细内容等信息。在制定客户接触计划后,点击添加记录按钮进行保存,保存成功后会有保存成功信息提示。制定客户接触计划页面如图5-14所示。图5-14制定客户接触计划页面Fig.5-14FormulateCustomerContactPlanWebPage2、查询客户接触计划在该网页可以按员工名称、员工部门、接触计划联系日期分类查询。用户进行查询后,在网页下面部分分页显示接触计划列表,点击接触计划列表最右边一栏的详细信息LinkButtion,将会跳转到浏览客户接触计划详细信息页面进行浏览。如图5-15所示。图5-15查询客户接触计划页面Fig.5-15InquiryCustomerContactPlanWebPage3、编辑客户接触计划在编辑客户接触计划网页可以按员工名称、员工部门、接触计划联系日期分类查询。用户进行查询后,在网页下面部分分页显示接触计划列表,点击接触计划列表最右边一栏的编辑LinkButtion,将会跳转到编辑接触计划详细信息页面进行编辑,保存成功后会有保存信息提示。如图5-16、5-17、5-1<#004699">8所示。
图5-16编辑接触计划信息Fig.5-16EditCustomerContactPlanWebPage图5-17编辑接触计划详细信息Fig.5-17EditDetailedCustomerContactPlanWebPage图5-1<#004699">8编辑接触计划信息提示Fig.5-1<#004699">8EditionInformationofAuditingWebPage5.2.4客户服务管理客户服务管理系统主要功能有客户投诉管理、客户新需求管理和客户合同管理。可以对客户的投诉、客户新需求和客户合同进行方便的登记、查询、编辑和客户合同到期提醒等操作。客户服务管理的功能比较多,并且功能操作比较相似,由于篇幅有限,在这里以客户投诉管理为例作进行介绍。1、登记客户投诉信息登记客户投诉信息页面需要登记投诉标题、被投诉人、客户名称和客户投诉详细内容等信息。在登记完客户投诉信息后,点击添加投诉按钮进行保存,保存成功后会有保存信息提示。登记客户投诉信息页面如图5-19所示。图5-19登记客户投诉信息页面
Fig.5-19AddCustomerComplaintInformationWebPage2、查询编辑客户投诉信息在查询客户投诉信息网页可以按投诉员工名称、投诉员工部门、投诉客户名称、投诉原因、投诉日期和投诉处理日期进行分类查询,也可以按客户投诉标题进行模糊查询。用户进行查询后,在网页下面部分分页显示投诉记录列表,点击投诉记录列表最右边一栏的详细信息LinkButtion,将会跳转到浏览编辑投诉记录详细信息页面进行浏览编辑。如图5-20所示。图5-20查询编辑客户投诉信息页面Fig.5-20InquiryandEditcustomerComplaintInformationWebPage3、处理客户投诉信息在处理客户投诉信息网页可以先按投诉员工名称、投诉员工部门、投诉客户名称、投诉原因、投诉日期和投诉处理日期进行分类查询,也可以按客户投诉标题进行模糊查询。用户进行查询后,在网页下面部分分页显示投诉记录列表,在找到所要处理客户投诉并点击投诉记录列表最右边一栏的处理投诉LinkButtion,将会跳转到处理投诉记录详细信息页面进行投诉处理。如图5-21、5-22、5-23所示。
图5-21处理客户投诉信息页面Fig.5-21DealWithCustomerComplaintInformationWebPage图5-22客户投诉处理录入页面Fig.5-22AddCustomerComplaintDisposalInformationWebPage图5-23投诉处理信息提示Fig.5-23CustomerComplaintDisposalInformationofAuditingWebPage图5-24客户流失原因评估分析页面Fig.5-24LoseCustomerAnalysisforReasonWebPage5.2.5分析决策管理分析决策管理子系统主要实现了绩效评估分析、投诉率评估分析和因素影响评估分析。绩效评估分为员工绩效评估分析和部门绩效评估分析两个评估功能。投诉率评估分析分为对员工投诉评估分析和对部门投诉的评估分析。因素影响评估分析分为客户新需求类型评估分析、客户投诉原因评估分析和客户流失原因评估分析。分析决策管理子系统的功能比较多,并且功能操作简单并且操作比较相似,由于篇幅有限,在这里仅以客户流失原因评估分析为例作演示。如图5-24所示。
在进行客户流失原因评估分析时,用户可以输入分析起止日期、客户流失原因等信息,点击进行分析按钮进行分析计算,在分析结果列表中显示相应的因素影响评估信息。如果用户没有递交任合数据,则默认从数据库中读取从当前日期起三十天内的所有客户流失原因评估信息。以列表方式在分析结果列表中分页显示所有客户流失因素影响评估信息,并以客户流失因素影响评估系数由高到低的顺序展示给用户。5.3本章小结本章展示了设计实现的邕科鼎客户关系管理系统的页面导航功能,并介绍了客户关系管理系统在使用之前进行的基础配置的操作,然后分别对客户资源管理、客户发展管理、客户服务管理、分析决策管理等子系统进行了操作演示。第六章总结与展望6.1总结本文设计开发了一个适合中小企业的客户关系管理系统,使企业应用客户关系管理的理念,提高企业的客户关系管理水平,主要取得以下进展:
1、根据中小企业特点,结合对客户关系管理的理论及相关技术的研究,进行了系统的需求分析,提出了系统的实现方案。2、根据开发系统的需求特点,确定了系统功能模块和业务流程,完成了系统总体功能设计和各子系统的详细功能设计。3、通过对存储过程的研究,应用存储过程,实现了对数据库高效灵活地进行访问,提高了系统的运行效率。4、通过对分析决策算法的研究,设计了如下算法:因素影响评估算法、绩效评估算法、投诉评估算法,运用这些算法实现了客户流失原因评估分析、客户新需求类型评估分析、员工绩效评估分析、员工投诉评估分析等功能,帮助企业挖掘信息和数据背后蕴含的规律和逻辑关系,为企业提供决策依据。5、根据系统设计原则,采用B/S三层体系结构模式进行设计,应用SQLServer2000作为数据库服务器,采用VS.NET2005作为开发平台,使用C#语言进行应用程序的开发,应用ADO.NET技术实现在Internet上高效数据库访问,开发实现了系统的具体功能。本文设计实现了客户资源管理、客户发展管理、客户服务管理、分析决策管理、基础配置管理五个子系统,设计实现的eCRM系统的功能贯穿于企业的营销、销售、服务及分析决策等与客户有关的领域。其可以运行在Windows2000/2003操作系统上,并进行了系统的实验室测试,运行良好。6.2展望
通过对客户关系管理系统的设计和开发,比较成功的实现了对客户关系的有效管理。但由于个人能力和精力有限,本系统还存在以下问题,有待进一步研究开发:本系统的分析决策管理部分的功能有待扩展,有待开发销售统计、成本分析等分析功能。参考文献孟峰,陆静平,廖小平,基于.NET的客户关系管理系统的设计与实现,中国科技信息,2007年24期:102-103,105王广宇,客户关系管理方法论,北京:清华大学出版社,2004年9月:71-73NadjiTehrani,CRMINADIGITALWORLD,CustomerInter@ctionSolutions,2007,25(11):1-2AnnetteJacobs,HowCanCRMToolsManageTheCustomerExperience,CustomerInter@ctionSolutions,2005,24(5):44-46RichardE.Crandall,AFreshFaceforCRM,APICS,2006,16(9):20-22RICHARDWHITNEY,MarketingservicesagenciestakeleadinCRM,BtoB,2006,91(11):21-22何荣勤,CRM原理·设计·实践,北京:电子工业出版社,2006年01月:<#004699">8-12,51-53叶开,中国CRM最佳实务,北京:电子工业出版社,2005年04月:<#004699">8-9,1<#004699">8-22,21-22
BonnieCrater,IsOn-DemandCRMRightForYourCustomerServiceOrganization,CustomerInter@ctionSolutions,2006,24(7):34-36MichaelJ.Schroeck,CustomerAnalyticsMakingtheDifferenceinCRM:CustomerAnalyticsAmplifytheValueofIntegratedCRMSolutions,DMReview,Sep.2001:77-<#004699">89MarkXu,JohnWalton,GainingcustomerknowledgethroughanalyticalCRM,IndustrialManagementandDataSystems,2005,105(7):955-971姚应科,eCRM与客户化营销组合策略,合作经济与科技,2005年09期:9-10RICKWHITING,CRMOpensForBusiness,InformationWeek,2006,000(1102):52-54(日)泽登秀明著,陈晶晶译,eCRM营销eCRMmarketingmethod:获取潜在顾客的网络营销手段,北京:科学出版社,2006年07月:34-35EphraimSchwartz,SAPExtendsItsReachtoBI,CRM,InfoWorld,2005,27(21),1<#004699">8-1<#004699">8MichaelMcGarr,CustomerRelations:BeforeBuyingIntoAneCRMsystem,StudyCustomers,electroniccommerceworld,2001,000(3):10-10姚海涛,我国企业客户关系管理的发展现状与研究,商场现代化,2006.05期(下旬刊)总第46<#004699">8期:70-70Hong-MeiChen;QimeiChen;RickKazman,TheAffectiveandCognitiveImpactsofPerceivedTouchonOnlineCustomersIntentiontoReturnintheWeb-basedeCRMEnvironment,JournalofElectronicCommerceinOrganizations,2007,5(1):69-91毛光喜,企业信息化与eCRM系统开发及应用,中国管理信息化:综合版,2007年10卷<#004699">8期:2-4冯勤,武震,eCRM
的发展与研究,天津成人高等学校联合学报,2005年第7卷第5期:23-25范振钧,基于ASP.net的三层结构实现方法研究,计算机科学,2007(4):2<#004699">89-291韩朝军,梁冰,刘莹,SQLServer管理与开发技术大全,北京:人民邮电出版社,2007年04月:232-234刘泽文,陈宇拓,基于Delphi语言的SQL数据库设计与访问,中国科技信息,2005年9期:61-61,64郭贤海,詹英,寻杨,基于SQL探讨数据库设计技术,台州学院学报,2006年2<#004699">8卷3期:26-29赵秋云,魏乐,叶剑新,面向对象在关系数据库设计中的应用,成都信息工程学院学报,2007年22卷3期:317-320张红,ADO.NET访问数据库技术的分析与应用,计算机与现代化,2006(10):35-37于训全,于晓冬,基于ADO.NET的数据库访问技术研究与应用,企业技术开发,2006年25卷1期:3-5徐伟,赵宁华,ADO.NET中Connection对象及使用研究,计算机与信息技术,2007年第31期:73-74,99李彦,ADO.NET数据库访问技术研究,电脑知识与技术,2007年<#004699">8期:614-615李岚,朱红高,基于C#的ADO.NET访问数据库技术,电脑知识与技术,2007年4期:2<#004699">8-29邱云飞,邵良杉,基于ADO.NET的通用数据访问层设计方法研究,计算机系统应用,2007年7期:54-56,60陈庆方,数据库访问技术ADO.NET的WEB应用研究,商场现代化,2007年04Z期:52-53
陈建国,开发高性能ADO.NET应用程序的探讨,福建电脑,2007年1期:173-174BalajiPadmanabhan,ZhiqiangZheng,StevenO.Kimbrough,ANEMPIRICALANALYSISOFTHEVALUEOFCOMPLETEINFORMATIONFORECRMMODELS,MISQuarterly,2006,30(2):247-267W.H.Ip,BochengChen,HenryC.W.LauandBingLiang,AFunctionalFrameworkforIntegratingeCRMwithWorkflowManagementBasedonCustomerValue,TsinghuaScience&Technology,?Volume11,Issue1,?February2006:65-73BAzvine,DDNauck,CHo,KBroszat,JLim,IntelligentprocessanalyticsforCRM,BTTechnologyJournal,2006,24(1):60-69严丹屏,陆永忠,电子政务系统综合模式绩效评估的研究,计算机工程与科学,2007年29卷4期:116-119杨泉,企业绩效评估方法的比较和选择,中国人力资源开发,2007年10期:57-59方玉珍,使用存储过程实现复杂的数据统计与分析,现代计算机,2007年<#004699">8期:62-63,<#004699">80KevinB.Hendricks,VinodR.Singhal,JeffK.Stratman,Theimpactofenterprisesystemsoncorporateperformance:AstudyofERP,SCM,andCRMsystemimplementations,JournalofOperationsManagement,2007,25(1):65-<#004699">82刘淑梅,XML技术在动态网站中的应用,邢台职业技术学院学报:62-63杨光,高云莺,利用XML技术管理网页的页面导航,吉林师范大学学报,2006年27卷4期:9<#004699">8-99,102
余志超,周静,浅谈ASP.NET页面导航方式,中国科技信息,2006年02A期:40-40田原,合理使用ASP.NET的Web页面导航方式,电脑知识与技术,2006年5期:62-63费杨洁,存储过程在管理信息系统开发中的应用,河北省科学院学报,2007年24卷2期:22-24肖辉辉,段艳明,SQLServer2000存储过程在VB中的应用,福建电脑,2007年12期:1<#004699">89-190AtifAziz,DynamicallyBindYourDataLayertoStoredProceduresandSQLCommandsUsing.NETMetadataandReflection,MSDNMagazine,2002,17(<#004699">8):93-96,9<#004699">8-102,104-105杨荣蓉,两种方法实现在ASP.NET中调用存储过程,科技信息:学术版,2007年33期:70-70,77李娜,SQLServer查询优化分析,辽宁省交通高等专科学校学报,2007年9卷3期:41-43Rosen,Judith,Riippa,Laurele,SQLFunctionsandStoredProcedures:Thei5/iSeriesProgrammer'sGuide,PublishersWeekly,2005,2(2<#004699">8).Vol.252Issue9:25-25戴薇,张士军,在SqlServer数据库中利用存储过程实现动态交叉表,计算机与数字工程,2006年34卷12期:126-12<#004699">8PeterW.DeBetta,J.ByerHill,AutomatetheGenerationofStoredProceduresforYourDatabase,MSDNMagazine,2003,1<#004699">8(4):79-<#004699">86PAULCONTE,StoredProcedures,iSeriesNews,2005,000(313):1-4PAGE11PAGE10