SAP快速学习小结1

一、SAP基础

SAP(System,Applications and Products in Data Processing,即数据处理的系统、应用和产品)

SAP R/3 系统主要应用于较大型商用ERP软件

SAP R/3 系统是用C语言及SAP第四代语言ABAP/4编写的

ERP(Enterprise Resource Planning,企业资源计划)

ERP项目包含财务、分销、生产、人力资源、决策支持、质量管理等

ABAP(Advanced Business Application Programming)专为SAP系统内部的商业应用程序开发而设计,SAP Basis系统中的ABAP程序具有平台无关性

ABAP有一套特殊的语句集Open SQL,可以通过系统中的数据库接口访问数据库,实现与底层数据库类型无关的数据库操作,因为数据库接口将该句翻译为相关的数据库SQL语句;同时可以使用当前数据库自身的SQL语句,则无需通过接口进行翻译。ABAP还可以通过其他接口例如内存、顺序文件和外部接口等的数据集进行数据传输和交换。

R/3仓库与ABAP开发平台是SAP系统总的重要组成部分,也是系统开发的主要工具。

ABAP数据字典(Data Dictionary,DDIC)是SAP系统中定义和管理数据元素和数据库元素的中心工具。数据字典的一个主要功能是自定义系统公用数据类型(基本类型、结构和表),供所有SAP程序使用,以实现项目标准化。

SAP还通过数据字典定义数据库对象结构(数据库表、视图和索引等)

SAP 专用术语及图标说明

惯例约定 是用于
屏幕文本 你在屏幕上看到的单词和字母(包括系统提示信息、字段名称、屏幕标题、菜单名称和菜单项目)。
用户输入 准确的用户输入。你在键盘上键入的单词和字母要完全与文档中的相同。
<可变用户输入> 可变的用户输入。尖括号表示你可以用适当的键盘输入替换这些变量。
全部大写 报表名、程序名、项目代码、表格名、 ABAP/4语言要素、文件名和目录。
书目标题 与其它的书相互参照。
键标 键盘上的键。通常功能键(例如 F2ENTER 键) 是用这种方式表示的。

二、系统开发语言

  • ABAP基础

    ABAP程序源代码包括数据定义和处理快两个部分

    • 数据定义:包含整个程序中可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Objects中自定义的类和接口。

    • 处理块(Processing Blocks):是ABAP程序的主要结构单元,定义了程序在不同状态下执行的具体功能,在程序编译运行过程中,每一个块都是一个独立的实体。ABAP程序中,数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他所有语句则都必须隶属于某个处理块。

      ABAP程序包含有三种类型的处理块:

      • 事件块(Event Blocks)

        在一个报表中,运行程序

        • INITIALIZATION(初始化)
        • START-OF-SELECTION(数据选择开始)
        • ATLINE-SELECTUON(列表行选择)

        在用户屏幕中

        • PROCESS BEFORE OUTPUT(屏幕输入前处理)
        • PROCESS AFTER INPUT(屏幕输入后处理)
      • 对话模块(Dialog Modules)

        用于用户对话程序(事务)设计中,从属于对话事件,在对话事件块内部被调用。

      • 过程(Procedures)

        代码部分的开始和结束也有相关的关键字作为标志,是相对独立的程序单元。

        包括功能模块和子程序,以及ABAP对象中的类方法,

        可以被其他的模块调用,以实现程序模块化和代码复用。

    • 处理块调用

      处理块是程序代码模块,也是运行期间的单元。在程序运行过程中,这些处理块按照预定义好的一定规则被调用,其具体出现的顺序与其在程序代码中的先后顺序无关,有些处理块也可以被反复调用。

  • ABAP语句格式

    所有程序语句都由一个ABAP语句关键字引导,并由一个句号 “.” 作为结束的标志。

    根据关键字的不同,有下述语句类型:

    • 声明语句

      常用数据声明语句关键字:

      • TYPES
      • DATA
      • PARAMETER
      • TABLES
    • 模块化语句

      细分为事件关键字语句和过程定义关键字语句

      • 事件关键字

        • AT SELECTION-SCREEN
        • START-OF-SELECTION
        • AT USER-COMMAND
      • 过程定义关键字
        • FROM/ENDFROM
        • FUNCTION/ENDFUNCTION
        • MODULE/ENDMODULE
    • 控制语句

      • IF
      • WHILE
      • CASE
    • 调用语句

      • PERFROM
      • CALL
      • SUBMIT
      • LEAVE TO
    • 操作语句

      • WRITE
      • MOVE
      • ADD
    • 数据库语句

      • Open SQL
      • Native SQL
  • 编辑格式

    各个关键字、选项及操作数之间应至少保留一个空格,系统将换行符也解释为一个空格,而且并不要求每一个语句都占据一行。

  • 语句链

    如果连续使用相同关键字引导的语句,可以使用关键字后的 “:” 和语句间的 “,” 符号形成语句链,将它们连接在一起,以简化代码。

    WRITE: text1, text2 .

    等价于

    WRITE text1 .

    WRITE text2 .

  • 注释

    两种形式

    • 在行的开头使用 “*”,则该行整行都成为注释
    • 在行中使用 " ,其后文字为注释部分

