1 / 34

ABAP 培训

ABAP 培训. 祝汉武 2006-10-12. 欢迎和简介. 欢迎大家参与本培训单元。 本次培训主要涉及一些 ABAP 的基本知识。. 目标. 基础目标 读懂 ABAP 程序 简单的 Report 程序设计 我们希望的进一步目标 Batch Input 程序设计 创建、维护 ABAP/4 Dictionary 对象. 培训课程计划. 第一天 语言基础 数据定义 基本数据操作 控制结构 字符处理 动态数据 模块化技术 练习. 培训课程计划. 第二天 内表概念 内表定义 内表使用 数据库基础 提取数据( OPEN SQL )

hashim
Download Presentation

ABAP 培训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ABAP培训 祝汉武 2006-10-12

  2. 欢迎和简介 • 欢迎大家参与本培训单元。 • 本次培训主要涉及一些ABAP的基本知识。

  3. 目标 • 基础目标 • 读懂ABAP程序 • 简单的Report程序设计 • 我们希望的进一步目标 • Batch Input程序设计 • 创建、维护ABAP/4 Dictionary对象

  4. 培训课程计划 • 第一天 • 语言基础 • 数据定义 • 基本数据操作 • 控制结构 • 字符处理 • 动态数据 • 模块化技术 • 练习

  5. 培训课程计划 • 第二天 • 内表概念 • 内表定义 • 内表使用 • 数据库基础 • 提取数据(OPEN SQL) • 练习

  6. 培训课程计划 • 第三天 • 报表基础 • 报表事件 • 选择屏幕 • 格式化输出 • 练习

  7. 培训课程计划 • 第四天 • Batch Input程序设计 • ABAP程序开发规范 • ABAP程序的主体结构标准 • 练习

  8. 培训课程计划 • 第五天 • 权限问题 • 传输请求 • 区域菜单 • 事务码设定 • 长文本的读取和存储 • 练习

  9. 培训课程计划 • 第六天 • 开发相关类和组创建 • 打印配置 • 程序优化 • 练习

  10. ABAP语言基础 • 什么是ABAP/4? • ABAP/4是英文Advanced Business Application Programming的缩写,是SAP R/3商用系统的应用程序开发工具

  11. ABAP语言基础 • 为什么学习ABAP/4? • ABAP/4是所有SAP R/3应用的基础,也是进行SAP R/3二次开发的最主要的工具,是我们对SAP R/3系统进行应用分析、二次开发的主要工具、必经之路

  12. 数据定义 • 基本数据类型 数据类型 默 认大小 有效 大小 初始值 C 1 1 - 65535 SPACE D 8 8 '00000000' F 8 8 0 I 4 4 0 N 1 1 - 65535 '00...0' P 8 1 - 16 0 T 6 6 '000000' X 1 1 - 65535 X'00'

  13. 数据定义 • TYPES语句(创建用户定义的基本数据类型和结构化数据类型) • 语法 • TYPES <t>[<length>] <type> <decimals>]. 例子:TYPES: SURNAME(20) TYPE C, PHONE(20) TYPE N, DATE LIKE SY-DATUM.

  14. 数据定义 • 用TYPES定义结构化数据类型 • 语法: TYPES: BEGIN OF <fstring>, <component eclaration>, .............. END OF <fstring>. • 例子: TYPES: BEGIN OF ADDRESS, NAME TYPE SURNAME, CODE(10) TYPE N, TOWN(20) TYPE C, STR(30) TYPE C, END OF ADDRESS.

  15. 数据定义 • DATA语句(定义局部或全局变量) • 定义一个简单类型的变量 • 定义一个结构化的数据对象 • 定义一个内表

  16. 数据定义 • 简单变量申明 • DATA:〈VAR〉LIKE 〈DICTIONARY TYPE〉 • DATA:〈VAR〉TYPE [C,P,I,STRING等] • 例子 DATA: S1 TYPE I, SUM TYPE I. DATA : t_pspnr like prps-pspnr.

  17. 数据定义 • 结构化的数据对象 • DATA: BEGIN OF <fstring>, <component declaration>, .............. END OF <fstring>. • 例:DATA: BEGIN OF ADDRESS1, NAME(20) TYPE C, STREET(20) TYPE C, NUMBER TYPE P, END OF ADDRESS1. 也可以从已经定义的结构化数据类型定义数据对象 DATA: D_ADDRESS TYPE ADDRESS, d_temp like address1.

  18. 基本数据操作 • 数据赋值 • 数值运算 • 逻辑表达式

  19. 基本数据操作 • 数据赋值 • MOVE语句(作用和“=”一样) move data1 to data2. data2 = data1. • 注意:源变量和目标变量的类型要一样或者可以进行类型转换,要是两者不兼容也不能类型转换,则上述语句不能成功执行。 • ClEAR语句:把变量恢复到初始状态(空值)。

  20. 基本数据操作 • 基本算术运算 运算 用数学表达式的语句 用关键字的语句 加法 <p> = <n> + <m>. ADD <n> TO <m>. 减 法 <p> = <m> - <n>. SUBTRACT <n> FROM <m>. 乘 法 <p> = <m> * <n>. MULTIPLY <m> BY <n>. 除 法 <p> = <m> / <n>. DIVIDE <m> BY <n>. 整 除 <p> = <m> DIV <n>. --- 除 法余数 <p> = <m> MOD <n>. --- 求 幂 <p> = <m> ** <n>. ---

  21. 基本数据操作 • 处理日期和时间字段 日期和时间字段数据类型不是数值 型。但是可以采用类似于数值型字段的处理方法,处理日期和时间字段。 • 例: DATA: ULTIMO TYPE D. ULTIMO = SY-DATUM. ULTIMO+6(2) = '01'. ULTIMO = ULTIMO - 1.

  22. 控制结构 • 分支控制 • 循环控制

  23. 控制结构 • 分支控制 • IF 〈EXPRESSION〉. …… ELSE. …… ENDIF. • CASE 〈VAR〉. WHEN [VALUE1]. …… WHEN [VALUE2]. …… ENDCASE.

  24. 控制结构 • 例: DATA: TEXT1 VALUE 'X', TEXT2 VALUE 'Y', TEXT3 VALUE 'Z', STRING VALUE 'A'. CASE STRING. WHEN TEXT1. WRITE: / 'String is', TEXT1. WHEN TEXT2. WRITE: / 'String is', TEXT2. WHEN TEXT3. WRITE: / 'String is', TEXT3. WHEN OTHERS. WRITE: / 'String is not', TEXT1, TEXT2, TEXT3. ENDCASE.

  25. 控制结构 • 无条件循环 DO [N TIMES]. <STATEMENT BLOCK>. ENDDO. • 条件循环 WHILE <CONDITION>. <STATEMENT BLOCK>. WNDWHILE. • 可以用STOP,EXIT,REJECT等语句中止循环。

  26. 控制结构 • 例: DO 4 TIMES. IF SY-INDEX = 3. EXIT. ENDIF. WRITE SY-INDEX. ENDDO. 产生如下输 出: 1 2

  27. 字符处理 • 连接字符串 • CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>]. DATA: C1(10) VALUE 'Sum', C2(3) VALUE 'mer', C3(5) VALUE 'holi ', C4(10) VALUE 'day', C5(30), SEP(3) VALUE ' - '. CONCATENATE C1 C2 C3 C4 INTO C5. WRITE C5. CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY SEP. WRITE / C5. 该过程的输 出如下: Summerholiday Sum - mer - holi - day

  28. 字符处理 • 除了合并字符串外,还提供如下一些字符串操作: • SPLIT 拆分 • SEARCH 查找 • REPLACE 替换 • STRLEN 确定长度 • SHIFT 移动字符串内容 • CONDENSE 删除多余的空格 • OVERLAY 用一个字符串覆盖另外一个字符串

  29. 字符处理 • 定位操作子串 语法:S[+N1][(N2)] 意思是对字段s从N1+1位开始且长度为N2的部分进行处理 DATA: S1(10) VALUE ‘ABCDEFGHIJ’. S1+2(4) = ‘FEDC’. WRITE:S1. 其结果是:ABFEDCGHIJ.

  30. 模块化技术 • 作用:使程序结构清晰,易读,易于维护,同时可以达到代码复用的目的。 • 在实际开发中应用的比较多的模块技术包括子程序和功能模块。

  31. 模块化技术 • 子程序(程序内部的模块化实现),可以理解为函数 • 语法: 定义:FORM subr [using …[value() p1[]] [type t|likes f]…] [changing…[value()pn[]] [type t|likes f]…]. <subr codes> Endform. 调用:PERFORM subr [using …p1…] [changing …pn…].

  32. 模块化技术 • 子程序例子: form check_matnr using p_matnr changing p_return. p_return = 1. select single * from marc into marc where matnr = p_matnr and werks = ‘sbsx’ and lvorm eq space. check sy-subrc eq 0. p_return = 0. endform. matnr1 = ‘6554332321’. perform check_matnr using matnr1 changing return.

  33. 模块化技术 • 功能模块:与子程序相似,是独立的R/3对象,在sap里面很常用的复用组件。 • 创建工具(se37) • 调用方式 CALL FUNCTION .

  34. 模块化技术 • 功能模块例子 call function 'CONVERSION_EXIT_ABPSN_INPUT' exporting input = p_pspid importing output = pspid.

More Related