1、本文目的
SAP ABAP 系统都会自带 Flight 航班系统数据模型,其大量应用于 SAP ABAP 帮助文档、系统 Demo 程序。对于开发者,也可以基于该模型数据,进行 ABAP 程序的练习与测试。因此理解该数据模型对于学习 SAP 开发就非常有必要。
2、数据模型
SAP Flight 模型是一个简易的航空公司订票系统模型,描述了乘客进行航班预定的过程。航空公司基于航线,安排航班计划。乘客通过航空公司的销售柜台或者旅行社进行航班预定。
该模型包含了多个数据库表并通过外键进行关联。
模型主要数据库表如下:
T000:客户端表。
SCURX:币别表,本数据模型中引用的币别基础数据,包括金额小数位数。
SBUSPART:航空公司业务伙伴表,可以是乘客或者旅行社,表中的每一条记录都会有对应的一条记录在表STRAVELAG或者表SCUSTOM中。
STRAVELAG:旅行社表,记录旅行社相关信息。
SCUSTOM:乘客表,记录乘客相关信息。
SCARR:航空公司表,包含航空公司的ID和名字。
SCOUNTER:销售柜台表,航空公司在机场设置的销售柜台。
SPFLI:航线表,每家航空公司有多条航线。
SFLIGHT:航班表,基于航线安排的实际飞行航班数据。
SBOOK:航班预定表,记录每个航班的预定数据,包括乘客号码或者旅行社号码,如果乘客在销售柜台直接预订航班,销售柜台号也会存储到表SBOOK中。
3、查看模型数据
SE11,查看 SCARR 表数据
4、生成演示数据
如果SE11没有查询到数据,可以通过SAP系统程序,生成演示数据。
具体方法如下:
回到SE11查看表定义界面,点击“显示对象清单”
展开:SAPBC_DATAMODEL→Embedded Packages→SAPBC_DATAMODEL_SERVICE→程序,
双击:SAPBC_DATA_GENERATOR,执行
执行结束之后,即可生成演示数据。
备注: 以上查找程序方式仅适用于 SAP ECC 系统,SAP S4 系统,请直接在 SE38 中,运行 SAPBC_DATA_GENERATOR 程序。
5、模型应用
(1)基于该模型数据开发的 SAP ALV DEMO。
(2)基于该模型数据的教程《SAP HANA SQL 基础教程》。
请关注本人博客,会陆续发布基于该模型数据的相关开发教程。
6、附:数据表创建语句
以下脚本为HANA导出,如果要导入其他关系型数据库,可能需要做少量适配调整。
CREATE COLUMN TABLE NEWUSER."T000"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"MTEXT" NVARCHAR(25) DEFAULT '' NOT NULL ,
"ORT01" NVARCHAR(25) DEFAULT '' NOT NULL ,
CONSTRAINT "T000~0" PRIMARY KEY ("MANDT")
) ;
CREATE COLUMN TABLE NEWUSER."SCURX"
(
"CURRKEY" NVARCHAR(5) DEFAULT '' NOT NULL ,
"CURRDEC" SMALLINT CS_INT DEFAULT 0 NOT NULL ,
CONSTRAINT "SCURX~0" PRIMARY KEY ("CURRKEY")
) ;
CREATE COLUMN TABLE NEWUSER."SBUSPART"
(
"MANDANT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"BUSPARTNUM" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"CONTACT" NVARCHAR(25) DEFAULT '' NOT NULL ,
"CONTPHONO" NVARCHAR(30) DEFAULT '' NOT NULL ,
"BUSPATYP" NVARCHAR(2) DEFAULT '' NOT NULL ,
CONSTRAINT "SBUSPART~0" PRIMARY KEY ("MANDANT", "BUSPARTNUM")
);
CREATE COLUMN TABLE NEWUSER."STRAVELAG"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"AGENCYNUM" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"NAME" NVARCHAR(25) DEFAULT '' NOT NULL ,
"STREET" NVARCHAR(30) DEFAULT '' NOT NULL ,
"POSTBOX" NVARCHAR(10) DEFAULT '' NOT NULL ,
"POSTCODE" NVARCHAR(10) DEFAULT '' NOT NULL ,
"CITY" NVARCHAR(25) DEFAULT '' NOT NULL ,
"COUNTRY" NVARCHAR(3) DEFAULT '' NOT NULL ,
"REGION" NVARCHAR(3) DEFAULT '' NOT NULL ,
"TELEPHONE" NVARCHAR(30) DEFAULT '' NOT NULL ,
"URL" NVARCHAR(255) DEFAULT '' NOT NULL ,
"LANGU" NVARCHAR(1) DEFAULT '' NOT NULL ,
"CURRENCY" NVARCHAR(5) DEFAULT '' NOT NULL ,
CONSTRAINT "STRAVELAG~0" PRIMARY KEY ("MANDT", "AGENCYNUM")
);
CREATE COLUMN TABLE NEWUSER."SCUSTOM"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"ID" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"NAME" NVARCHAR(25) DEFAULT '' NOT NULL ,
"FORM" NVARCHAR(15) DEFAULT '' NOT NULL ,
"STREET" NVARCHAR(30) DEFAULT '' NOT NULL ,
"POSTBOX" NVARCHAR(10) DEFAULT '' NOT NULL ,
"POSTCODE" NVARCHAR(10) DEFAULT '' NOT NULL ,
"CITY" NVARCHAR(25) DEFAULT '' NOT NULL ,
"COUNTRY" NVARCHAR(3) DEFAULT '' NOT NULL ,
"REGION" NVARCHAR(3) DEFAULT '' NOT NULL ,
"TELEPHONE" NVARCHAR(30) DEFAULT '' NOT NULL ,
"CUSTTYPE" NVARCHAR(1) DEFAULT '' NOT NULL ,
"DISCOUNT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"LANGU" NVARCHAR(1) DEFAULT '' NOT NULL ,
"EMAIL" NVARCHAR(40) DEFAULT '' NOT NULL ,
"WEBUSER" NVARCHAR(25) DEFAULT '' NOT NULL ,
CONSTRAINT "SCUSTOM~0" PRIMARY KEY ("MANDT", "ID")
);
CREATE COLUMN TABLE NEWUSER."SCARR"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"CARRID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CARRNAME" NVARCHAR(20) DEFAULT '' NOT NULL ,
"CURRCODE" NVARCHAR(5) DEFAULT '' NOT NULL ,
"URL" NVARCHAR(255) DEFAULT '' NOT NULL ,
CONSTRAINT "SCARR~0" PRIMARY KEY ("MANDT", "CARRID")
);
CREATE COLUMN TABLE NEWUSER."SCOUNTER"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"CARRID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"COUNTNUM" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"AIRPORT" NVARCHAR(3) DEFAULT '' NOT NULL ,
CONSTRAINT "SCOUNTER~0" PRIMARY KEY ("MANDT", "CARRID", "COUNTNUM")
);
CREATE COLUMN TABLE NEWUSER."SPFLI"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"CARRID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CONNID" NVARCHAR(4) DEFAULT '0000' NOT NULL ,
"COUNTRYFR" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CITYFROM" NVARCHAR(20) DEFAULT '' NOT NULL ,
"AIRPFROM" NVARCHAR(3) DEFAULT '' NOT NULL ,
"COUNTRYTO" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CITYTO" NVARCHAR(20) DEFAULT '' NOT NULL ,
"AIRPTO" NVARCHAR(3) DEFAULT '' NOT NULL ,
"FLTIME" INTEGER CS_INT DEFAULT 0 NOT NULL ,
"DEPTIME" NVARCHAR(6) DEFAULT '000000' NOT NULL ,
"ARRTIME" NVARCHAR(6) DEFAULT '000000' NOT NULL ,
"DISTANCE" DECIMAL(9,4) CS_FIXED DEFAULT 0 NOT NULL ,
"DISTID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"FLTYPE" NVARCHAR(1) DEFAULT '' NOT NULL ,
"PERIOD" SMALLINT CS_INT DEFAULT 0 NOT NULL ,
CONSTRAINT "SPFLI~0" PRIMARY KEY ("MANDT", "CARRID", "CONNID")
);
CREATE FULLTEXT INDEX "SPFLI~FT1" ON NEWUSER."SPFLI" ("CITYFROM") ASYNC PHRASE INDEX RATIO 0.200000 FUZZY SEARCH INDEX OFF SEARCH ONLY OFF FAST PREPROCESS ON TEXT MINING OFF TEXT ANALYSIS OFF TOKEN SEPARATORS '\;,.:-_()[]<>!?*@+{}="&)/' COMPRESSION LEVEL 0;
CREATE FULLTEXT INDEX "SPFLI~FT2" ON NEWUSER."SPFLI" ("CITYTO") ASYNC PHRASE INDEX RATIO 0.200000 FUZZY SEARCH INDEX OFF SEARCH ONLY OFF FAST PREPROCESS ON TEXT MINING OFF TEXT ANALYSIS OFF TOKEN SEPARATORS '\;,.:-_()[]<>!?*@+{}="&)/' COMPRESSION LEVEL 0;
CREATE COLUMN TABLE NEWUSER."SBOOK"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"CARRID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CONNID" NVARCHAR(4) DEFAULT '0000' NOT NULL ,
"FLDATE" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"BOOKID" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"CUSTOMID" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"CUSTTYPE" NVARCHAR(1) DEFAULT '' NOT NULL ,
"SMOKER" NVARCHAR(1) DEFAULT '' NOT NULL ,
"LUGGWEIGHT" DECIMAL(8,4) CS_FIXED DEFAULT 0 NOT NULL ,
"WUNIT" NVARCHAR(3) DEFAULT '' NOT NULL ,
"INVOICE" NVARCHAR(1) DEFAULT '' NOT NULL ,
"CLASS" NVARCHAR(1) DEFAULT '' NOT NULL ,
"FORCURAM" DECIMAL(15,2) CS_FIXED DEFAULT 0 NOT NULL ,
"FORCURKEY" NVARCHAR(5) DEFAULT '' NOT NULL ,
"LOCCURAM" DECIMAL(15,2) CS_FIXED DEFAULT 0 NOT NULL ,
"LOCCURKEY" NVARCHAR(5) DEFAULT '' NOT NULL ,
"ORDER_DATE" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"COUNTER" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"AGENCYNUM" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
"CANCELLED" NVARCHAR(1) DEFAULT '' NOT NULL ,
"RESERVED" NVARCHAR(1) DEFAULT '' NOT NULL ,
"PASSNAME" NVARCHAR(25) DEFAULT '' NOT NULL ,
"PASSFORM" NVARCHAR(15) DEFAULT '' NOT NULL ,
"PASSBIRTH" NVARCHAR(8) DEFAULT '00000000' NOT NULL ,
CONSTRAINT "SBOOK~0" PRIMARY KEY ("MANDT", "CARRID", "CONNID", "FLDATE", "BOOKID")
);
原创文章,转载请注明来源-X档案