【SAP Abap】X档案:SAP Flight 航班系统数据模型简介(SCARR、SPFLI、SFLIGHT、SBOOK等)

SAP Flight 航班系统数据模型简介(SCARR、SPFLI、SFLIGHT、SBOOK等)

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档案

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值