sap 默认屏幕变式_SAP简介
自己总结:SAP是一种系统,是ERP系列比较领先的一种技术。主要应用于管理各公司的财务、原材料,库存商品等。我们专业最近两年也在学习IBM大型机,学了Z/OS系统,JCL、COBOL、CICS语言。感觉它俩很是相似。我觉得应该跟数据处理有关。现在这两种系统都可以兼容很多其他的语言,比如C,java等,又都有事务的概念,主要的语言(ABAP和COBOL)的语言结构和语法在某种程度上也很相似。SAP系统比起其他系统它的优势就是对报表的处理还有各种系统之间的通信以及数据的传递,这就涉及到它所特有的各种通信接口和机制。还有它给客户提供的增强接口让系统更接近于客户的需要。
语法
基础知识
CHECK,EXIT,RETURN命令的区别?
CHECK
CHECK后面要跟一个表达式,当表达式值为假时,CHECK发生作用,退出循环(LOOP)或处理程序。
如果CHECK出现在循环中,则发生作用时,退出的是当前一次循环操作,程序会继续执行下一次循环操作,其作用类似于continue(java或C++)。
如果CHECK出现在循环以外,则发生作用时,退出的是当前执行的程序块(和RETURN一样)。
EXIT
EXIT如果出现在循环中,推出的是整个循环操作,程序会从循环结束处开始继续执行,其作用相当于java与c++中的break;
EXIT如果出现在循环之外,退出的是当前执行的程序块(和RETURN一样)。
RETURN
RETURN用来退出当前执行的程序块,例如一个FORM,METHOD或EVENT。不管是否出现在循环中,RETURN都会退出当前执行的程序块,而不仅仅是退出循环。
虽然ABAP中EXIT和RETURN都可以用来实现退出当前执行的语句块,但SAP的帮助文件建议只在循环中使用EXIT,其他情况下要退出当前执行进程,使用RETURN。
初始化内表有几种方式?
要初始化有或没有表头的内表,用REFRESH语句。
如果使用没有表格工作区域的内表,可以使用CLEAR。
如果使用有表头行的内表,CLEAR语句仅清除表格工作区域,要重置整个内表而不清除表格工作区域,使用REFRESH或CLEAR.
使用refresh或CLEAR初始化内表后,系统保持在内存中保留的空间。可以用FREE释放内存。
一个程序如何调用另一个程序?
调用其他可执行程序使用“SUBMIT+程序名”,使用WITH关键字,可传递选择画面参数。使用AND RETURN关键字,可在该程序执行完成后,自动返回调用它的程序。
在一个程序中如何调用其他事务代码?
调用其他事务代码使用“CALL TRANSACTION+事务代码”,使用AND SKIP FIRST SCREEN可以跳过第一个画面,进入下一个画面。
在进行画面跳转时,CALL SCREEN与LEAVE TO SCREEN的区别?
CALL SCREEN是将正在运行的画面挂起,进入所调用的画面,当使用LEAVE TO SCREEN 0时,能够返回原画面,可理解为嵌套调用;而LEAVE TO SCREEN是立即结束本画面的执行,调用所指定的画面,在调用画面中,无法再返回原画面。
MESSAGE消息有哪些类型和含义?如何自定义MESSAGE消息类?
A:abend,立刻终止当前事务,弹出终止对话框。
X: EXIT,立刻终止当前事务,进入DUMP的界面。
E:ERROR,画面的状态栏会弹出一个错误提示信息。
I:information,弹出一个消息对话框。
S:sure,画面的状态栏会弹出一个正确提示信息。
W:warn,画面的状态栏会弹出一个警告提示信息。
可以通过语句DISPLAY LIKE MTYPE 取代原错误图标;自定义MESSAGE消息类,通过事务代码SE91。
ABAP中,如何自定义异常类?如何捕捉异常?
通过事务代码SE24,在class type中,选择exception class即可定义,在TRY CATCH语句中就能够使用。
捕获异常:语法和java类似
TRY……CATCH异常类……ENDTRY.
什么是事务变式?事务变式有什么用?
事务变式是一组屏幕变式,用于预定义屏幕行为和默认值。通过使用变式功能,可以将用户不需要的字段,子屏幕及全屏幕从用户视图中取消。可以给任何输入字段设置默认值,字段也可以不用带“ready for input”状态。只能为对话和报表事务创建事务变式;变式中只能包含普通屏幕,子屏幕及对话屏幕。
开发人员可以使用GuiXT脚本语言通过事务变式维护对屏幕进行修改。修改屏幕布局的方式有:插入按钮,值帮助,移动对象,插入屏幕等。
PERFORM调用子程序时,分别对USING,TABLES,CHANGING3个参数有什么影响?
USING可以传入单值,工作区,加VALUE参数后只能使用,不能对值做修改,PERFORM结束后传入参数的值还是传入之前的状态。
TABLES只能传入一个内表,程序逻辑可以对其进行修改,PERFORM结束后内表的值是影响后的值。
CHANGING可以传入内表,单值,程序逻辑可以对其进行修改,PERFORM结束后传入参数的值是影响后的值。
注意,在传入工作区,单值的情况下,USING不加VALUE参数与CHANGING结果相同。
如何在程序间传送数据?
可以使用export语句在ABAP/4内存中存储数据字段簇。
语句为:EXPORT …TO MEMORY ID .
而调用程序就会检索数据。
语句为:IMPORT …FROM MEMORY ID
SAP和ABAP内存的区别?
读取时使用方法不同
SAP内存使用SET/GET parameters方法。
ABAP内存使用EXPORT和IMPORT方法。
共享范围不同
SAP内存可以被所有的主session访问,内存数据可以在同一个session中的不同程序或者不同session之间共享数据。
ABAP只能在同个session的不同程序之间共享数据。
作用范围不同
SAP内存在整个终端session时间内都有效。
ABAP内存只能在一个session时间内有效。
使用一般原则
SAP内存用于屏幕默认值输入。
ABAP内存用于模块之间传替数据。
应该技术
如何优化ABAP程序?
可通过运行事务代码SE30,运行待检查的程序,查看各操作的百分比。
避免在循环语句中使用SELECT语句,而是通过FOR ALL ENTRIES IN语句抽取数据到内表中。
通过运行事务代码SLIN进行扩展检查,根据SAP提供的反馈信息优化代码。
哈希表和排序表的注意事项是什么?
排序表与标准表相同,也具有一个逻辑索引,但其按关键字升序排序后进行存储,其访问方式和标准表一样。
哈希表没有索引,只能通过关键字来访问。系统用哈希算法管理表中的数据,因而其检索到一个数据行的时间与表的行数无关。
数据字典相关问题
两种锁类型:
共享锁——只读锁,该模式允许多个用户访问指定表行,但只能读访问。任何时候都不允许写访问。
排他锁定——该模式允许单个用户对指定表行进行读和写访问,其他用户不能访问该行。
扩展排他锁定——该模式避免具有读写访问权限的单个用户获得对相同表行集的进一步锁定。当使用递归例程更新时,该模式很有用。
批处理
什么是BDC(batch data communication)?简单介绍其流程?
BDC是SAP常用的一种数据传输方法。用于一些数据量大,但是对速度又要求不高的数据传输。
其流程大致分为如下几步:
提炼数据。
把提炼的数据转换到BDCDATA内表中。
根据BDC类型通过call transaction形式执行,或通过session形式执行,如果session执行成功,数据将被传送成功。
增强
什么是增强?
增强就是ERP系统中标准程序的出口,在该出口中由用户根据企业实际需求编写客户化逻辑代码。为什么会有出口呢?因为正常的业务系统不能满足实际需求,这时可以在出口增加一些功能,来达到要求,这也就是为什么它还叫增强。在SAP中,出口就是标准程序最后要调用的一个函数或者功能模块,这个函数或功能模块的输入已经由SAP定义好了。自己写的SAP出口程序在系统升级的时候会被保留,而更改标准程序则会在SAP系统升级的时候被覆盖。
接口
SAP有哪些外部接口及其内容?
SAP接口模式主要有RFC、BAPI、IDOC。
RFC:RFC是SAP系统和其他(SAP和非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是SAP ABAP系统。这种远程功能调用也可在同一系统内部进行,但通常情况下,调用程序和被调用程序处于不同系统中。
BAPI:BAPI实质上是一种特殊的、支持远程调用的业务对象方法,并通过远程支持的功能模块实现。BAPI支持同步与异步的数据通信过程,典型的BAPI功能包括业务对象的创建、属性的读取与更新操作。
IDOC:IDOC是SAP系统之间或SAP系统和外部系统之间电子数据交换的标准数据格式。通过IDOC接口可以实现SAP系统之间以及SAP系统和其他系统之间的数据交换。使用IDOC的应用必须能够写入或读取IDOC格式的数据。
文章来自于网络,如果侵犯了您的权益,请联系站长删除!