分类:
2009-09-29 09:47:14
CRM是基于面向对象的编程思想的,因此其数据结构的设计上与R/3有着很大的差别。我这里将从CRM最基本的服务单对象的数据结构着手: 服务单对象的数据总的可以分为三类:
以上三类数据都通过GUID互相连接连接:
通过表:crmd_link连接组织结构数据
白色的为主要业务数据(强制);黄色的为业务过程;绿色的为可选的业务功能扩展;粉红色的为可选的SETS
从上面几张图中我们可以看到,CRM从技术角度可以分为四个层次,分别是:User Interface, Interaction Layer, Business Object Layer, Database Layer。 User Interface也就是GUI屏幕,用户在屏幕字段上可以输入和显示相关信息;Interaction Layer是处于User Interface和Business Logic Layer之间的一层,主要用来数据的传输和转换,屏幕流控制等;Business object Layer说白了就是ABAP写成类啊,方法,FUNCTION之类的,提供一些业务控制逻辑,权限控制,接口等等;Database Layer就是用来与数据库发生交互的。这四层之间的数据流关系可以见上面的图示。
讲了那么多理论,我们再来点实际的东西:在CRM中怎么找表? 举个例子,我要查询有关business partner的相关数据表: 第一步:用SE16打开表 CRMC_OBJECTS,找到一个描述(DESCRIPTION)为合作伙伴集的条目,可以看到这个条目对应的NAME字段为PARTNER; 第二步:用SE37打开 CRM_OBJECT_NAMES_DETERMINE,在IV_OBJECT_NAME中输入PARTNER,运行一下你就得到所有跟PARTNER相关的表、结构和程序。 这是比较简单使用的办法,他能应付一些简单的需求,以后我还会提到其他一些找表的方法,例如程序调试,SQL跟踪等。
document/transaction data。其他的一些前/后缀表示所表示的意思可以见下图:
CRM中每个FUNCTION也都有一定的命名规则,例如CRM_ORDER_READ_OW,其中OW表示object work area。其他后缀如下图: 下图给出CRM销售有关的数据对象,注意每种对象的命名规则: 在调试源程序的时候,我们就会发现里面变量的命名也是有一定规则的,即: 了解以上这些信息后,有助于我们调式源程序。 |