Siebel CRM 培训内容:
第一讲:Siebel的总体概述 1.Siebel的应用概述 Siebel CRM是围绕客户关系管理这个主题建立起来的一系列应用的总和,和一些国内公司的CRM/Call Center产品不一样,Siebel应用远远不只是接一些电话然后记录下来并进行处理这么简单。 Siebel应用是通过统一协调管理各个联系客户的渠道,如email,电话,传真或者web以至于现场客户服务,从客户信息管理,销售机会管理,服务管理, 主动地根据客户信息进行销售等,提供给公司一个全局的统一的客户视图,并提供给客户一个统一的公司视图,而建立起来的面向多个行业的客户关系管理解决方案。 Siebel的应用包含多个模块,分别面对不同的使用人员,主要分为面向客户的应用,面向雇员的应用和面向合作伙伴的应用。 Siebel应用里基础的业务实体 Siebel应用里有一些业务实体贯穿于整个应用中,这些业务实体主要是Accounts,Contacts,Opportunities,Orders,Service Requests,Households,Activities,Assets。 Accounts(公司):公司外的业务实体,可以是潜在的客户,竞争对手等。 Contacts(联系人):和公司有生意往来的人,一般都有一个名称,职位,电话号码。 Opportunities(机会):一个可以带来利润(revenue)的事情,一般会和一个account相联系,并且会有一个完成日期。 Orders(订单):客户购买的一个产品或服务,一般有一个订单号,订单状态,并且和一个account相联系。 Service Requests(服务请求):一个客户请求,可能请求一些产品信息或服务信息。 Household(集体成员):有某种经济联系的一些人的集合,他们可能有共同的采购行为或者兴趣.一般有一个名称,一种成员类型,集合体的联系人,并且有专门的用于负责这些人的雇员。 Activities(活动):一个需要完成的事件,一般有起始日期和预计完成日期,优先级别,和负责的雇员。 Assets(资产):一个已经被采购的产品,一般有一个资产号码,一个产品代码,和产品当前使用状态(如在用,废弃等).2.Siebel技术体系
Siebel的技术体系主要是建立在第三方技术平台之上,Siebel的主要体系架构是典型的web server/Applications Server/Database Server的三层架构 3.Siebel的组织架构 Siebel应用程序的应用/数据访问控制和Siebel应用的组织架构设计相关,Siebel应用界面的一些基础概念包括:Screen,View以及 Siebel组织结构的基本概念Division,organization,position,responsibility和employee Screen是指Siebel应用里一组相关的功能或主题提供的一个tab. Accounts就是一个screen,而View则是完成该主题里一个特定的任务的具体菜单项,如Accounts List则是一个View,而通过这个View能够看见的东西则称之为数据(data). 视图和数据的权限是完全分开控制的.比如两个call center话务员Mary和Lisa,她们可能具有相同的职责(所以他们能够看见相同的View), 但是每个人只能看见自己的那份数据(data是由他们的ID控制).而他们的Manager则可以看见Mary和Lisa两个人的数据(数据由organization组织架构决定). Division和Organization和我们平常所见的公司结构图里的分支和部门是一样的概念,其实建立Division和Organization的方法一样, 只不过要在建Division的时候选择一个checkbox指定该Division为Organization.但是Organization和Division也有区别, 他们都可以用于来设置公司组织架构的层次,但是如果希望不同的Organization不能够互相看见对方的数据进行数据的控制,需要对数据进行控制的话,则要使用Organization。职位也是一个公司组织结构图上的一个小方块,用于组成公司的上下级汇报关系,一般一个职位只有一个雇员,当然有时候一个职位可以有多个雇员.
而且因为职位远要比雇员要稳定(雇员很可能离职),所以职位的访问控制在企业的很多场景里提供了恰当的数据访问控制方式,而且使用职位进行访问控制比之使用雇员进行权限控制有更大的稳定性。 Responsibility则是企业里某次功能的集合,这个集合通常赋予一个工作岗位,(从Siebel应用的角度来说,就是一组View的集合) 4.Siebel的访问控制 Siebel提供的两种主要的访问控制方式在View级别和Data(record)级别: 1).View级别的访问控制:一个企业通常按照功能进行工作的区分,分配给一个用户的功能决定了他能够访问Siebel应用的功能(在Siebel应用里称之为View,类似于一般应用的菜单),一个用户通过授予他的职责从而能够访问的功能的集合,这种应用的授权方式是通过View来进行的。 如一个销售代表通常能够看见My Contact View,My Opportunities View等,而一个Call Center Agent却只能看见My Service Request View。这些都是通过Responsibility授权而得到View的权限的例子 2).记录(数据)级别的访问控制:记录级别的访问控制使用户能够Siebel使用三种数据访问控制,position,organization,access group:当一条记录被赋予position,organization,access group权限时, 只有那个职位,组织,或访问组的雇员能够看到该数据.下面只通过position来说明数据的这种访问控制,同样对于Organization也是类似的。Position Access Control也有好几种,我们只选取其中一种来说明: single-position access control:如报价信息,一个使用某种职位登录的雇员只能看见该职位能够看见的报价信息(一个更高职位的雇员可能可以看见更高的折扣,所以每个职位的报价信息是不一样的) 不同类型的数据可以采取不同的数据访问控制方式,如客户相关数据可能更倾向于采取position相关的权限控制 能够使用什么控制方式和Business Component(BC)相关,是由该 BC的View Mode决定,比如一个想使用position access control的View必须是该View对应的BC里ViewMode的OwnerType里有position一项第二讲:Siebel数据架构 1.Siebel数据结构的详解 整个Siebel数据的层次结构分为三个层次,每一个层次都对应了下一个层次的相应的元素,一个层次的改动不影响另一个层次的稳定性. UI层中主要包括:List Column or Control、Applet、View、Screen、Application Business层主要包括:Field、Business Component、Business Object Data层主要包括:Column、Table 三层架构的关系:一张表包含多个列,一个业务对象BO包含多个业务组件BC,一个业务组件又包含多个字段.字段主要显示在Control或List Column. 一个Applet包含多个List Column or Control,一个Applet又引用了一个BC,一个应用程序包含多个Screen,一个Screen又包含了多个View. 从三层架构可以看到,一个BC其实对应的就是一个逻辑表(可以是一个基表也可以是几个关联的表的一个逻辑的表),BC里的Field就是对应了数据表的列, 多个相关主题的BC则组成了BO,而View,Screen等屏幕元素,这些屏幕元素和BC,BO也存在一定关系,从BO和BC的观点来重新定义这些概念就是,View其实对应的就是一个BO,而Applet则对应着一个BC,所谓Control 则是屏幕上对应于关系数据字段的显示.多个相关的View则组成了一个Screen,而多个相关的Screen则组成了一个Siebel应用 2.Siebel数据架构各个模块的配置 1)Siebel计划和实施:1)计划 自上而下计划配置项目 2)实施:自下而上实施更改. 2)首先数据层,数据层中包含了很多张表,表又有很多列组成,在实际开发中,表已经建好,可以直接用.在实际开发规范中,表是用数据库管理员创建. 3)其次业务逻辑层,这一层包括了BO,BC,Field,在实际开发中,需要先建BC,根据规范BC需要在向导中建.创建BC需要指定一个Project,然后建一个BC,关联一张表.然后创建一些字段与表中的Column对应. 创建一个BO,指定Project,关联一个主BC. 4)最后数据显示层,这一层包括了Control or List Column、Applet、View、Screen、Application.在实际开发中,需要先配置Applet,选择向导创建List Applet或者Form Applet. 首先指定一个Project,对Applet进行命名以及对Applet显示的命名,选择并关联指定的BC. 5)配置View,使用向导创建View,首先指定Project, 对View命名,然后关联一个BO,最后选择模板.进行对View的配置. 6)配置Screen,创建一个Screen,进行命名,指定特定的Project,指定默认的View. 3.配置一个Siebel应用程序需要那些步骤 Siebel界面的初步搭建都是基于Siebel Tools工具来创建的,其搭建步骤:1). 首先先创建一个Project项目,并进行locked.
2). 建表输入名称,引入新建的Project名称--->选择独立的表.根据开发规范表已经建好
3). 添加Column,添加几条记录,然后Apply/DDL点确定,输入数据库账号密码更新本地数据库的表的更新
4).添加业务组件(BC) 根据向导创建,选择Project名称,命名一个业务组件名,选择表名,指定字段与表的列对应关系
5). 配置Field,修改字段里的一些约束条件,修改Type类型
6). 新建一个BO,创建BO名称,指定Poject,选择BC,关联Primary Business Component
7). 新建Applet,根据向导创建,选择List Applet或者Form Applet进行创建.
8). 创建View,使用向导创建,指定选择Project,命令View名,选择BO,选择模板进行创建
9). 配置Screen,添加一条记录命名Screen名称,指定Project名称,新建一个记录,选择Type,定义Default View.
10).选择Application,右键选择Locked,指定Project(Page tab),添加记录,然后进行编译.
4.Siebel Tools工具的使用
1)首先Siebel Tools工具,Tools界面有菜单栏,工具栏,Object Explorer.Object property, Object definition各个功能等 2)Siebel Tools工具的环境配置,View-->Options. Help工具里的eScript参考目录以及一些Siebel Tools和srf文件的信息 3)同时也讲到了Tool工具下的项目编译过程,如果在本地数据库针对某一个项目开发,需要对项目进行加锁.同时也讲到Check Out与Check In的区别 4)所有的开发都是基于Siebel Tools工具来进行的,对于Tools的一些功能,一些流程需要清除的了解第三讲:Siebel业务流程与配置 1.关系表之间的关系 对于关系表之间的关系,如主外键关系,从业务的BO观点来看则是BC之间的关系(不是严格的一对一,并非是一个关系表的外键一定会组成BC间的关系).因为一个BO总是由一个主要的BC以及和它相关的一些BC组成. 而主要的BC总是以一定的关系和附属的BC关联,这种关系就称之为Link. 一个View展现的就是一个BO,而BO是由一个Master BC和相关的一些子BC组成,如果不存在Link,则子BC的所有数据都会展现出来.而建立Link之后,就只有和Master BC选定的记录相关联的数据才会展现出来.这些关系可能是: 1:1关系:一对一的关系很多是用在扩展表上,扩展表的后缀名通常为_X(扩展表是Siebel里常见的一种表,一般Siebel业务的基础数据存储在Base表中,然后把一些扩展的数据和一些可以客户化的字段放在扩展表中,从而给不同行业,不同场景提供了一个扩充性很强的数据模型) 1:M关系:一对多的BC关系一般用于Master-Detail的业务场景,比如一个Account以及该Account已经购买的产品就是一个Master-Detail关系.这种关系类似于关系表的主键外键关系,这种关系在扩展表上也存在,通常后缀名称是_XM. M:M关系:多对多的关系是通过一个叫做交集表(Intersection Table)体现出来的,两个BC之间没有主外键关系,但是每个BC和该交集表有主外键关系.2.CRM业务流程的新装业务流程(客户--> 产品---> 订单---> 资产)
由客户发起,客户申请新装业务.如果已有,需要查询一个客户业务受理页面,如果没有客户信息,需要新建客户信息. 客户挑选产品, 加入购物车,生成订单.订单生成后,把订单行项目记录转换成资产记录.生成相应的资产. 比如电信项目的新装业务流程: 1)客户申请新装业务 2)新建客户信息,选择产品 3)生成订单并由客户确认 4)订单提交并开通状态跟踪 5)收费完成订单并开始收费形成资产3.MVG的配置
MVG是针对某一个多值的字段,这个字段有多个值,显示这个字段,需要配置MVG, 1).首先在一个Project中,分别建立两个BC对象 2)构建两个BC关系通过Link对象实现,创建中间表. 3)配置MVLink和多值Field 4)配置多值信息的Applet(MVG Applet) 5)展现BC配置的多值Field4.Picklist的配置
Picklist包括静态的Picklist和动态的Picklist 静态Picklist的配置 1)Picklist,复制一个Pistlist进行修改,创建一个静态PickList的名称,指定Project 2)选中Business Component(Field),指定某个字段的Picklist 3)选择Applet Control(Form Applet)行中对显示字段的Runtime 4)Business Component中Field(Pick Map),把需要映射的Field与Picklist Field进行关联映射 5)Project进行编译动态Picklist的配置
1)选择Picklist,新建一条记录,新建动态名,指定Project名称 2)选择BC上的Field在指定的BC下行中添加Picklist 3)点击Field(Pick Map),新建一条记录把Field与Picklist Field进行映射关联 4)拷贝现有的标准的Pick Applet 进行定制,首先查询Type为Pick list类型的Applet 5)选择Applet(List Column)选择需要Picklist的字段, 6)返回Applet(Form Applet)进行字段在Form List下的显示.最后选择Tools并Compile Projects进行编译.第四讲:业务逻辑层BC上的一些配置属性
1.BC上Field的计算字段类型 BC上的Field字段包括:单值字段,多值字段(MVG),计算字段. 计算字段:本身不对应到数据库, Columnu为空的,计算字段根据特定的某个条件,某个运算符,运算出来的某个值,就是计算字段,就是值来源于运算. 运算符:IIf方法: iif("表达式","Y","N"), 计算字段可以嵌套计算字段, 计算字段和普通的字段的区别就是:计算字段打勾以及一些表达式的配置. 2.BC上Up的配置 Up相当于一个事件,就是满足了一定的条件去执行.相当于数据库中的触发器. UP的分类主要是针对BC层面的分类: 1)Read Only(只读),也是针对一定的表达式来进行触发的操作. 2)Deep Copying(复制):对存在父子关系的BC,如果指定了Deep Copying,发生复制了就会把相关的父子BC也复制一份. 针对字段级别的UP: Read Only UP、级联控制(联动控制) Applet 上的Up主要是控制一个按钮的恢亮.3.BS可以看作是Siebel里的一个对象,主要是用来写脚本.一套业务逻辑,业务逻辑也包括BO,BC,BS.
脚本可以在Browser端运行, Application的业务服务主要在浏览器端运行.4.View Mode配置
View Mode配置就是对权限控制配置,Siebel里面权限控制是分为页面级别和视图级别的.页面级别是根据职责来控制的. ViewMode主要是针对数据级别来控制的.数据级别分为: Personal、Sales Rep、Organization、Group、Catalog 数据访问控制:首先确保数据Column或者字段能够在表中存在.确保数据能够和职位、组织有关联. 权限控制: 1).构建BC所在表的数据和职位组织所在表的一个关系,也就是建一个MVG,MVL,link,指定一个相应的View Mode,只需要配两种级别职位级别和组织级别。 2).配相应的视图里面的VisibelType 指定这个视图显示那种级别的数据.(视图配置主要显示那个级别的数据)第五讲:eScript脚本 1.主要使用在:Application Applet BC BS(BS对象就是脚本组成,是对一系列脚本的封装) eScript语言主要在Browser Script 和Server Script. Applet 脚本主要体现在各个按钮上.Applet的各个按钮主要定义在Control上. Browser Script主要运行在浏览器端,Server Script主要运行在服务器端. 执行顺序:优先执行Browser 端的脚本-->Server端的脚本,脚本不只是写在Browser 端,Server端的配置,还有信号只是针对业务需求很少用到.2.业务服务(BS)
就是定义一个名称,然后指定一个Project,Class一般是默认的.除了特殊的,比如说接口。 业务服务结构: 主要就是Method,里面包含一系列的方法,配在UP里面. Applet Browser Script()加载页面就已经执行了. BS:Method定义一系列方法的集合.BS Server 脚本.3.控制按钮明暗的两种方式:
1)Server端配置按钮明暗的:PreCanInvoke() 写脚本配置 2)UP中控制:CanInvokeMethodUP:方法名 也可控制按钮的明暗的. Ture 或者False 或一系列的运算. 3)针对控制按钮明暗来说优先执行顺序:UP>BroswerScript.逻辑脚本可以写在:Up>Browser脚本>Server脚本 4)了解两个返回操作的代码ReturnCancelOperation与 RerurnContinueOperation的区别.4.Applet脚本的写脚本的位置:Browser eScript(Applet_PreInvokeMethod ,Applet_InvokeMethod), Server eScript(PreInvokeMethod,InvokeMethod,PreCanInvokeMethod)
BC端:Broswer Script不用写脚本,Server Script需要写脚本. 服务器端对应的是column,写脚本的位置:BusComp_PreSetFieldValue ,BusComp_SetFieldValue. 5.Siebel 脚本语法规则: 1)eScript脚本语法定义规则 var aGood; 对象变量:Applet、BO、 BC、 View 、Screen、 Application //获取BO对象 var oBo=TheApplication().getBusObject("BO名称"); //获取BC对象 var oBs=TheApplication().GetBusService("业务服务的名称"); //获取BC对象 var oBc=oBo.GetBusComp("BC名称"); fucntion方法定义一个名称 function aGount(Inputs,Outputs){ try{ }catch(e){ }finally { } } 2)BC对象下常用的方法. with(oBc){ //1.设置数据视图权限 SetViewMode(AllView); ClearToQuery(); //2.激活字段(相当于把某个字段查出来了.) ActiveField("字段名称") //3.设置查询条件 SetSearchSpec("Product Type Code","产品"); var sStr="[字段1]=值 and [字段2]<>值 or [字段3]=值"; setSearchExpr(sStr); //4.执行查询 ExecuteQuery(ForwardOnly); //5.获取结果集并判断结果 result=FirstRecord();//接收第一条记录 //6.判断 if(result){ //修改字段值 SetFieldValue("字段Name","要设的值"); //获取字段值 GetFieldValue("字段名称");//返回的是String类型 //7.保存提交 WriteRecord("保存名称"); } } 6.BC代码的编写顺序: 1).设置数据视图权限 2).清除查询 3).激活字段(相当于把某个字段查出来) 4).设置查询条件 5).执行查询 6).获取结果集并判断结果 7).保存提交例题:1.在本页面上配置MVG:MVG用于实现在一个学生记录行上浏览教师的所有信息 首先需要两张表:Student表(Stu)和Teacher(Tea) 学生表中包括:Sid,Sname,Ssex, 教师表包括:Tid,Tname,Tsex.Tcourse 中间表:学生选课表(Cid,Sid,Tid,Cs) 1).首先在指定的Project中,需要建立StuBC和TeaBC, 2).通过Link,把两个BC建立关联.Name(StuBC/TeaBC),输入Project,输入主BC和子BC,中间表就是学生选课表. 3).配置多值MVLink和MVField 配置MVL:在StuBC上配置MVL,目的BC(TeaBC),以及目的Link(StuBC/TeaBC) 配置MVF:在StuBC中添加一个多值字段Name(TeaAll),Multivalue Link写MVLink名称.Field(TName) 字段所对应是显示多值的字段名 4).在StuBC中配置多值字段Name(TeaAll),Dest Field(Tname),MVLink的名称以及Multivalued(必须勾选),说明显示的是一个多值字段. 5).然后配置Applet,Form Applet或List Column中,需要在StuBC对应的Form Applet中新建一个字段,Name(TeaAll),Field(TeaAll),Runtime(勾选),用于显示多值字段. 6).配置一个MVG Applet,指定一个项目名称,选择BC,Type选择(MVG). 7).把MVG Applet名称放到Form Applet以及List Applet所对应的MVG Applet. 8).最后选中Project,选择工具进行编译.
2.在本地页面配置.配置学生的性别静态值列表,含值为[男]、[女].
1)首先在All Project中,选中Picklist,复制一个Picklist进行修改,命名,指定Project,Bounded(勾选),Business Component(PickList Generic),static(必须勾上),Type Field(Type),指定Type Value。 2)选中Business Component(Field),选择Ssex中Picklist(Type Value的名称) 3)选择Applet Control所对应的Form Applet中Ssex行中的Runtime(勾选) 4)最后进行Business Component的Field(Pick Map)的映射,新建一条记录,Field(Ssex),Picklist Field(Value). 5)最后选中StuBC进行编译(选中对所修改的进行编译可以提高性能,编译比较快)3.在本地页面上配置选择班主任id用的动态Picklist.
1)选择Picklist,新建一条记录,Name(动态Picklist 名称),指定项目名称,Bounded(勾选),Business Component(TeaBC) 2)选中Business Component(Field),TeaBC下Tid行中Picklist(动态Picklist名称),显示Picklist的字段 3)点击Field(Pick Map),新建一条记录Field(Tid),PickList(id) 4)新建Pick Applet,Name(动态Pick Applet),BC(TeaBC), 5)选择Applet List Column,把Tid,Tname,拖入主体窗, Form Applet Tid行中PickApplet(动态Pick Applet),List Applet Tid行中PickApplet(动态Pick Applet). 最后选中所修改的对象,进行编译.