1、1,汉得信息技术有限公司HAND Enterprise Solutions Company Ltd.www.hand-,Siebel CRM 基础配置技能,汉得信息技术有限公司版权所有,2,Picklist配置-静态Picklist,Picklist是客户规范录入数据的一种方式分为静态Picklist和动态Picklist两种静态值列表是比较稳定的设置数据,如订单状态(新建,已发运,已关闭)。动态值列表是基于动态变化的业务数据,如产品、客户、价格表等。,静态Picklist,动态Picklist,3,静态Picklist配置-新建值列表,静态Picklist的数据来源于“值列表”BC不同的值列
2、表使用BC上的Type(类型)字段来区分。在管理 数据 - 值列表浏览器里新建一个值列表类型,命名为SNTO_ORDER_STATUS在管理 数据 - 值列表 里新增值列表。该操作应由项目中的设置数据维护人员进行操作,4,静态Picklist配置-新建值列表,在Picklist对象里新建记录,输入以下信息:Name: SNTO Order Status PicklistBounded: Y 限制用户录入的数据只能从Picklist的数据中选择Business Component: PickList Generic 一般的静态值列表都用该BCSort Specification: Order B
3、y 根据值列表设置的序列来对值列表的值排序Static: Y 标识静态值列表Type Value: SNTO_ORDER_STATUS 指定值列表的类型,5,静态Picklist配置-使用值列表,设置SNTO Order BC的Field的Picklist属性为:SNTO Order Status Picklist,6,静态Picklist配置-Pick Map,Pick Map匹配源BC上的Field与Picklist BC上的Field的Mapping关系订单状态(Order Status)对应值列表上的Field的显示值(Value),因此在Pick Map里新建记录,Field是Ord
4、er Status,Picklist Field是Value。,7,静态Picklist配置-编译并调试查看结果,编译修改的对象(Picklist,BC),并调试查看由于订单状态是界面只读字段,用户不能直接修改。可通过查询的方式查看效果。,8,静态Picklist配置-练习,实现订单状态的Picklist实现订单类型的Picklist配置订单行的状态Picklist,9,动态Picklist配置,动态Picklist由于是基于动态的数据(如客户),因此我们将在讲完如何配置一个Join以后再讲如何配置动态Picklist。,10,Join配置-Join原理,订单头的客户、价格表、主要联系人等字段
5、信息都是从其它的业务实体表中取数的。订单表中存储的是它们各自的主键需要配置Join把它们的信息拿到订单BC中。,SNTO Order,CX_ORDER,ACCNT_ID,PRI_LST_ID,Account,Account Id,Price List Id,Price List,S_ORG_EXT,ROW_ID,NAME,S_PRI_LST,NAME,ROW_ID,Join1,Join2,11,Join配置-新建Join,查询SNTO Order BC。在子类型Join中新建记录,输入以下属性:Table: S_ORG_EXTAlias: Order AccountOuter Join Fla
6、g: Y 外连接,确保连接失败时,记录仍然显示。,12,Join配置-定义Join Specification,在Join下的Join Specification新建记录,输入以下信息:NAME:随意,可以与Destination Column或Source Column同名Source Field: Account IdDestination Column: ROW_ID,13,Join配置-使用Join,在BC下新建Field: AccountJoin属性为:Order AccountColumn属性为:NAME,14,Join配置-练习,按照文档实现客户的Join实现价格表、主要联系人的
7、Join,15,动态Picklist配置-创建Picklist,新建Picklist,输入以下信息:Name: SNTO Account PicklistBounded: YBusiness Component: AccountLong List: YSearch Specification: Account Status = 活动Sort Specification: NameVisibility Type: Sub-Organization(用户只能选到自己组织或者自己的子组织的客户),16,动态Picklist配置-使用Picklist,设置SNTO Order的Field:Accoun
8、t的Picklist属性为:SNTO Account Picklist在Pickmap里添加两个mapping:Field: Account Id Picklist Field: IdField:Account Picklist Field: Name,17,动态Picklist配置-配置Pick Applet,动态Picklist的数据通常都是结构化的数据,且数据量较大,需要通过Pick Applet的方式进行数据展示和筛选。运行新对象向导,选择Pick Applet,OK,18,动态Picklist配置-配置Pick Applet,动态Picklist的数据通常都是结构化的数据,且数据量较
9、大,需要通过Pick Applet的方式进行数据展示和筛选。运行新对象向导,选择Pick Applet,OK,19,动态Picklist配置-配置Pick Applet,填写Pick Applet的相应信息,20,动态Picklist配置-配置Pick Applet,使用Popup List作为模板,21,动态Picklist配置-配置Pick Applet,使用Popup List作为模板,22,动态Picklist配置-配置Pick Applet,选择Pick Applet显示的字段,23,动态Picklist配置-配置Pick Applet,建议保留默认的控件,24,动态Picklist
10、配置-配置Pick Applet,建议保留默认的控件,25,动态Picklist配置-完善Pick Applet,完善Pick Applet,26,动态Picklist配置-使用Join字段和Pick Applet,前面的两个操作我们建了一个客户的Join字段,和基于这个字段的Picklist和Pick Applet。把这个字段放到界面上。在SNTO Order List Applet上新建一个List Column,Name: Account, Field: Account,Pick Applet:SNTO Account Pick Applet; Display Name: 客户; Run
11、time:Y在SNTO Order Form Applet上新建一个同样属性的List Control 。把该List Column(Control)拖至界面。,27,动态Picklist配置-使用Join字段和Pick Applet,编译并测试,28,动态Picklist配置-练习,实现订单头的客户Picklist配置订单头的价目表Pick List配置订单行的产品Picklist,29,配置Drilldown-当前BO Drilldown,在上面的配置中,订单列表和订单行界面处于平级,不利于两个界面的关联。Siebel提供Drilldown机制,用户可以通过一个List Applet的字段
12、的超链接跳转至一个明细界面。在SNTO Order List Applet上的Drilldown Object子类型里新增记录,填写以下信息Name: To Order Item; Hyperlink Field: Order Number; View: SNTO Order Items View;Business Component:SNTO Order;Sequence:1,30,配置View的类型,为了实现通过订单号的超链接进入订单行的需求,需要更改View在Screen中的类型。添加一个Aggregate Cateogry,填写以下属性:Category Name:Order List
13、; Type: Aggregate Category; Sequence:1;Category Default View:SNTO Order List View;Viewbar Text: 订单列表;把SNTO Order List View的Parent Category更新为Order List把SNTO Order Screen下的SNTO Order Items View的类型改为Detail View,Parent Category更新为Order List。,31,Drilldown效果,编译以上调整,调试查看结果,32,配置Drilldown-跨BO Drilldown,在Dr
14、illdown Object里新增记录,填写以下信息:Name:To Account; Hyperlink Field: Account; View: Account Detail Contact View; Source Field: Account Id; Business Component: Account; Destinaction Field: Id; Sequence: 2以上信息的意义是:跳转至客户联系人信息View,并用当前订单记录的Account Id到View中的Account BC的Id字段进行查询。,33,配置Drilldown-查看效果,Account字段变成一个超
15、链接点击该超链接,自动跳转至客户联系人View,并定位微软有限公司客户。,34,配置MVG-概念介绍,MVG是一组关联了一条父记录的详细数据记录。譬如订单上的联系人,一个订单可以关联多个联系人,在Siebel中可以不配置一个订单联系人的Detail界面,直接使用一个MVG来展示和维护一张订单与多个联系人之间的关系。下图是标准的商机上的联系人MVG,包含姓氏和姓名两个MVF。默认显示MVG里的Primary记录(图1);点击 按钮可激活MVG Applet,显示所有与商机关联了的联系人记录(右边),左边是MVG Applet的Associate Applet,用于添加联系人或者删除联系人关联。,
16、35,多对对关系的Link,配置MVG之前,需要建立订单BC与联系人BC之间的Link关系。订单与联系人之间是M:M关系,因此需要使用中间表来实现两者之间的Link关系。,订单O,联系人A,联系人B,联系人C,联系人A,订单O,订单P,订单Q,S_ORD_CON,ORDER_ID,CONTACT_ID,SNTO Order,Contact,Id,Id,CX_ORDER,S_CONTACT,ROW_ID,ROW_ID,父表1,父表2,中间表,主键1,主键2,外键1,外键2,36,多对对关系的Link-创建中间表,运行新建表的向导输入表名称:CX_ORD_CON选择表的类型:intersectio
17、n table between two existing tables,37,多对对关系的Link-创建中间表,选择第一个父表和父表外键名称选择第二个父表和父表的外键名称,38,多对对关系的Link-创建中间表,完成创建并Apply,39,多对对关系的Link-创建Link,新建一个Link,填写以下信息:Parent Business Component: SNTO OrderChild Business Component: ContactInter Table: CX_ORD_CONInter Parent Column: ORDER_IDInter Child Column: CONT
18、ACT_IDCascade Delete: None (重要,避免删除订单时把关联订单的联系人也删除)Primary Id Field:Primary Contact Id (父BC中用于标识主要的字段),40,MVG配置-创建MVL,MVL是BC上的子类型,是在BC上关联MVG子BC的链接,BC上的每个MVG都对应一个的MVL。选择SNTO Order BC,在BC的Multi Value Link子类型里新建记录,填写以下信息:Name: ContactDestination Business Component: ContactDestination Link: SNTO Order/C
19、ontactPrimary ID Field: Primary Contact Id,41,MVG配置-创建MVF,有了MVL以后,就可以把子BC(Contact)上的字段拿到父BC上(SNTO Order)Mutivalue Link选择Contact,把Contact BC上的“Field First Name”拿过来作为SNTO Order的Field“Contact First Name”;Mutivalue Link选择Contact,把Contact BC上的“Field Last Name”拿过来作为SNTO Order的Field“Contact Last Name”;,42,
20、MVG配置-创建MVG Applet,MVG Applet用于展现和维护MVG里的数据。运行MVG Applet向导,43,MVG配置-创建MVG Applet,输入Applet的相关信息,如图,44,MVG配置-创建MVG Applet,输入Applet的相关信息,如图,45,MVG配置-创建MVG Applet,选择模板,在Edit List模式下使用Popup List Mvg模板,46,MVG配置-创建MVG Applet,选择MVG Applet需要显示的字段,47,MVG配置-创建MVG Applet,选择控件,48,MVG配置-创建MVG Applet,完成向导,49,MVG配置
21、-创建MVG Applet,完善Applet信息:添加List Column SSA Primary Field: Field:SSA Primary Field;Display Name:主要;HTML Type:CheckBox;Runtime:Y;调整页面布局。,50,MVG配置-创建Associate Applet,MVG Applet需要关联一个Associate Applet,来实现MVG记录的关联和删除。,Associate Applet,显示可关联的记录,MVG Applet,显示已关联的记录,添加关联和删除关联的操作区,51,MVG配置-创建Associate Applet,
22、复制创建的MVG Applet:SNTO Contact MVG Applet,选中SNTO Contact MVG Applet,右键,选择Copy Record复制出来的Applet命名为SNTO Contact Assoc Applet;修改Type属性为Association List修改Applet Web Template的Web Template为Popup List Assoc勾选No Delete, No Update,No Merge,No Update属性,52,MVG配置-设置MVG Applet的Associate Applet属性,创建好MVG Applet和Ass
23、ociate Applet后,在MVG Applet上关联Associate Applet查询SNTO Contact MVG Applet,设置Associate Applet属性为: SNTO Contact Assoc Applet,53,MVG配置-使用MVG,在SNTO Order List Applet上新建两个List Column: Name:Contact Last Name;Display Name:姓氏;MVG Applet:SNTO Contact MVG Applet;Runtime: YName:Contact First Name;Display Name:名字;
24、Runtime: Y把字段拖拽至列表;在SNTO Order Form Applet上同样建立两个Control,并拖至界面。,54,MVG配置-使用MVG,编译对象并调试,55,Calcluated Field配置,需求:计算订单行的单行总价 :总价 = 单价 * 数量实现:创建一个Field:Line Total Price,Calculated属性为Y,Calculated Value为:IIf(Unit Price is not null,Unit Price * Quantity,)解释:如果Unit Price不为空,则返回Unit Price * Quantity,否则返回,即返
25、回空。计算公式可通过Tools提供的公式编辑器进行构造。,56,Calcluated Field配置-测试,把LineTotal Price放到订单行Applet: SNTO Order Line Item List Applet编译并调试查看结果。,57,汇总型字段配置,还有另外一种Calculated Field的配置,实现的需求是把子记录的某些字段进行汇总。如在订单头上汇总订单行的数量和金额。实现方式是:借助MVG的配置,把行上需要汇总的字段做成头上的MVF,然后在头上创建Calculated字段,使用sum方法进行汇总。,58,汇总型字段配置,在BC SNTO Order上创建一个MV
26、L,Name:Order Item; Destination Business Component:SNTO Order Item; Destination Link:SNTO Order/SNTO Order Items;使用MVL Order Item创建两个MVF: Line Quantity 和 Line Total Price,59,汇总型字段配置,创建Calculated字段进行汇总Order Total Price: Sum(Line Total Price)Order Total Quantity: Sum(Line Quantity),60,汇总型字段配置-测试,把Order
27、 Total Price和Order Total Quantity 放到订单头界面编译并测试PS:汇总字段不建议放置在List Applet,会影响List Applet的数据载入速度。,61,配置行号递增,需求:订单行的行号字段向下递增加1.实现方式:通过Siebel提供的标准配置流程进行实现,62,配置行号递增,修改订单行BC SNTO Order Items的Class属性为CSSBCBase(原来为CSSBusComp)。如果是标准的BC,则不能修改该属性。在BC SNTO Order Items的Business Component User Prop子类型里添加记录:Name: S
28、equence Field; Value: Line Number.其中Line Number即为订单行BC上需要自动递增编号的Field名称。,63,配置行号递增,新建一个BC,命名方式为:xx.yy (Sequence),其中xx是指需要自动编号的BC的名称,即SNTO Order Item; yy为需要自动编号的Field的名称,即Line Number; 因此该BC命名为: SNTO Order Items.Line Number (Sequence)设置该BC的以下属性:Class: CSSSequence; Table: CX_ORDER_ITEMS(与需要编号的BC的Table属
29、性一致);Sort Specification: Sequence (DESCENDING)在该BC下新建两个Field,Order Id和Sequence。其中Order Id基于ORDER_ID列,Sequence基于LINE_NUMNER列。,64,配置行号递增,新建SNTO Order和SNTO Order Items.Line Number (Sequence)的Link,Source Field为Id,Destination Field为Order Id。把SNTO Order Items.Line Number (Sequence)加入到SNTO Order BO中,用上面创建的link关联。,65,配置行号递增-测试,编译并测试点击新建按钮,新的订单号行号自动被赋值为3,如下图。,66,谢谢,