SAP的批输入并不复杂,本程序比较精采的是利用特殊的屏幕跳转移动,解决了在不同分辨率的机器上批输入参数不同的问题。值得参考。
REPORT ZJP NO STANDARD PAGE HEADING LINE-SIZE 95 MESSAGE-ID Z1.
*&---------------------------------------------------------------------&
* For CPZX Only Programmed by Paul Feng(FQ)
* Created Date 2003.06.20
* Last Modify 2004.12.10
*&---------------------------------------------------------------------&
TABLES: LIKP,LIPS,VBUP.
DATA: BEGIN OF RECORD OCCURS 0,
VBELN(010),
MATNR(018),
LFIMG(013),
PIKMG(017),
end of record.
DATA: SENDTO(10),
LGORT(004).
INCLUDE <ICON>.
include bdcrecx1.
SELECTION-SCREEN BEGIN OF BLOCK JHD WITH FRAME TITLE TEXT-001.
PARAMETERS: JHD(10) OBLIGATORY.
*SELECTION-SCREEN SKIP 8.
SELECTION-SCREEN END OF BLOCK JHD.
INITIALIZATION.
GET PARAMETER ID 'ZMM' FIELD GROUP.
start-of-selection.
DATA: N(4) TYPE N, LINE(2) TYPE N, JUMP TYPE N.
CONDENSE JHD NO-GAPS.
N = 10 - STRLEN( JHD ).
IF N NE 0.
DO N TIMES.
CONCATENATE '0' JHD INTO JHD.
ENDDO.
ENDIF.
SELECT SINGLE * FROM LIKP WHERE VBELN EQ JHD.
IF SY-SUBRC >< 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE:/ ICON_INCOMPLETE AS ICON,
'交货单' ,JHD COLOR 2,'不存在!' .
STOP.
ELSE.
SENDTO = LIKP-KUNNR.
ENDIF.
CLEAR LIKP.
SELECT * FROM VBUP WHERE VBELN EQ JHD AND KOSTA EQ 'C'.
IF SY-SUBRC EQ 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE:/ ICON_MESSAGE_CRITICAL_SMALL AS ICON,
'交货单',JHD COLOR 2,'已经被拣配!请检查。'.
STOP.
ENDIF.
ENDSELECT.
CLEAR VBUP.
CASE SENDTO.
WHEN '0000004001'.
LGORT = '0800'.
WHEN '0000004002'.
LGORT = '0801'.
WHEN '0000004007'.
LGORT = '0808'.
WHEN '0000004008'.
LGORT = '0809'.
WHEN OTHERS.
WRITE:/ ICON_MESSAGE_WARNING_SMALL AS ICON,
'交货单中“送达方”错误!请检查。' COLOR 6 INVERSE.
STOP.
ENDCASE.
SELECT * FROM LIPS WHERE VBELN EQ JHD.
RECORD-VBELN = LIPS-VBELN.
RECORD-MATNR = LIPS-MATNR.
RECORD-LFIMG = LIPS-LFIMG.
RECORD-PIKMG = LIPS-LFIMG. "按交货数拣配
APPEND RECORD.
ENDSELECT.
CLEAR LIPS.
DESCRIBE TABLE RECORD LINES N.
IF N EQ 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE: ICON_SYSTEM_HELP AS ICON,
'交货单',JHD COLOR 2,'中没有可供拣配的行项目!'.
STOP.
ENDIF.
DATA: FLAG TYPE N VALUE 0.
PERFORM CHECKKC TABLES RECORD USING FLAG.
IF FLAG EQ 1.
CLEAR RECORD.
STOP.
ENDIF.
perform open_group.
perform bdc_dynpro using 'SAPMV50A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'LIKP-VBELN'.
perform bdc_field using 'BDC_OKCODE'
'=UEKO'.
PERFORM BDC_FIELD USING 'LIKP-VBELN'
RECORD-VBELN.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.
LINE = 0.
N = 0.
JUMP = 0.
DATA : JUMPTO(4) TYPE C.
LOOP AT RECORD.
LINE = LINE + 1.
N = N + 10.
IF JUMP EQ 1.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=POPO'.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '0111'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV50A-POSNR'.
JUMPTO = N.
SHIFT JUMPTO LEFT DELETING LEADING '0'.
PERFORM BDC_FIELD USING 'RV50A-POSNR'
JUMPTO.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.
JUMP = 0.
ENDIF.
DATA: F1(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F1.
PERFORM BDC_FIELD USING 'BDC_CURSOR' F1.
* 'LIPSD-PIKMG(01)'.
perform bdc_field using 'BDC_OKCODE'
'=UEKO'.
DATA: F2(18).
CONCATENATE 'LIPS-LGORT(' LINE ')' INTO F2.
PERFORM BDC_FIELD USING F2 " 'LIPS-LGORT(01)'
LGORT.
DATA: F3(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F3.
PERFORM BDC_FIELD USING F3 " 'LIPSD-PIKMG(01)'
RECORD-PIKMG.
CHECK LINE EQ 12.
LINE = 0.
JUMP = 1.
ENDLOOP.
CLEAR F1.
CLEAR F2.
CLEAR F3.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WABU'.
PERFORM BDC_TRANSACTION USING 'VL02'.
perform close_group.
REFRESH RECORD.
CLEAR RECORD.
SHIFT JHD LEFT DELETING LEADING '0'.
ULINE.
N = N DIV 10.
WRITE: / ICON_GREEN_LIGHT AS ICON,
'交货单', JHD , '成功拣配!会话条目共:', N , '项!'.
WRITE: / ICON_GREEN_LIGHT AS ICON,
'会话名称:',GROUP COLOR 4 INTENSIFIED.
SET PF-STATUS '100'.
AT USER-COMMAND.
IF SY-UCOMM EQ 'EXECUTE'.
SUBMIT RSBDCSUB WITH MAPPE = GROUP WITH VON = SY-DATUM WITH
BIS = SY-DATUM WITH Z_VERARB = 'X'
WITH FEHLER = ''.
ENDIF.
*&---------------------------------------------------------------------*
*& Form CHECKKC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_RECORD text
* <--P_FLAG text
*----------------------------------------------------------------------*
FORM CHECKKC TABLES P_RECORD STRUCTURE RECORD USING P_FLAG.
TABLES: MARD.
DATA: ERRMESS(90) TYPE C.
LOOP AT RECORD.
SELECT SINGLE * FROM MARD WHERE MATNR EQ RECORD-MATNR AND
WERKS EQ '2010' AND
LGORT EQ LGORT.
IF SY-SUBRC EQ 0.
IF MARD-LABST < RECORD-LFIMG.
IF P_FLAG EQ 0.
MOVE 1 TO P_FLAG.
WRITE:/ ICON_MESSAGE_WARNING AS ICON,
'交货单需求项目不足' COLOR 3 INTENSIFIED OFF.
ULINE.
ENDIF.
ERRMESS = P_RECORD-MATNR.
SHIFT ERRMESS LEFT DELETING LEADING '0'.
CONDENSE ERRMESS NO-GAPS.
CONCATENATE '物料:' ERRMESS ' 在工厂:2010 库存地:' LGORT
' 数量不足!' INTO ERRMESS.
WRITE: / ICON_INCOMPLETE AS ICON, ERRMESS
COLOR 5 INTENSIFIED OFF.
ENDIF.
ELSE.
IF P_FLAG EQ 0.
MOVE 1 TO P_FLAG.
WRITE:/ ICON_MESSAGE_WARNING AS ICON,
'交货单需求项目不足' COLOR 3 INTENSIFIED OFF.
ULINE.
ENDIF.
ERRMESS = P_RECORD-MATNR.
SHIFT ERRMESS LEFT DELETING LEADING '0'.
CONDENSE ERRMESS NO-GAPS.
CONCATENATE '物料:' ERRMESS ' 在工厂:2010 库存地:' LGORT
' 不存在!' INTO ERRMESS.
WRITE:/ ICON_MESSAGE_ERROR_SMALL AS ICON,ERRMESS COLOR 2.
ENDIF.
ENDLOOP.
CLEAR ERRMESS.
CLEAR MARD.
ENDFORM. " CHECKKC
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Jhzyz/archive/2006/02/15/599824.aspx
分享到:
相关推荐
标题"BDC.rar_bdc.youzack_com_单词_背单词"揭示了这是一个与英语学习相关的压缩文件,可能包含一个名为"BDC"的应用程序或工具,由youzack.com开发,专为帮助用户背诵单词设计。这个工具利用金山词霸的界面,使用户...
### SAP BDC技术详解 #### 一、BDC技术概述 **SAP BDC (Batch Data Conversion)** 技术主要用于批量处理数据录入任务,尤其是在需要重复执行相同操作但涉及的数据不同的场景下。例如,在切换系统时,需要将旧系统...
SAP BDC精华教程 本资源摘要信息将详细介绍SAP BDC(Batch Data Conversion)技术,包括BDC的概念、应用场景、技术原理、编程步骤及实践示例。 BDC概念 BDC是一种SAP系统中的数据批量处理技术,用于将外部数据源...
### BDC数据导入简介 #### 一、BDC(Business Data Creator)概述 BDC,全称为Business Data Creator,是SAP系统中的一个重要组件,主要用于自动化处理数据输入任务。通过BDC,用户可以创建一系列标准化的数据输入...
【BDC资料 数据导入工具_BDC使用方法】 BDC(Batch Input Communication)是SAP系统中用于批量数据导入的关键技术,也称为批输入。它允许用户高效地输入大量数据到SAP系统,尤其适用于需要频繁处理大批量业务数据的...
ABAP BDC 操作 ABAP BDC 操作是 SAP 系统中的一种批量数据输入机制,通过模拟事务处理将数据录入 R/3 系统。BDC 类似 SAP 的 CATT,控制性更好,处理能力更强。下面是一个简单的 BDC 实例,包含全部操作过程。 ...
### SAP BDC开发详解 #### 一、SAP BDC技术概述 SAP Business Data Cooperation (BDC) 是一种用于批量或自动化数据录入SAP系统的工具。它通过模拟用户交互来执行事务处理,从而实现数据的批量输入。BDC不仅能够...
SAP BDC录屏技术 本文将详细介绍SAP BDC录屏技术的应用操作,旨在帮助读者快速掌握BDC的使用方法,并能够轻松实现业务顾问的录屏操作。 什么是BDC? BDC是Batch Data Conversion的简称,对应的事物码是SHDB,是一...
【BDC技术详解】 BDC(Batch Data Conversion)是SAP系统中用于批量数据转换的一种技术,主要用于自动化处理大量重复性的数据输入任务。在企业信息化过程中,如系统切换、数据迁移或常规的数据更新等场景,BDC技术...
在本课程中,我们将深入探讨SAP ABAP中的批量数据通信(Batch Data Communication,简称BDC)技术。BDC是SAP系统中一种用于大量数据输入的高效工具,尤其适用于将外部数据导入到SAP系统中。在SAP ABAP开发的学习过程...
SAP BDC技术举例讲解 在SAP系统中,BDC(Batch Data Conversion)技术是一种重要的技术,它可以使用户快速地批量处理数据。下面我们将通过一个实例来讲解BDC技术的应用。 在SAP系统中,BDC技术可以使用户快速地...
SAP BDC与LSMW介绍 SAP BDC(Batch Data Conversion)是SAP系统中的一种批量数据转换机制,用于自动化大量重复的数据输入操作。BDC可以模拟人工操作,快速、重复地执行数据输入任务,减少人工操作的时间和劳动强度...
### SAP BDC(Batch Data Conversion)学习导入教程详解 #### 一、SAP BDC概念与应用场景 SAP BDC,即Batch Data Conversion,是一种在SAP系统中用于批量数据导入的技术。它允许用户通过录制特定的事务处理过程,...
标题:“abap bdc 例子” 描述:“简单的BDC实例,有助于理解BDC的作用。” 从提供的文件信息中,我们可以深入探讨ABAP中的BDC(Batch Input or Business Data Capture)概念及其应用实例。BDC是SAP ABAP环境中...
SAP BDC与LSMW介绍 SAP BDC(Batch Data Conversion)是一种批量数据转换机制,允许用户快速、重复地模拟人工操作,以解决大量数据输入问题。在SAP系统中,BDC扮演着重要角色,可以大量、重复地模拟人工操作,避免...
**BDC技术详解** BDC(Batch Data Conversion)是SAP系统中用于批量数据转换的一种技术,主要用于在大量数据需要录入或更新时自动化处理。在SAP系统中,当需要重复进行相同操作但数据不同的场景时,如系统切换时旧...
### SAP BDC技术详解 #### 一、BDC技术概述 在SAP系统中,**BDC (Batch Data Conversion)**技术被广泛应用于批量数据处理场景,尤其当需要将大量历史数据或外部系统的数据导入到SAP系统时。通过BDC技术,用户可以...