Data Modeling for Integrating SAP with other Applications Problem United Airline needs to integrate its ERP system (that handles scheduling, booking) with Orbitz, which provides Web-based airline reservation service. Based on sales forecasts, UA blocks certain number of seats/flights for Orbitz each day. At midnight each day, Orbitz sends transactions of the day to UA’s ERP system (SAP R/3). What type of data integration is this? School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Tasks 1. Model the data in UA’s SAP system 2. Model the booking data in Orbitz. 3. Construct the mapping from the Orbitz ERD to UA’s ERD. 4. Choose a message-oriented middleware (MOM) for transmitting “midnight updates”. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Learning Objectives Be able to use SAP development tools for (task 1) Displaying tables and their relationship Constructing ERD Preview: MOM (task 4) will be covered next week School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] SAP Data Modeler A development tool from the ABAP/4 Based on the SAP SERM method (Structured Entity Relationship Model) Basic objects are entity types and the relationships Modeling involves use of a graphical editor (not available for browser client) School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Data Modeler Elements An entity (table record) is a physical or abstract object. Each entity type (table or View) describes a set of entities with attribute. An attribute (field) consists of a name and a definition of the possible values for the attribute (for example, the attribute color with the values white, black, yellow, and so on). One or more attributes are labeled as key attributes. The values of the key attributes uniquely identify an entity within its entity type. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Relationships Relationships between two tables: the source table and the target table. Unlike ERD, the relationship itself can not be a table. Hence, no many-to-many relationship. The relationship is oriented: from the source table to the target table. The cardinality (n : m) describes the possible values for the left and right sides of the cardinality as follows: n n m m m m = = = = = = 1 C 1 C N CN exactly one Zero or one exactly one Zero or one Many Zero, one, or many School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] UA’s Data Model (Simplified) The mode describes how passengers can reserve seats or space Reservations are made either through a sales office of the airline, or through a travel agency. The data model contains the entity sets: aircraft, airline connection and flight booking. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Display the data model as a Graphic Not available for web browser client Navigation through the diagram Edit on the graphics: such as adding a new node School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Assigned Tables in the ABAP Dictionary T000: Client table SCURX: Currencies (key: currency key) SBUSPART: Business partner (key: client, partner number) STRAVELAG: Travel agencies (key: client, travel agency number) SCUSTOM: Customers (key: client, customer number) SCARR: Carriers (key: client, carrier ID) SCOUNTER: Sales counters (key: client, carrier ID, sales counter number) SPFLI: Flight schedule (key: client, carrier ID, connection number) SFLIGHT: Flights (key: client, carrier ID, connection number, date of flight) SBOOK: Flight bookings (key: client, carrier ID, connection number, date of flight, booking number, customer number) School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Relationships between the Tables Table SBUSPART contains all the business partners of a carrier, which is identified by a number in this table. The data of the contact person for the business partner is also stored. A business partner can be a travel agency or a customer (e.g. company that frequently books flights directly with the carrier). The data for travel agencies are stored in table STRAVELAG. The data for customers are in table SCUSTOM. There is an entry with the same key in either table STRAVELAG or table SCUSTOM for each entry in table SBUSPART. Table SCARR contains the IDs and names of the carriers. Each carrier has a number of connections. These flight connections are stored in table SPFLI. Table SFLIGHT contains the concrete flight data for each connection. Bookings can be made for each flight in table SFLIGHT. The bookings made for each flight are entered in table SBOOK. The customer number or agency number for which the booking was made is stored in table. The carriers have sales counters in the airports. These sales counters are entered in table SCOUNTER. If the customer books his flight directly at a counter, the counter number is also entered in the booking data in table SBOOK School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Foreign Keys A foreign key of table T1 is a primary key of another table (e.g. T2). Table T1 is called the foreign key table (dependent table) and table T2 the check table (referenced table). One field of the foreign key table therefore corresponds to each key field of the check table. This field is called the foreign key field. Check Field and Value Check School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Foreign Keys - Example Table SBOOK in the flight model contains the customer’s flight bookings for a carrier. If the booking was made at a counter, its number is stored together with the booking in field COUNTER in table SBOOK. You must make sure that only correct counter numbers can be entered. All the counters are entered in table SCOUNTER. The necessary value check can be defined by creating a foreign key for check field COUNTNUM. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] SAP Lab Login to SAP Follow instructions in the following slides School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Procedure for Displaying the Flight Model Tools->ABAP Workbench-> Development->Data Modeler.(TC:SD11) Enter BC_TRAVEL in field Modeling object and choose Data Model. Data Model (lower level) To display, double click the field Entity Types: to display definition, double click the field School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Choosing Tables to View In the entity display screen, click the button “Dictionary” Then you can see the table name, then click Table/view You can display table relations by click incoming relation button. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Display Relation Incoming relation means: This entity type as target Source entity and Cardinality You can also display out-going relations viewed as source entity Click here to switch the reviews School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Table Structure View To display a table A table definition in the ABAP Dictionary contains the following components: Table fields define the field names and data types of the fields contained in the table Foreign keys define the relationships between the table and other tables. Click here to display table content School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Table Data Browser Continued from the slide “Table Structure view” or TC:SE16 Then table name “SBOOK” Then click the execute button “Breen Check with small Clock” Navigation buttons allow you to select columns, sort data, etc. Select a data entry (row) then click detail button. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Homework 4 Assignment (15 HW points) Due: Nov 5th Task: Create ERD (not SAP SERM) for SAP Customer delivery model (Data modeler name: SDSLS30303) Include all tables and key fields Include two non-key fields of your choice (the most important two from your viewpoint) Read the next page before you start Tips: Display data model-> find out relations between entity type-> look at table structures (fields, keys, foreign keys)->(Optional but helpful, display table content) ->Then create the diagrams. School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu] Tips for HW4 How to Display Tables from a View Very often SAP use views instead of tables for data model (A view is derived from one or more tables, but not stored physically) You need tables to find out key fields (for you homework) Three ways to display table Double click the table name when displaying the entity type, or If you are displaying view, first click tab table/join condition second double click the table name If you know the table name, just use TC:SE11 School of Information Science and Technology Prof. John Yen [mailto:jyen@ist.psu.edu]