SAP里面有的模块
- FI Financial 金融
- CO Controlling 控制
- SD Sales and Distribution 销售
- MM Material Management 物料管理
- PP Product Planning 生成计划
- WM Warehouse Manegement 仓储管理
- PS 项目管理
- PM Plant Maintenance 设备管理
- QM 质量管理
- HR Human Resource 人力资源
基础的最基本模块
- ABAB
- BAISIS
新模块 - BW 网页显示数据(高层级数据分析)
- HANA
SAP系统 - ECC(以上的功能都是ECC系统上的)
- CRM 客户关系系统
- SRM 供应商关系系统
主数据Master Data
- 物料主数据
- 客户主数据
- 供应商主数据
在做业务的时候前提是做主数据,sap数据用编号存储物料。
开发系统:开发程序和数据库表
测试系统:有生产系统的测试数据,用于测试开发程序
生产系统:用户的真实的用户数据,定期吧数据备份到测试系统
快捷键
ctrl+y:变成十字可以多项选择
标准菜单那查找
search_sap_menu
T-Code
se11:数据字典
数据库表:指的是这个表对象
视图:多个表的连接而成的视图
sm30:查看视图
- 数据库视图:如果视图来源于一张表,可维护,如果来源于两张表以上,则不可维护
- 维护视图:可维护,修改了数据后可以同步到数据库中
锁对象:互斥锁
搜索对象:
数据类型:
并不直接存储 数据
- Date element:数据元素,基本的数据类型,定义了描述,类型和长度
- Structure:数据结构,有多个数据类型组成的一个数据结构,例如学生是一个数据结构,学生由姓名学号等数据类型组成
- Table type:表类型的数据结构,可以放多行数据
作用域:值允许的范围
se16:维护表,只能维护单行的数据
sm30:表个维护器,可以多行的维护表
数据类型和数据对象
数据类型:
数据对象的技术特性的定义
本身不占空间
可以是系统预定义或者用户自定义
数据对象:
内存变量
指定为某一特定的数据类型
结构体赋值
相同的结构体之间可以直接用等号进行复制(相同的结构体指的是数据类型相同,名字不一定相同)
也可以使用Move。。。to。。。进行赋值
可以使用write输出所有的字段
如果结构体不相同,可以使用move-corressponding把相同的字段进行复制。
例如:把userinf中和userdetail相同的字段复制给userdetail
结构体的继承,可以参考已经存在的结构体,然后在新的结构体中添加字段
语句:include structure
例如:定义了一个结构体emloyee继承了userinf,然后在其基础上添加了birthdate和add两个字段。
se38:abap编辑器
定义变量和输出
英文的句号为结尾!
输出变量,/为换行,‘lv_C’为字符串
输出的结果为
C:字符型的初始值为空
D:日期初始为8位6 的0
F:Wie浮点型,为科学计数法
I:为整形,从右向左算
N:数字的字符串,跟c长不多,从右向左
P:压缩类型,可以表示整形也可以表示浮点型,在表示数字的时候如果没有定义小数位的个数,则会四舍五入,
T:六位数的时间
可以将变量定义为系统自带的变量,注意在低昂一变量的时候value后面不能直接跟系统变量,所以在定义后进行赋值。
例如:将系统的时间和日期赋值给了刚定义的变量
定义数据类型
定义一个数据类型,可以自己定义数据元素
也可以根据程序中已经定义好的数据类型定义数据类型!定义数据结构体
定义变量
给变量赋值,汉字的占位是两个字符
结构体变量赋值:
上面一种定义结构体的方法是先定义了一个结构体,然后一个结构体变量,最后对结构体变量进行赋值
另一种定义结构体的方法是直接定义一个结构体变量,相比于上面的一种就是不用进行了两步操作
然后可以吧上面赋值好的变量直接付给新定义的结构体变量,可以直接赋值,证明两个变量是一样的。
结构体继承
关键字:include structure
例如:结构体ls_customer
继承了ls_partnerinf然后自定义了一个数据类型adress
输出颜色
数据处理
数据赋值
- move 。。。 to 。。。
将前面的赋值给后面的,如果后面的有值得或就会覆盖,可以使不同的类型,但是会有限制 - write 。。。 to 。。。
带格式的赋值, - 等于号=赋值
- 赋值偏移量
在公式中[]表示可选项,
下图的公式表示的是move <名字>[+<偏移量>]
[<需要的取的位数>] to <名字>[+<偏移量>]
[<需要的取的位数>]
例如:
定义了f1,长度10,value是abcdefghig
定义了f2,长度5
f2等于f1偏移量3取五位的字符,就是从A开始,A的下标位0,取第3位就是D,然后取 五位
所以f2是defgh
还有wirte和=的用法 
输出横线
输出lv_number
> 这里的类型是string类型,如果类型是char20,虽然字符占得空间不到20,但是输出的长度是定义好的20长度。有一种类型但不是char20.
字符串处理
这里的字符串可以是string的可变长度类型,也可以是char的不可变类型。
-
字符串位移
例如:
左移结果(默认是左移):
右移结果:
-
移除字符串
例如:删除左边的空格
例如:
定义一个字符串
左移除字符串中的字符
-
替换字符串
例如
-
字符串大小写转换
-
查找字符串
是否查找到
查找特殊字符的时候需要加上“.特殊符号.”
-
字符串的合并
将f1到fn添加到g中
-
字符串的拆分
拆分f以g为分隔拆分给后面的变量
-
去除字符串的空格
-
清除变量内容
流程控制
数据流:即代码运行的顺序
凭证流:即业务之间的顺序,例如下单——库存——交易——发票
- if判断
condition为判断条件
都不满足执行else
- case判断
都不满足执行when others,可省略
-
计数循环
-
条件循环
- loop循环
- 循环关键字
check如果不满足就不执行接下来的所有代码
内表
存储在内存中的表,程序执行后就释放
三种类型
都有插入修改删除的功能
-
标准表:
插入和排序值不会对数据的地址进行重新排序 -
排序表
增加和插入时候会对数据进行排序 -
哈希表
只能通过关键字进行访问 -
定义内表
先自定义了一个类型,
第一种然后Data根据创建的类型创建内表。
第二种
第三种
直接定义内表
occurs表示的是内表初始要多少行,一般是写0
参考定义
查看内表属性
工作区
内表按照进行访问,必须使用某个区域作为与表格相互传输的接口。
内表数据处理
-
增加数据
关键字:insert
将数据插入表的特定一行
INTO:将工作区的内容插入
INITIAL LINE:插入一个空行
插入表,不指定哪一行
将另一个表的内容插入表中
关键字:collect
插入的会将相同的关键字的数字类型相加,应用场景:有10个苹果了,在插入一个苹果,数量就相加变成11.
关键字:append
表中的先后是先进先出,如果要出入到指定的位置接需要用insert。
将内表的内容复制到另一个内表
语法:
-
初始化清空
clear和reflash
clear[],如果直接用clear是清空工作区不是清空内表。
如果有内表和工作区,就clear和reflash一起使用