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常用的几种解决方案及其区别。

查看明细…

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格式抬头内容信息

查看明细…

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.

查看明细…

ABAP 开发系列(08): SAP Open SQL

在前面我们介绍ABAP WorkBench时了解到 SAP 的三层架构:

表现层(Presentation),应用层(Application),数据层(Database)

Open SQL就发生在 Application 和 Database 之间;

SAP Application将发送的Open SQL请求,与Database进行匹配,转换成接受的SQL语句,

DB再执行SQL,将结果返回给Application。

 
查看明细…

ABAP 四舍五入函数

ABAP 中处理数据的函数方法很多,其中涉及到四舍五入的有两个(可能还有更多):ROUNDHR_NZ_ROUNDING_DECIMALS

前者位于Basis功能开发包 SZME 里面,在标准中用于计量单位的计算;

后者主要用于HR模块,位于 PB43 开发包,处理HR模块中的主数据。

 
查看明细…

ABAP 开发系列(07): 模块化 – 子程序

4. 模块化(Modularization)

ABAP 主要有三种模块单元:

1).Event:事件
2).Subroutine子程序
3).Function module:功能模块

这里主要讲解的是第2种模块单元: ABAP子程序 (Subroutine)

它是包含在程序中的一段功能代码,单独作为一个小程序封装并包含在主程序中;

特别是主程序中多次用到的代码,可以抽离出来,放在子程序中,方便多次使用。

以便于分析与简化代码可读性,更主要的是能便于程序的维护。

 
查看明细…

ABAP 开发系列(06): ABAP 控制语句

3. 控制语句

ABAP语言的掌握到一定程序后,会处理一些复杂的内容,而SAP的数据流控制中,更有很多复杂的逻辑操作。

这时候需要一些手段来管理和组织这些项目,ABAP的分支结构,如 if,case;循环操作,如 Do,While 等。

以便程序按照所需要的逻辑处理相应的任务。

 
查看明细…

ABAP 开发系列(05): ABAP 内表与内表结构

2.内表和内表结构

2.1  结构体(Structure)

2.1.1 结构体的定义

ABAP 中可以定义结构来包含多个基本类型,便于整理及操作;

结构体不属于数据字典对象(数据字典中可以定义结构体,但不能存储数据),在程序运行时会被作为临时对象存储在内存空间;

在创建内表时,可参考直接定义的结构体作为内表结构

结构体的定义,可以通过两种方式实现:

 

查看明细…

ABAP 开发系列(03): ABAP Selection Screens

用户与SAP数据之间的通信交互是通过对屏幕的操作来实现的,如:数据报表,业务功能操作等,而SAP的屏幕开发一般分为两种:

1.  通过SAP ABAP语法创建屏幕元素,称之为Selection Screen(选择屏幕);

2.  通过SAP的屏幕编辑器开发,称之为Dialog(对话框屏幕),通过屏幕编辑器可以实现数据的多种展现模式。

abap_03_Selection_Screen

本文主要 讲述的是第一种屏幕开发的内容(选择屏幕):

1. 屏幕基本元素

2. 屏幕输入值控制

3. 屏幕事件(ABAP Event)

4. 屏幕对象的F1/F4功能

5. SAP屏幕框架

查看明细…