SAP

ABAP 开发系列文章

从事ABAP开发也有好些年了,很多知识总是会不经意间从我们脑海中溜走;重温了下以前的一些知识,

觉得有必要记录下过去的所学,也好让初学者了解下ABAP开发;

当然,网络上也有很多关于这方面的内容,这里仅仅记录我在工作中用到的,用过的知识,整理出来的一些学习笔记。

其中文章基本为原创,只是有些可能会参考网络的内容,本系列文章会不断更新,也希望自己能有毅力能够写完。

 

本系列内容包括:

[01]. ABAP Development Workbench(上)- SAP概述及ABAP开发环境

导读:作为开篇,简单介绍下SAP 的相关概念和 ABAP 的开发环境。

[02]. ABAP Development Workbench(下)- ABAP 调试器

导读:ABAP开发环境中,ABAP 调试器的运用。

查看明细…

SAP Bar Code 开发(03) – 后台作业任务实现条码编号归零

Barcode开发中,条码标签内容都可以通过客户自定义编制;

通常情况下,流水号的编码都可以通过SAP的编码范围(Number Range)生成;

只是通常流水号都需要通过日期来生成,后面带出从数字1开始的流水,而对于SAP的number range来说,只能不断累加,不能倒退;

因此,要实现每天归零操作,可以通过录制 BDC 实现归零操作,再将实现 BDC 的程序扔向后台任务,固定每天 00:00 执行任务。

查看明细…

SAP Bar Code 开发(02) – 条码生成与输出打印

上篇文章中讲述了SAP Bar Code的几种解决方案;

而本文主要讲述条码的格式类型及其SAP提供的条码格式打印;

 

1. 条码类型与码制

对于条码的类型估计都很熟悉,主要分为一维码和二维码;

然而,条码的码制却是有众多格式,如:

一维码:Code-39、Code-93、 Code-128等

二维码:PDF-417、Data Matrix、Maxi Code、QR Code、Code-49、Code-16K等

查看明细…

SAP Bar Code 开发(01) – SAP条码解决方案

前段时间,需要对客户进行售前工作,整理下Barcode相关的PPT,加上之前也开发过几个Barcode的项目,于是整理了下相关内容,就有了这个系列。

相信很多朋友对Barcode(即条码)都不陌生,在企业生产管理当中的使用,非常频繁;

同时SAP也提供了几种解决方案供用户选择。下面简述下SAP Barcode常用的几种解决方案及其区别。

查看明细…

抓取SAP报表ALV GRID上的数据

在开发的产销存报表的过程中,由于数据量过大,且取数逻辑太过于复杂,导致报表性能上很缓慢;

后来业务顾问要求直接在MB5B上取数,一开始有点纳闷,怎么从标准报表上取数。

于是从网络上搜索相关资料发现还真有,即将其转摘下来,以做备用。

查看明细…

SAP维护视图(2)-表维护视图事件处理

1. 前言

上篇文章简单介绍了表维护视图的生成,也提及到视图事件的扩展,这里主要讲述也是关于视图的事件处理。

当为表生成了维护视图后,在用户操作体验时,总是会出现一些很莫名的需求;

然而很多时候明明在维护视图上能做到,但往往却退而求其次的额外开发新的程序去维护数据。

不仅浪费时间又浪费资源,会出现这种尴尬的情况,主要还是对表维护生成器的不熟悉导致的。

查看明细…

SAP维护视图(1)-生成表维护视图

1. 前言

SAP中由于数据量较大,很多Add-On表都需要通过用户自行维护,一般可以直接在SE16N 数据字典上直接维护数据;

但不是每个用户都有其操作权限,而且直接在数据字典上操作数据也有所危险;

因此SAP提供了表维护视图生成器,解决了这一难题;

可以通过对数据表直接生成维护视图,然后可以在维护视图上直接维护数据。

 
查看明细…

自定义ALV Grid 通用模板(ALV Grid Template)

ALV 通用模板

在项目中,如若定制的Report开发量较大时,ALV的通用模板则能起到相应的作用;

如若需要开发的Report较少时,还是不适宜用该模板;

 

1.添加自定义 ALV 工具栏

首先,需要为ALV模板创建标准工具栏,新建Function Module:ZCA_ALV_PRINT_SELECTION

然后,通过标准程序拷贝相应的ALV工具栏;

具体操作可以查看前面笔者的愚作:《REUSE_ALV_GRID_DISPLAY_LVC函数输入参数属性的应用》中自定义工具栏的内容。

查看明细…

REUSE_ALV_GRID_DISPLAY_LVC函数输入参数属性的应用

前面我们讲过,ALV Grid 函数的输出有两个:REUSE_ALV_GRID_DISPLAY 和 REUSE_ALV_GRID_DISPLAY_LVC

