摘要: 在SAP的应用开发中,对于报表的效率是非常重视的。当然优化报表效率的方法有很多,当时当我们遇到需要处理大量数据的报表时会发现用尽所有优化的语句,报表的运行效率还是无法达到用户部门的需求。 下面,我介绍一种方法,也许会对你有所帮助。ABAP的并行处理(原理类似于java的多线程),它是通过RFC接口进行远程函数的异步调用实现程序的并处理。 同步/异步调用函数语法: 同步(sRFC):CALL FUNCTION'AAA' ; 同步调用的实质:程序进行单线程执行; 异步(aRFC):CALLFUNCTION'AAA'STARTINGNEWTASK"任务名称 阅读全文
posted @ 2014-03-17 20:28 封~ 阅读(10578) 评论(1) 推荐(1) 编辑
摘要: 在SAP中,经常需要自定义数据库表。而且可能需要人工维护数据库表中的数据,可以通过SM30进行维护数据;但是SM30事务的权限太大,不适宜将SM30直接分配;因此,可以通过给维护表分配事务代码,来达到控制权限的目的。通过下例,来展示大致的维护过程; 1、首先通过SE11,创建一个自建表,在‘Delivery and Maintenance’页签里,需要维护‘Date Browser/Table View Maint.’,如图1; (图1) 如果在这里不进行设个该选择项,则在使用SE16时,无法进行创建新条目的操作,如图1.1;在使用SM30时,也无法进行相应的操作,如图1.2; ... 阅读全文
posted @ 2014-03-16 14:09 封~ 阅读(17020) 评论(0) 推荐(1) 编辑
摘要: SAP 中可以通过配置数据库的链接,来完成从SAP链接到外部的数据库中进行处理数据,具体操作如下:1、先进入事务:DBCO,设置数据库链接。进入该事务后,如果系统已经有配置过类似链接则会出现在如下画面中,如图1:(图1)2、在该配置中的难点在于您使用的服务器类型,sap中提供多种选择,如图2:(图2)3、说其是难点,是因为不同的数据库类型,在‘链接信息’这栏填写的内容格式是不一样的,重点说明MSS和ORA(因为我只用到了这两种);a)、SQL Server这里的连接信息很接近 Sql Server 的连接字符串,但是参数名略有不同。指定主机IP、端口号、数据库名即可。b)、Oracelorac 阅读全文
posted @ 2014-03-16 13:44 封~ 阅读(8030) 评论(3) 推荐(2) 编辑
摘要: 外部断点的设置 在ABAP开发中不仅可以在SAP系统中对已知的程序进行设置断点(内部断点)来调试,还可以通过设置使SAP与外部调用系统(如:PLM、SRM、OA等)进行调试测试,前提是系统之间有相互的数据交互。实例如下: SRM系统与SAP之间有通过接口进行数据的交互,此时需要通过调试来检验数据交互的准确性,因此可以在对应的SAP接口代码里做如下设置: 在所在代码处:选择菜单栏的"Utilities"-->"Setting"(如图1), (图1) 在弹出的设置框中在“ABAP Editor”下的"Debugging"页签,选中“ 阅读全文
posted @ 2014-02-23 14:24 封~ 阅读(1400) 评论(0) 推荐(0) 编辑
摘要: 在ALV报表的开发过程中,通常含有数量或金额以及相应的单位数据,用户部门通常需要将其进行小计显示,方便核对,以下是在开发ALV报表中本人遇到的难题,最终得到解决,今记录在此,若他人有相同的需求,可以参考一下,若有出入请留言谢谢! 本人的要求是小计结果如下所示(该图是通过QUERY设置出来的结果): 为达到该效果,在程序中应该设置如下: 首先要确定一个字段,作为类似于SQL中的GROUP BY 的对象,本例子中设置父阶ID作为排序的关键字段:(如下图) 然后在ALV输出显示字段的设置中,将需要设置汇总的数量字段设置如下几个参数: (其中,重要的设置是qfieldname,该参数设置的是输... 阅读全文
posted @ 2013-02-19 10:18 封~ 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 通过上面三节,我们大致了解了ALV开发中与用户端直接交互的选择屏幕的开发。从这节开始,就进入ALV 的开发讲解咯。一、ALV简介 ALV--SAP LIST VIEWER 是SAP提供的一种报表方式。二、ALV开发 ALV 的开发可以通过多种方式实现,下面先讲以类型池SLIS为开头的AVL类型报表的开发。 2.1 SLIS 以这种方式开发的ALV 报表需要预先声明SLIS:Type-pools:slis. 在该类型池下会有相应的结构或表类型供我们参考调用,如下: SLIS_T_LISTHEADER:用于设置ALV的抬头信息的表结构; SLIS_FIELDCAT_ALV:用于设置ALV输出字段信 阅读全文
posted @ 2012-12-03 15:03 封~ 阅读(1770) 评论(0) 推荐(0) 编辑
摘要: 上节课讲了关于ALV报表的屏幕设计,这节课就根据上节课讲的内容分享几个自己在实际编程过程中的选择屏幕设计需求:(1)、需求内容:销售部门提出设计一个大客户体积维护的报表,该报表要具有以下的功能: 1>、通过售达方来创建大客户体积信息,该条件下只有一个售达方的输入 2>、可以根据售达方、客户物料编码及产品ID搜索已经存在的大客户信息,并进行更改3>、可以通过excel文档批量导入大客户信息 根据上述的需求,我设计出如下的选择屏幕(本节只讲解选择屏幕设计部分,不设计主程序的设计): 1、1 选择屏幕设计代码 1、2 修改选择屏幕的代码:(2)、需求内容:财务部门提出的公司间委托结 阅读全文
posted @ 2012-11-23 20:43 封~ 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 承接上一节,由于ALV报表通常有选择屏幕作为程序和用户之间的接口,所以这一节主要介绍一下选择屏幕。二、选择屏幕 选择屏幕上的各种元素是用程序语句生成的,而不是使用屏幕编辑器添加的。 1、选择屏幕的功能 *选择参数元素,用于单值输入 *复杂选择标准,可用于多值及范围的输入 *可为输入参数定义输入帮助(F1)及搜索帮助(F4) *可定义变式,保存常用的输入条件 2、选择屏幕元素 2.1 选择屏幕参数 (是最简单的选择屏幕元素,此种方式只接受单值输入,定义该参数时变量的长度不能超过8个字符) 定义格式: Parameters name TYPE/LIKE type/dobj <options& 阅读全文
posted @ 2012-11-18 16:51 封~ 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 本节开始介绍SAP报表开发中的一种常用报表-ALV.在讲解ALV报表前,先了解一下一些基本知识。一、事件1、ABAP是事件驱动程序,对于不包含自定义屏幕的普通报表,其代码结构主要中的主要处理块为报表事件块。因此,对于报表的开发,所有需要实现一定功能的代码都必须隶属于某个事件块。2、通常设计报表要通过选择屏幕的输入到相应的数据库表中获取数据得到报表,因此,报表设计又和选择屏幕事件联系在一起。3、事件分类: 1>.报表过程事件 INITIALIZATION:初始化事件,通常用于选择屏幕中字段默认值填充等. START-OF-SELECTION:选择开始事件,通常在该事件中进行数据逻辑的处理。 阅读全文
posted @ 2012-11-15 20:21 封~ 阅读(614) 评论(0) 推荐(0) 编辑
摘要: ALV---长文本的使用。在实际的公司业务中,往往有这样的需求:需要相关岗位的人员手工从ALV报表中输入某些相关的信息,并存到相应的自建表中或在后续的表单中打印出相关的信息,如销售中的供应商需求、备注等;但是当当将ALV报表的字段设置为可编辑状态并不能满足其需求,因此使用SAP系统提供的长文本技术就可以满足上述需求。在SAP系统中有丰富而有用的函数供我们调用,而长文本技术的实现就是通过调用SAP系统中已经存在的函数:Read_Text和Edit_Text来实现的。首先,调用Edit_Text函数,通过该函数可以进行文本编辑并保存。调用函数,要定义及填充相应的输入、输出参数:例1:其中:工作区l 阅读全文
posted @ 2012-06-05 23:31 封~ 阅读(636) 评论(0) 推荐(0) 编辑