SAP快速学习小结1相关推荐

  1. 【转载】Hyperledger学习小结

    Hyperledger学习小结 自学Hyperledger Composer也有段时间了,是时候对所学的知识总结一下了.因为没有实际项目参与的话,差不多也就到此为止了.后续可能会去了解一下以太坊的技术 ...

  2. 图片裁剪功能学习小结

    图片裁剪功能学习小结 近期有需要使用图片裁剪的功能,在使用插件和自己写裁剪组件之间犹豫了很久,后来根据需求经过反复的考虑,还是自己封装吧,毕竟自己动手,丰衣足食,对吧?嗯,??????是的!最后生成裁 ...

  3. Linux下的Samba学习(二)------用实验快速学习Samba服务器设置

    前言:在windows和linux的混合网络中,samba还是有很大用处的,本文用实验的方法快速学习Samba. [实验项目] ①在linux上建立Samba服务器,用类似FTP的客户端smbclie ...

  4. 快速学习Java8新特性第七讲——Optional类

    在<快速学习Java8新特性第五讲--强大的Stream API>这一讲中,我就已经提及到了Optional类.在这一讲中,我将对其做一个更加细致的讲解. Optional类是什么? Op ...

  5. 快速学习四步法:如何用20小时,快速学习?

    概念:快速学习 必须用20小时,"学会"行业80%的核心逻辑,然后,才有资格说"我认为".所以,"快速学习"能力,是六脉神剑,甚至是商业机密 ...

  6. Markdown入门学习小结

    转自:http://www.jianshu.com/p/21d355525bdf 在遇到简书之前,我从来不知道Markdown是什么.简书所转载的阳志平所作「Markdown写作浅谈」一文中提到: M ...

  7. slua 是c语言开发的吗,初学者必备文档:LUA新手快速学习笔记

    LUA程序设计语言 是一个简洁.轻量.可扩展的脚本语言.LUA读作/'lua/(噜啊),是葡萄牙语中"Luna"(月亮)的意思. LUA的目标是成为一个很容易嵌入其它语言中使用的语 ...

  8. 创建 dict 的几种方法学习小结

    创建 dict 的几种方法学习小结 dict(全称 dictionary,可以翻译为"字典"),其使用"键-值(key-value)"对儿的方式存储多项数据,是 ...

  9. 数据科学导论学习小结——其三

    数据科学导论学习小结--其三 这是笔者大学二年级必修科目<数据科学基础>个人向笔记整理的第三部分,包含第六.第七两个章节.本笔记内容基于清华大学出版社<数据科学导论-探索数据的奥秘& ...

最新文章

  1. 3D打印材料PLA,ABS对比
  2. 编译安装 zbar 时两次 make 带来的惊喜
  3. 汉游天下公司的一些感悟
  4. Boost Asio Examples(整理)
  5. git jenkins 子目录_在Jenkins中,如何将项目签出到特定目录(使用GIT)
  6. python窗口怎么显示,如何使用Python在没有窗口的屏幕上显示文本
  7. 航空——模拟飞行之飞行术语
  8. 雷达基础系列文章之四:雷达专业国内期刊
  9. 十三个世界著名的定律
  10. C++知识之如何利用双缓冲避免在HDC上画图时图像闪烁
  11. 【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息
  12. 在Windows 7 Media Player中轻松播放Flac,Ogg和其他文件格式
  13. LabVIEW代码中常见的错误
  14. ibm服务器如何查看内存型号,ibmx3650m4不识别|认不出内存怎么办|内存安装规则要求...
  15. QuadrotorFly-四旋翼无人机动力学仿真环境介绍
  16. python写简单的脚本-你用 Python 写过哪些牛逼的程序/脚本?
  17. 里程碑2无信号,修改基带
  18. 配套UPS的磷酸铁锂SOC的估算策略
  19. 直播类app开发的开屏广告是怎样实现的
  20. Flash烧录成功后校验器件时出错问题

热门文章

  1. 【前端】vue-slider实现可设置选择范围的时间轴
  2. 应用程序正常初始化(0xc0150002)失败的终极解决方案
  3. 数据结构与算法精选面试50题(附答案)
  4. 国内免费的ChatGPT可用网址汇总【持续更新5.7】
  5. 图书馆借阅管理系统(图书管理系统),可提供远程搭建运行服务
  6. 2,JESD204为什么值得关注?
  7. RK3399 Android7.1如何查看屏幕分辨率
  8. 全国大学的戏精,都在论文致谢里了
  9. NRZ、RZ信号的时频域区别及它们的谱效率
  10. java如何判断回文数