Presentation is loading. Please wait.

Presentation is loading. Please wait.

SAP - CRM. SAP - CRM CRM One Order Model CRM One Order concept. layers of one order framework Function modules in the one order framework Table Relationship.

Similar presentations

Presentation on theme: "SAP - CRM. SAP - CRM CRM One Order Model CRM One Order concept. layers of one order framework Function modules in the one order framework Table Relationship."— Presentation transcript:



3 CRM One Order Model

4 CRM One Order concept. layers of one order framework Function modules in the one order framework Table Relationship CRMV_EVENTS

5 CRM One Order concept Examples of one order document in SAP CRM: Activities Task Sales Order Service Order Service Request Contracts Lead Opportunity…

6 CRM One Order concept This means same BDoc (BUS_TRANS_MSG) , FM and Module pool programming would be used for all the transaction data. They would be handled as if they are same transaction. Hence the name One Order which is basically framework to handle these related transaction data.

7 CRM One Order concept

8 Business Transaction All the Business transactions (Tcode : CRMD_ORDER) can have a number of objects as shown in the previous slide. The different object like Texts, Status, Actions, Shipping, Billing are a few generic objects, they can be assigned to the Business Transactions as and when needed. The Objects are assigned to business transactions as and when required.

9 Advantage s of One Order Model
Reusable objects Simple and consistent flow logic for all objects and all levels Avoid big program and module pools Handling of error message

10 Data Model in CRM System

11 One Order Layer Model A four layer model is used as basic for programming in the CRM system. This model takes a strict differentiation between the user interface, interaction, and application logic and database access. Every layer is separate and contains data in a local memory. Access to the individual layer is carried out via the interfaces, but can only occur between the next direct layers or in the same layer. READ SAVE

12 One Order Layer Model User Interface: User Interface is responsible for the displaying of the fields on the GUI. Interaction Layer: The interaction layer controls the business transaction process. It uses the user entries ( field changes, function keys...), the methods called up from the object (FCODE control), the object which should be displayed and processes, or the elements in the relevant user interface are activated (screen or fields controls). Object Layer: The object layer contains the complete application logic for editing an object for Ex. Changing order header Adding items Determining price Reading customizing data Determining default values Ect. Database Layer: The database layer is the interface to the database. All database operations for one object are carried out at this level (read, delete and change). The last original copy of the document before the changes were saved is kept in the local memory of the database layer.

13 Data Posting

14 Data Posting

15 Function Modules Function modules and reports are named as
<Component>_<Object>_<Method>_<Layer> Example : CRM_ORDERADM_H_READ_OB For layers the abbreviations used are as below:


17 CRM_ORDER_READ CRM_ORDER_READ is a function module which can be used to get the details of any business transaction based on the Header GUID, Item GUID or both. Always pass the IT_REQUESTED_OBJECTS structure to this function module to fetch the required details only. This function module can not be executed directly instead SAP has provided a report CRM_ORDER_READ for the same for testing purpose. We can pass Business Transaction Number (Object ID), Header GUID or Item GUID to this report to get the required details.