两者的操作大同小异,只是后者能更好的和ALV容器结合使用,前后则不能;而在输入参数属性的结构上也有些差异。

本篇文章主要讲解下ALV函数中输入参数的一些应用。

 

首先了解下ALV函数输入参数的作用(粗体为常用参数):

I_INTERFACE_CHECK: 检查接口一致性

I_BYPASSING_BUFFER: 是否使用缓存

I_BUFFER_ACTIVE:是否激活缓存,如果每次显示ALV都是相同的字段目录,则该字段目录会被放到一特殊的缓存里,加快显示速度。

I_CALLBACK_PROGRAM:调用ALV的程序名称

I_CALLBACK_PF_STATUS_SET:ALV工具栏Subroutine(子程序)

I_CALLBACK_USER_COMMAND:ALV User Command Subroutine(子程序),实现对应菜单项及相应事件功能

I_CALLBACK_TOP_OF_PAGE:ALV抬头内容信息

I_CALLBACK_HTML_TOP_OF_PAGE:ALV HTML格式抬头内容信息

查看明细…

ALV FIELDCAT添加属性 – REUSE_ALV_FIELDCATALOG_MERGE函数

在上篇文章中,介绍了ALV的两个输出函数,及其 Layout 和 Fieldcat 的相关属性;

在 ALV 定义 Fieldcat 的时候,我们往往需要通过 slis_fieldcat_alv 的赋值给Fieldcat导入结构。

如上篇文章中给出的例子:


DATA: wa_fieldcat TYPE slis_fieldcat_alv ,    
      i_fieldcat  TYPE slis_t_fieldcat_alv ,   
      i_layout    TYPE slis_layout_alv.

wa_fieldcat-tabname     = 'I_TAB'.
wa_fieldcat-fieldname   = 'MATNR'.        " 需要输出的内表的字段名
wa_fieldcat-seltext_l   = 'Material NO.'. " 字段的描述-长字段标签
wa_fieldcat-seltext_m   = 'Material NO.'. " 字段描述-中字段标签
wa_fieldcat-seltext_s   = 'Material NO.'. " 字段描述-短字段标签
wa_fieldcat-fix_column  = 'X' .           " 是否是固定列

APPEND wa_fieldcat TO i_fieldcat.
CLEAR  wa_fieldcat.

查看明细…

ALV简介和Fieldcat与Layout相关参数属性

1.ALV简介

2.ALV报表开发的相关参数及属性

3.Layout的相关属性

4.Fieldcat的相关属性

5.调用ALV输出函数

 

1.ALV简介

ALV(SAP List Viewer) 是SAP常用的屏幕显示列表控件对象,通过传递数据内表方式显示数据;

ALV显示格式分为Grid 和 List两种模式:

Grid模式有栏位选择按钮功能,允许用户直接输出格式,操作更为灵活;

List 模式则固定格式,应用于较严格的标准报表。

查看明细…

VF01 开票BAPI :BAPI_BILLINGDOC_CREATEMULTIPLE

需求:合并开票
同一种发票类型的开在一张发票上,不同类型的发票类型开在不同发票上;
即:同一客户、销售组织、开票类型的结算单,开在同一张发票上。

也可以通过 VF04 合并开票。
如若通过BAPI,则可以通过 BAPI_BILLINGDOC_CREATEMULTIPLE 开票:

查看明细…

FOR ALL ENTRIES 优化

该语法在生成 Native SQL 时会根据内表数据将 Open SQL 拆分成多条在数据库中执行,在内表数据量较大的时候会发生性能问题.

优化 FOR ALL ENTRIES 可以在全局配置参数文件;

针对单独的程序可以使用 HINT 语句 覆盖参数文件的值。

 
查看明细…

SAP 基本单位与物料计量单位间的转换

基本单位的转换函数

UNIT_CONVERSION_SIMPLE  - 基本单位间的转换(如:1MIN = 60S)

物料单位转换的两个函数

1) MD_CONVERT_MATERIAL_UNIT  -  计量单位之间转换(如:每PCS 等于多少 SET)

2) MATERIAL_UNIT_CONVERSION  - 每基本单位等于多少计量单位(如:KG),如果KZMEINH = ‘X’ 则为每计量单位等于多少基本单位

 
查看明细…

生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT

生产完成后,需要对产品进行完工确认(也叫 报工确认);

一般情况下,可以通过事务码(T-Code)CO11CO11N 进行确认。

 

对于一些零配件的生产时,往往需要确认大量的数量,因而有些用户就会有批量报工的需求。

批量报工可以通过两种方式实现:录制BDC 或者 Call 系统标准 BAPI

1) 录制BDC这里就不讲述了,直接在CO11N上录屏即可;

2) Call 系统标准 BAPIBAPI_PRODORDCONF_CREATE_TT.

查看明细…