SAP ABAP开发常见问答

  1. ABAP/4程序的典型结构是什么?

    答:头部(HEADER)、主体(BODY)、尾部(FOOTER)。

  2. 字段符号和字段组是什么?

    答:字段符号:是指向数据对象的指针,可以在程序中引用数据对象的特定字段。

    字段组:是一组字段,可以一起处理,例如在循环中一起读取或写入。

  3. 处理批处理输入会话存在哪些问题?批处理输入过程与在线处理有何不同?

    答:问题:i)如果用户忘记选择保留会话,则会话将自动从会话队列中移除(日志保留)。然而,如果会话被处理,我们可以手动删除它。ii)如果会话处理失败,数据将不会被传输到SAP数据库表。

  4. 数据字典对象有哪些不同类型?

    答:表、结构、视图、域、数据元素、锁对象、匹配码对象等。

  5. 数据字典中存在哪些类型的表?它们是什么?

    答:4种类型的表:i)透明表 - 在字典和数据库中以相同的结构存在,数据和字段完全相同。可以使用OpenSQL和NativeSQL。ii)池表和iii)集群表 - 这些是作为透明表记录排列的逻辑表。不能使用NativeSQL(只能使用OpenSQL)。它们不能直接使用数据库系统工具进行管理。iv)内部表。

  6. 在数据字典中创建表的逐步过程是什么?

    答:步骤1:创建域(数据类型、字段长度、范围)。步骤2:创建数据元素(表字段的属性和类型)。步骤3:创建表(SE11)。

  7. 透明表是否可以在数据字典中存在,但在数据库中物理不存在?

    答:不可以。透明表在字典和数据库中以相同的结构存在,数据和字段完全相同。

  8. 域和数据元素是什么?

    答:域:数据类型的正式定义。它们设置属性,如数据类型、长度、范围。数据元素:SAP ERP ECC系统中的一个字段是一个数据元素。

  9. 能否创建一个不引用数据元素的表字段的表?

    答:可以。例如:ITAB LIKE SPFLI。这里我们引用的是数据对象(SPFLI),而不是数据元素。

  10. 结构的优势是什么?你在ABAP程序中如何使用它们?答:优势:全局存在(这些可以在任何其他程序中使用,而无需再次创建)。

  11. COLLECT语句是什么?它与追加有什么不同?

    答:如果已经存在具有相同键的条目,COLLECT语句不会追加新行,而是将工作区域中数值字段的内容添加到现有条目的数值字段内容中。

  12. Open SQL与Native SQL的区别是什么?

    答:Open SQL允许你访问所有数据库表,无论数据库制造商是谁。有时,我们可能想要在ABAP/4程序中使用数据库特定的SQL语句,这些语句称为Native SQL。为了避免不同数据库表之间的不兼容性,并且使ABAP/4程序独立于所使用的数据库系统,SAP创建了一套称为Open SQL的单独SQL语句。Open SQL包含标准SQL语句的子集以及一些特定于SAP的增强功能。数据库接口将SAP的Open SQL语句翻译成特定于所使用数据库的SQL命令。Native SQL语句直接访问数据库。

  13. ABAP中的EXEC SQL语句的作用是什么?使用它的不利之处是什么?

    答:EXEC SQL语句用于执行SQL语句。不利之处在于:语法检查不会在EXEC SQL语句中编写的语句中执行。

  14. ABAP/4编辑器与ABAP/4数据字典集成的含义是什么?

    答:ABAP/4编辑器与ABAP/4数据字典集成意味着编辑器可以直接访问和操作数据字典对象,如表、视图、结构等,从而简化了开发过程。

  15. ABAP/4语言中的事件有哪些?

    答:初始化、选择屏幕、开始选择、结束选择、页顶、页尾、行选择、用户命令、PF、获取、新建、最后、开始、结束。

  16. 什么是交互式报告?与经典类型报告相比,这种报告的明显区别是什么?

    答:交互式报告是一种动态的钻取报告,根据用户的选择生成列表。区别:

    a) 经典报告生成的列表不允许用户与系统交互,而交互式报告生成的列表允许用户与系统交互。

    b) 一旦执行经典报告,用户就失去了控制。交互式报告的用户保持控制。

    c) 在经典报告中无法进行钻取。在交互式报告中可以进行钻取。

  17. 什么是钻取报告?

    答:它是一种交互式报告,用户可以通过明确选择来获取更相关的数据。

  18. 如何在SAP中编写函数模块?描述一下。

    答:创建函数模块:调用程序 - SE37 - 创建函数组、函数模块并分配属性、导入、导出、表、异常。

  19. 函数模块中的异常是什么?

    答:通信失败、系统失败。

  20. 函数组是什么?

    答:所有相关功能的组。

  21. SAP中日期和时间字段值是如何存储的?

    答:DD.MM.YYYY. HH:MM:SS。

  22. 举例一些数据字典对象?

    答:表、视图、结构、锁对象、匹配码对象。

  23. 当在DD中激活表时会发生什么?

    答:它可供任何用户进行插入、修改和更新记录。

  24. 检查表和值表是什么?

    答:检查表将在字段级别进行检查。值表将在域级别进行检查,例如:scarr表是carrid的检查表。

  25. 匹配码是什么?描述一下?

    答:它类似于表索引,为无论是主键还是非主键提供可能值的列表。

  26. 范围ranges是什么?数字范围是什么?

    答:在选择屏幕上提供最大值和最小值。

  27. 选择选项和参数有什么区别?

    答:选择选项SELECT-OPTION提供范围,而参数PARAMETERS不提供。SELECT-OPTIONS声明了一个内部表,该表会自动填充用户输入的值或值范围。对于每个SELECT-OPTIONS,系统都会创建一个选择表。SELECT-OPTIONS <SEL> FOR <field>。选择表是一个内部表,字段为SIGN、OPTION、LOW和HIGH。LOW和HIGH的类型与<field>相同。SIGN字段可以取以下值:I 包含(应用)、E 不包含(不应用) OPTION字段可以取以下值:EQ 等于、GT 大于、NE 不等于、BT 介于、LE 小于或等于、NB 不介于、LT 小于、CP 包含模式、GE 大于或等于、NP 无模式。

    差异:PARAMETERS允许用户在报告中的内部字段中输入单个值。

    SELECT-OPTIONS允许用户用一系列值填充内部表。

  28. 如何验证报表的选择标准?如何在选择屏幕上显示初始值?

    答:验证:通过使用匹配码对象。

    显示:Parameters <name> 默认 'xxx'.

    select-options <name> for spfli-carrid.

  29. 一个ABAP程序创建了一个批处理输入会话。我们需要在后台提交程序和批处理会话。如何操作?

    答:转到SM36,通过提供作业名称、作业类别和作业步骤(作业调度)创建后台作业。

  30. 处理批处理输入会话时存在哪些问题?批处理输入过程与在线处理有何不同?

    答:问题:i) 如果用户忘记选择保留会话,则会话将自动从会话队列中移除(日志保留)。然而,如果会话被处理,我们可以手动删除它。

    ii) 如果会话处理失败,数据将不会被传输到SAP数据库表。

  31. CTS是什么?

    答:变更和传输系统(CTS)是一个工具,帮助您在ABAP工作台和自定义中组织开发项目,然后将更改在不同的SAP系统和客户端之间传输。

  32. 在ABAP程序中可以使用的一些系统全局变量是什么?

    答:SY-SUBRC, SY-DBCNT, SY-LILLI, SY-DATUM, SY-UZEIT, SY-UCOMM, SY-TABIX...... SY-LILLI 是触发事件的行的绝对行号。

  33. 内部表是什么?如何在内部表中获取行数?如何使用特定数量出现语句?

    答:i) 它是一个标准数据类型对象,仅在程序运行时存在。它们用于对数据库表的子集执行表计算,并根据用户需求重新组织数据库表的内容。

    ii) 使用 SY-DBCNT。

    iii) 系统需要为下一个记录填充分配的内存数量。

  34. 如何处理ABAP程序中的性能问题?

    答:性能可以通过减少要传输的数据量来提高。数据集必须通过网络传输到应用程序,因此减少时间也减少了网络流量。可以采取的一些措施包括:

    1)使用ABAP/4 DDIC中定义的视图(也具有更好的可重用性优势)。

    2)使用字段列表(SELECT子句)而不是SELECT *。

    3)避免范围表(IN操作符)。

    4)避免嵌套SELECT。

  35. 字段符号是什么?

    答:字段符号:字段符号是现有字段的占位符。字段符号在程序运行时并不物理保留空间,而是指向一个在运行时未知的字段。例如:FIELD-SYMBOL <FS> [TYPE>]。

  36. 包括程序是什么?

    答:当需要在多个程序中重复编写相同序列的语句时,它们被编码在包括程序(外部程序)中,并包含在ABAP/4程序中。

  37. 能否从一个程序调用另一个程序的子程序?

    答:是的 - 仅外部子程序使用'SUBMIT'语句。

  38. 用户开发ABAP程序的一般命名约定是什么?

    答:应以Y或Z开头。

  39. SAP中的不同模块是什么?

    答:FI(财务会计)、CO(成本控制)、SD(销售和分销)、MM(物料管理)、PP(生产计划)、HR(人力资源管理)等。

  40. 如何在ABAP中获取帮助?

    答:可以通过SAP帮助系统(SAP  LIBRARY),或者在ABAP编辑器中按F1键获取帮助。

  41. 不同的ABAP/4编辑器是什么?它们有什么区别?

    答:SE38(ABAP编辑器)、SE80(菜单编辑器)、SE37(函数模块编辑器)等。它们提供不同的功能和界面,用于编辑和维护ABAP程序的不同方面。

  42. SAPscript中的不同元素是什么?

    答:页面(PAGES)、页面窗口(Page windows)、标题(Header)、段落(Paragraph)、字符字符串(Character String)、窗口(Windows)。

  43. 在SAPscript中,通常使用哪些类型的变量来输出数据?

    答:通常使用字符型变量来输出数据。

  44. 如何在SAPscript布局输出中编号页面?

    答:使用SAPscript中的页脚(Footer)元素,可以包含页码信息。

  45. SAPscript编程中最耗时的部分是什么?

    答:布局设计和插入标志(Logo)。

  46. 逻辑数据库是什么?逻辑数据库的优缺点是什么?

    答:为了从数据库表中读取数据,我们使用逻辑数据库。逻辑数据库为ABAP/4程序提供了一组相关表的只读访问。优点:i) 程序员不需要担心每个表的主键。因为逻辑数据库知道不同表之间的关系,并且可以发出带有适当WHERE子句的SELECT命令来检索数据。ii) 易于使用的标准化用户界面。iii) 检查函数,以确保用户输入完整、正确和合理。iv) 有意义的数据选择。v) 对数据库访问进行集中授权检查。vi) 在保留应用程序逻辑确定的层次数据视图的同时,具有良好的读取访问性能。

缺点:i) 如果在程序属性中没有指定逻辑数据库,GET事件永远不会发生。ii) 没有   ENDGET命令,因此与事件相关的代码块以下一个事件语句(例如另一个GET或END-OF-SELECTION)结束。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᝰ随心ꦿེএ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值