18 Some Exporting parameters of the CRM_ORDER_READ
Return Structure Name Details Fetched ET_ORDERADM_H Header Details of a Business Transaction such as OBJECT_ID, PROCESS_TYPE etc. ET_ORDERADM_I Item Details of a Business Transaction such as PRODUCT, PRODUCT_KIND, HEADER etc. ET_ACTIVITY_H Header Details of an activity such as PRIORITY, OBJECTIVE, Address Details etc. ET_ACTIVITY_I Item Details of an activity. ET_CUSTOMER_H Additional details at Header level ET_CUSTOMER_I Additional details at Item level ET_APPOINTMENT All the dates at Header and Item level ET_PARTNER Partner Details at Header and Item level ET_STATUS Status of Business Transaction at Header and Item level ET_BILLING Billing related details for a Business Transaction both at Header and Item (This structure was enhanced in a leading ISU SAP-CRM implementation to include BUAG_ID(Business Agreement) field in a Service Contract ET_ORDPRP_OBJL_I_D Object List details such as PRODUCT ET_DOC_FLOW Ref. Details of the previous Business Transaction

19 Call Stack of CRM_ORDER_READ FM
The Function module CRM_ORDER_READ is called to retrieve all relevant data for the one order objects. This FM Read in turn calls CRM_ORDER_READ_OW (for retrieving data from work area). If no data is available in the Work area then the this function module calls CRM_ORDERADM_H_READ_OB to fetch header data from the buffer. If no data is available in the buffer then this function module in turn calls CRM_ORDERADM_H_DB (to read the header data from the database). In a similar manner the item data retrieval FM are called to fetch the item data.


The FM CRM_ORDER_MAINTAIN updates the one order documents after user interaction or for system defaulting. For each of the objects like status, pricing, shipping this FM is called to maintain the data. This Function module in turns calls : CRM_ORDER_MAINTAIN_MULTI_OW which is used to m1aintain the Object work area at a time for different One order documents. This in turn calls CRM_ORDER_MAINTAIN_SINGLE_OW for each document. The CRM_ORDER_MAINTAIN_SINGLE_OW calls the header and Item which contain maintain functions and for each object (status, pricing ..etc) as CRM_<OBJECT>_MAINTAIN_OW.

22 Call Stack of CRM_ORDER_SAVE FM
This function module Persists the document and changes in the database. The latest call in order to prepare the document data for saving (checks, manipulation) should be done in the Badi ORDER_SAVE using the *OB* function modules in order to modify specific segments.

23 Call Stack of CRm_Order_Save FM
They are finally called in Update mode to actually commit the data to the database. CRM_ORDERADM_H_UPDATE_DU CRM_ORDERADM_I_UPDATE_DU

24 Data Creation Function Module’s Name Description GUID_CREATE
Create GUID for a Business Transaction BAPI_BUSPROCESSND_CREATEMULTI Bapi to create Service Contracts programmatically. Pass the inputfields to be created in the contract. Note: BAPI_BUSPROCESSND_SAVE must be called after this function call to save the Service Contract. BAPI_BUSPROCESSND_SAVE Bapi to save the Service Contracts. BAPI_ECRMISUTO_INIT Initialize the creation of Ibase in CRM BAPI_ECRMISUTO_CREATEMULTIPLE Create the Installed Base and its components. Note: Always call the function module ‘BAPI_TRANSACTION_COMMIT’ after call to any Bapi CRM_IBASE_INITIALIZE Initialize the changes to be done in Ibase in CRM CRM_IBASE_SAVE Call this FM to save the changes in the Ibase BAPI_BUPA_FRG0130_CREATE Bapi to create Business Agreement for a customer BAPI_BUPA_ADDRESS_ADD Add invoice address for business partner. Pass the address type as 'rechnung' to add invoice address BAPI_BUPA_BANKDETAIL_ADD Add bank details for the business partner BAPI_BUPA_CREATE_FROM_DATA BAPI for business partner creation as Organization, Person or Group in general role. Same BAPI can be used to create Contact Person for the Business Partner BAPI_BUPR_RELATIONSHIP_CREATE Function module to establish the Business Partner and Contact Person Relationship. Pass the Relationship Category as ‘BUR001’ BAPI_BUPA_ROLE_ADD Add Role to Business Partner for e.g. Sold to Party ‘CRM001’, Contact Person ‘BUP001’ BAPI_BUPA_TAX_ADD BAPI Add Tax Number for the existing Business Partner BAPI_BUPA_FRG0040_CREATE Create Classification Data for a Business Partner Create Business Agreement BAPI to create Contract. Populate the Header and Line Item Details before calling the BAPI

25 Function Module’s Data Retrieval Name Description
BAPI_BUPA_ADDRESSES_GET Determine All Addresses BAPI_BUPA_ADDRESS_GETDETAIL Read Address BAPI_BUPA_ADDRESS_GET_NUMBERS Read Address Numbers BAPI_BUPA_BANKDETAILS_GET Determine All Bank Details BAPI_BUPA_BANKDETAIL_GETDETAIL Read Bank Details BAPI_BUPA_BANKDETAIL_NUMBERS Read Bank Details Numbers BAPI_BUPA_CENTRAL_GETDETAIL Read Central Data BAPI_BUPA_EXISTENCE_CHECK Check Existence of Business Partner BAPI_BUPA_GET_NUMBERS Read Business Partner Numbers BAPI_BUPA_RELATIONSHIPS_GET Determine All BP Relationships BAPI_BUPA_ROLES_GET Determine All Roles BAPI_BUPA_ROLE_EXISTENCE_CHECK Check Existence of Role BAPI_BUPA_SEARCH Search Business Partner for Telephone, , Address BAPI_BUPA_STATUS_GETDETAIL Business Partner: Read Status BAPI_BUPR_ACTIVITYP_EXISTCHECK Check Existence of Contact Partner Relationship BAPI_BUPR_CONTP_ADDRESSES_GET Read Contact Person Relationship Addresses BAPI_BUPR_CONTP_ADDR_GETDETAIL BAPI_BUPR_CONTP_GETDETAIL Read Contact Person Relationship BAPI_BUPR_EMPLO_ADDRESSES_GET BAPI_BUPR_EMPLO_ADDR_GETDETAIL Read Employee Relationship Address BAPI_BUPR_EMPLO_GETDETAIL Read Employee Relationship BAPI_BUPR_RELATIONSHIP_GET Read General Relationship BAPI_BUPR_RELSHIP_CHECKEXIST Check Existence of General Relationship BAPI_BUPR_RELSHIP_GET_DETAIL BAPI_BUPR_RESP_EMPLO_CHEKEXIST Read Relationship of Employee Responsible BUPA_PARTNER_CONTACT_SEARCH Searches business partners for telephone, , address ECRM_ISU_COMP_BY_ADDRESS Check for Existence of Ibase CRM_ORDER_GET_HEADER_GUID Get Header GUID for Item GUID pass ref_kind as b CRM_ORDERADM_H_READ_OW Read the Header Details for a Business Transaction. Pass the Header guid. CRM_ORDERADM_I_READ_OW Read the Line Item Details for a line item. Pass the line item guid. CRM_ORDER_READ Get all the Service Contract details. Note: Pass the requested objects to fetch only the required details. This can also be used to get the details of activities/leads/opportunities etc. CRM_ORDER_GETSTATUS Get status of the Service Contract

26 Data Maintenance Function Module’s Name Description
BAPI_BUSPROCESSND_CHANGEMULTI Bapi to change Service Contracts programmatically. Pass the inputfields to be modified. Note: CRM_ORDER_SAVE function module must be called to save the changed contract explicitly after call to this function module. CRM_ORDER_SAVE Save the changes made to the Service Contract. Just pass the Header_GUID of the service contract. CRM_APPT_MAINTAIN_SINGLE_OW Maintain the Dates for a Service Contract (Start Date, End date, Date of Sale, Planned Contract Start Date etc). Don’t forget to pass the input_fields to be maintained. CRM_STATUS_MAINTAIN_OW Maintain the user status of Service Contracts. Don’t forget to pass the input_fields to be maintained. CRM_IBASE_COMP_CHANGE Change the Installed Base components Note: Always call the FM ‘CRM_IBASE_SAVE’ to save the changes done to Ibase BAPI_BUPA_BANKDETAIL_CHANGE Change Bank Details BAPI_BUPA_BANKDETAIL_REMOVE Delete Bank Details BAPI_BUPA_CENTRAL_CHANGE Change Central Data BAPI_BUPA_ADDRESS_CHANGE Change Address BAPI_BUPA_ADDRESS_REMOVE Delete Address BAPI_BUPA_CENTRAL_SAVEREPLICA ALE Replicating Central Data BAPI_BUPA_STATUS_REMOVE Business Partner: Delete Status BAPI_BUPR_ACTIVITYP_CHANGE Change Contact Partner Relationship BAPI_BUPR_ACTIVITYP_DELETE Delete Contact Partner Relationship BAPI_BUPR_CONTP_ADDR_CHANGE Change Contact Person Relationship Address BAPI_BUPR_CONTP_ADDR_REMOVE Delete Contact Person Relationship Address BAPI_BUPR_CONTP_CHANGE BAPI_BUPR_CONTP_DELETE Delete Contact Person Relationship BAPI_BUPR_EMPLO_ADDR_CHANGE Change Employee Relationship Address BAPI_BUPR_EMPLO_ADDR_REMOVE Delete Employee Relationship Address BAPI_BUPR_EMPLO_DELETE Delete Employee Relationship BAPI_BUPR_RELATIONSHIP_CHANGE Change General Relationship BAPI_BUPR_RELATIONSHIP_DELETE Delete Relationships BAPI_BUPR_RELATIONSHIP_REMOVE Delete General Relationship BAPI_BUPR_RESP_EMPLO_DELETE Delete Relationship of Employee Responsible

27 Business Transaction Category
Categorization of CRM Business Transaction based on Subobject Category We have used Subobjects to categorize the Business Transactions in CRM for a leading ISU-SAP CRM implementation.  Business Transaction Name Business Transaction Name SUBOBJECT CATEGORY Activity BUS Service Contract BUS Lead BUS BUS Task BUS Utility contract item BUS

28 Business Tranasaction Program Names
Description CRM_ORDER_READ CRM_BUPA* Business partner related programs CRM_ ACTIVITIES* CRM_ACTIVITY* Activity related programs CRM_ARC* Archiving related programs CRM_BILLING* Billing related programs CRM_ORDER* CRM document related programs CRM_LEASING* CRM*LEASING* Leasing related programs Note: For Example if you want to retrieve all the activities in CRM, pass the OBJECT_TYPE as ‘BUS ‘ in CRMD_ORDER_INDEX table. 2. The Subobject Category can be customized for a business transaction from the transaction SPRO.

29 CRM Table Relationship

30 CRM Table Relationship
Linking Business Partner Tables logically  BUT000 - contains the key as Business Partner Number – thus other details of business partner such as Category, Type, Name, Language, Country, Contact Person etc can be obtained from it by using the corresponding BP Number. BUT0BK- Using the BP Number and Bank Detail ID, details such as Bank Account Number, Account Holder’s Name, and Name of Bank Account etc can be obtained. BUT020 – ADRC – ADR2 – ADR6 is the link of tables used to get the Address Details of the BP corresponding to Business Partner Number (obtained from BUT000) and the address number from BUT020 table. Roles of Business Partner can be obtained from the table BUT100. Contact Person and related details for a BP number (BUT000) can be obtained using the table BUT051. Business Partner’s Roles and Relationship Details for BP number (BUT000) can be obtained from BUT050.

31 CRM Table Relationship
Linking Service Contract Tables Logically CRMD_ORDER_INDEX: Contains GUID’s of all the transactions in CRM. Also provides a link to connect Business Partner with the CRM Transaction. CRMD_CUSTOMER_H: Contains Additional Contract Details (enhanced fields), linked to Header GUID. CRMD_CUSTOMER_I: Contains Additional Site Details (enhanced fields), links Header and Item GUID’s for all the transactions. CRMD_ORDERADM_H: Contains Header Details. GUID field can be used to link with CRMD_ORDER_INDEX. CRMD_ORDERADM_I: Contains Item Details. HEADER field can be used to link with CRMD_ORDERADM_H (header guid).

32 CRM Table Belonging to One Order Model Objects

33 CRM Table Belonging to One Order Model Objects

34 CRM Table Belonging to One Order Model Objects

35 CRM Table Belonging to One Order Model Objects

36 CRM Table Belonging to One Order Model Objects

37 CRM Table Belonging to One Order Model Objects

38 CRM Table Belonging to One Order Model Objects

39 CRM Table Belonging to One Order Model Objects

40 Master Data Table Table Name Description Business Partner BUT000
BP: General data Contains Business Partner Number, Partner Category, Partner Type, First Name, Last Name etc. BUT020 BP: Addresses BUT050 BP relationships/role definitions: General data Contains Relationship, Partner Number (PARTNER1), Relationship Category BUT051 BP Relationship: Contact Person Relationship Similar to BUT050 , additionally contains Contact Person’s Address data BUT0BK Business Partner: Bank Data & Details BP Number, Bank Key, Bank Country Key, Bank Account Number BNKA Bank Master Data BUT100 BP: Roles ADR2 Telephone Numbers (Business Address Services) ADR6 SMTP Numbers (Business Address Services) Contains – Id of the BP. ADRC Addresses (Business Address Services) BP’s , Country, Post Code, District, Street, Title No Etc TSAD3T Table containing the Title text against a Title No. Note: Pass the langu key with the language in which you want the text.

41 Master Data Table COMM_PRODUCT Master Table for Product CRMM_BUAG
Master table for Business Agreement CRMM_BUAG_H Header Data for Business Agreement such as Tax Category, Tax Characteristic, Form key, Business Agreement Class. Data in this table correspond to ISU Contract account table FKKVKP. CRMM_BABR_H Rule data for business agreements – data in this table correspond to ISU Contract account table FKKVK Business Transaction(Service Contracts in Particular) CNCCRMPRCUSZZBUR Condition Records for Service Contracts. We get Basic Unit Rate, Standing Charge Rate etc. (This is a Z table used in a leading ISU SAP-CRM implementation. You can give the table SAP0090 – this is a standard table. – in general all condition tables have the naming convention CNCC*) CRMD_ORDERADM_H Contains the Header Information for a Business Transaction. Note: It doesn’t store the Business Partner responsible for the transaction. To get the Partner No, link it with CRM_ORDER_INDEX. This table can be used for search based on the Object Id(Business Transaction No). CRMD_CUSTOMER_H Additional Site Details at the Header Level of a Business Transaction CRMC_PROC_TYPE Master table Business Transaction Type CRMC_PARTNER_FCT Definition of Partner Functions SCPRIOT Priorities for Activities with priority text. Pass the langu key with the language in which you want the text. CRMC_PROC_TYPE_T Text for a transaction type CRMC_ACT_OBJ_T Objective Number and Text for Activities TJ30T All the status code and text CRMC_PR_ASSIGN Transaction Type and its Transaction Type Object. IBIB Installed Base/I base IBIN Installed Base Components

42 Transaction Data Table
Table Name Description CRMD_LINK Transaction GUID set for all the Business Transactions CRMD_ORDER_INDEX Contains Header as well as Item details for a Business Transaction. Note: It doesn’t store the Business Transaction No (Object ID). To get the Business Transaction No link the table with CRMD_ORDERADM_H 2. This table can be used for search based on the Partner No CRMD_ORDERADM_I Stores the Item information for a Business Transaction. The scenarios where we have a Contract Header and within contract we have Line Items for the contract, this table can be useful. E.g. Service Contracts CRMD_CUSTOMER_I Additional Site Details at the Item Level of a Service Contract SCAPPTSEG Table for individual Appointment Types for a transaction. CRM_JEST Individual Object Status for any business transaction. CRM_JCDS Current Status for a business transaction along with set date, set time and status code.

43 Badi’s in SAP CRM One Order Model
Badi's Name Description CRM_ORDER_FIELDCHECK Field check during transactional processing CRM_ORDERADM_H_BADI Update of the table CRM_ORDERADM_H CRM_ORDER_STATUS Manipulating the status of the transaction CRM_APPOINTMENT_BADI CRM_SERVICE_OS_BADI CRM_ORGMAN_BADI Manipulating the automatic organization determination CRM_PARTNER_BADI COM_PARTNER_DETERM Manipulating the automatic parterner determination CRM_ORDER CRM_CUSTOMER_H_BADI ORDER_SAVE Check and manipulate data before the doc is saved CRM_DATAEXCHG_BADI Controls the data while the data exchange with R/3 CRM_EEW_CUSTOMER_H Manipulating EEWB fields EXEC_METHODCALL_PPF Action Badi CRM_COPY_BADI Copy controls for one order documents CRM_ORDER_INDEX_BADI Update of the table CRM_ORDER_INDEX



Download ppt "SAP - CRM. SAP - CRM CRM One Order Model CRM One Order concept. layers of one order framework Function modules in the one order framework Table Relationship."

Similar presentations

Ads by Google