`

使用Batch Input Session来实现BDC(转)

    博客分类:
  • sap
 
阅读更多
data:

ls_bdc like bdcdata,

lt_bdc like standard table of bdcdata.


data:

w_session LIKE APQI-GROUPID value 'SESSION1-54' .


start-of-selection.


*1. Open one Batch input session

  WRITE: / '1st step', 'Open Batch Input session'.

  CALL FUNCTION 'BDC_OPEN_GROUP'

  EXPORTING

  CLIENT = SY-MANDT

* DEST = FILLER8

  GROUP = w_session

* HOLDDATE = FILLER8

  KEEP = 'X'

  USER = SY-UNAME

* RECORD = FILLER1

* PROG = SY-CPROG

* IMPORTING

* QID =

  EXCEPTIONS

  CLIENT_INVALID = 1

  DESTINATION_INVALID = 2

  GROUP_INVALID = 3

  GROUP_IS_LOCKED = 4

  HOLDDATE_INVALID = 5

  INTERNAL_ERROR = 6

  QUEUE_ERROR = 7

  RUNNING = 8

  SYSTEM_LOCK_ERROR = 9

  USER_INVALID = 10

  OTHERS = 11

  .

  IF SY-SUBRC = 0.

    WRITE: / 'Batch input session –', w_session, '– opened'.

  ELSE.

    WRITE: / 'Error opening session - SY-SUBRC =', SY-SUBRC.

  ENDIF.


*2. filling BDC table

  perform fill_bdc_tab.


*3. output the data

  ULINE /5(65).

  WRITE:/5 'Program',

  15 'Screen',

  25 'New Screen',

  40 'Field Name',

  55 'Field Value'.

  LOOP AT lt_bdc into ls_bdc.

    WRITE: /5 ls_bdc-PROGRAM,

    15 ls_bdc-DYNPRO,

    30 ls_bdc-DYNBEGIN,

    40 ls_bdc-FNAM,

    55 ls_bdc-FVAL.

  ENDLOOP.


*4. insert BDC transaction

  ULINE /5(65).

  WRITE: / '2nd step', 'Insert BDC transaction'.

  CALL FUNCTION 'BDC_INSERT'

  EXPORTING

  TCODE = 'FK01'

* POST_LOCAL = NOVBLOCAL

* PRINTING = NOPRINT

* SIMUBATCH = ‘ ‘

* CTUPARAMS = ‘ ‘

  TABLES

  DYNPROTAB = lt_bdc

  EXCEPTIONS

  INTERNAL_ERROR = 1

  NOT_OPEN = 2

  QUEUE_ERROR = 3

  TCODE_INVALID = 4

  PRINTING_INVALID = 5

  POSTING_INVALID = 6

  OTHERS = 7

  .

  IF SY-SUBRC = 0.

    WRITE: / 'Vendor: ”TEST1”', 'inserted into session'.

  ELSE.

    WRITE: / 'Error inserting', 'Vendor: ”TEST1”', 'SY-SUBRC =', SY-SUBRC.

  ENDIF.


  "如果有多个transaction需要执行,那么需要就要重新的BDC table,再调用bdc_insert



*5. close BDC transaction

  ULINE /5(65).

  WRITE: / '3rd step', 'close BDC transaction'.

  CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
      NOT_OPEN    = 1
      QUEUE_ERROR = 2
      OTHERS      = 3.

  IF SY-SUBRC = 0.

    WRITE: / 'Batch input session –', w_session, '– closed'.

  ELSE.

    WRITE: / 'Error closing session - SY-SUBRC =', SY-SUBRC.

  ENDIF.


*&———————————————————————*

*& Form fill_bdc_tab

*&———————————————————————*

* Fill BDC data

*———————————————————————-*

FORM fill_bdc_tab .


* clear bdc

  refresh:lt_bdc.


* fill BDC

  perform populate_bdc_tab using:

  '1' 'SAPMF02K' '0105', " initial create vendor screen

  ' ' 'BDC_CURSOR' 'RF02K-KTOKK',

  ' ' 'RF02K-LIFNR' 'TEST1',

  ' ' 'RF02K-BUKRS' '0001', "Company code

  ' ' 'RF02K-KTOKK' 'ZTMM', "Account group

  ' ' 'BDC_OKCODE' '/00',


  '1' 'SAPMF02K' '0110',

  ' ' 'BDC_CURSOR' 'LFA1-LAND1',

  ' ' 'LFA1-NAME1' 'tang',

  ' ' 'LFA1-SORTL' 'can',

  ' ' 'LFA1-LAND1' 'CN',

  ' ' 'LFA1-ANRED' 'Mr.Tang',

' ' 'LFA1-SPRAS' 'EN',

' ' 'BDC_OKCODE' '/00',


'1' 'SAPMF02K' '0120',

' ' 'BDC_OKCODE' '=UPDA',

' ' 'BDC_CURSOR' 'LFA1-KUNNR',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-ST',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-01',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-02',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-03',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-04',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-05',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-06',


'1' 'SAPMF02K' '0210',

' ' 'BDC_CURSOR' 'LFB1-AKONT',

' ' 'LFB1-AKONT' '197100',

' ' 'BDC_OKCODE' '=UPDA'.


ENDFORM.                    "fill_bdc_tab
" fill_bdc_tab

*&———————————————————————*

*& Form populate_bdc_tab

*&———————————————————————*

* fill data to bdc

*———————————————————————-*

* –>P_0024 text

* –>P_0025 text

* –>P_0026 text

*———————————————————————-*

FORM populate_bdc_tab USING FLAG type char1

VAR1 type any

VAR2 type any.


CLEAR ls_bdc.

if flag = '1'.

  ls_bdc-program = var1.

  ls_bdc-dynpro = var2.

  ls_bdc-dynbegin = 'X'.

else.

  ls_bdc-fnam = var1.

  ls_bdc-fval = var2.

endif.


APPEND ls_bdc to lt_bdc.


ENDFORM.                    "fill_bdc_tab
"populate_bdc_tab

原文地址:http://scnblogs.techweb.com.cn/tcsapbw/archives/379.html
分享到:
评论

相关推荐

    BDC BATCH INPUT 技术详解 (有图)

    BDC 技术的实现过程主要分为两步:首先,使用 T-code:SHDB 记录用户的一次业务操作的所有过程,然后,使用该记录生成一个程序,通过该程序来模拟用户的操作,实现自动化数据输入。 使用 BDC 技术编程时,有以下几...

    ABAP_100_道面试题

    本文总结了 ABAP 100 道面试题,涵盖了 ABAP 程序的结构、 Field Symbols 和 Field Groups、BDC 程序、Batch Input Session 等方面的知识点。 一、ABAP 程序的结构 ABAP 程序的典型结构包括 HEADER、BODY 和 ...

    SAP_恶魔_ABAP_Batch Input应用_狂套

    #### 第四章 使用 BDC 制作 Batch Input ##### 第一节 BDC 的流程示意图 BDC (Business Dialog Control) 的工作流程包括以下几个关键步骤: 1. **准备阶段**:明确需要执行的业务流程和数据。 2. **录制屏幕操作*...

    BDC资料 数据导入工具_BDC使用方法

    BDC(Batch Input Communication)是SAP系统中用于批量数据导入的关键技术,也称为批输入。它允许用户高效地输入大量数据到SAP系统,尤其适用于需要频繁处理大批量业务数据的情况。BDC通过录制、编辑和执行一系列...

    LSMW using batch input

    标题:LSMW using batch input 描述:使用LSMW将客户主数据导入到SAP系统中,包括创建Project/Subproject/Object、维护对象属性、维护源结构、维护源字段、维护结构关系、维护字段映射和转换规则、维护固定值、...

    SAP BDC开发讲解

    通过上述步骤,我们可以有效地利用SAP BDC技术来实现数据的批量输入或业务流程的自动化处理。这对于提高工作效率、减少错误以及增强系统的整体功能具有重要意义。在实际应用中,还需要结合具体的业务需求和技术细节...

    SAP Batch Iuput

    以下将详细介绍如何使用SAP Batch Input进行数据导入以及其工作原理。 1. **创建批输入记录** 使用T-CODE "SHDB"可以启动事务记录器,记录需要批量导入的数据处理步骤。例如,若要修改订单,首先启动SHDB,创建一...

    quartz整合springbatch动态集群定时实现mysql参考

    在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...

    BDC技术(Batch Data Conversion):

    BDC技术,全称为Batch Data Conversion,是一种在SAP系统中用于批量转换和输入数据的方法。在企业运营中,尤其是在系统切换或数据迁移时,BDC技术显得尤为重要,因为它能够高效地处理大量重复性的数据录入任务,从而...

    sap bdc 使用

    BDC(Batch Input Communication)即批输入通信,是SAP系统中一种重要的数据传输技术,它允许用户批量地将数据输入到SAP系统中。通过BDC技术,可以避免手动录入大量重复数据所带来的效率低下问题以及可能的人为错误...

    SAP中使用LSMW导入数据

    Create Batch Input Session Run Batch Input Session Analyze Erroneous Transactions Start Direct Input Program Start IDoc Generation Start IDoc Processing Create IDoc Overview Start IDoc Follow-Up Frame...

    SAP BDC精华教程

    本资源摘要信息将详细介绍SAP BDC(Batch Data Conversion)技术,包括BDC的概念、应用场景、技术原理、编程步骤及实践示例。 BDC概念 BDC是一种SAP系统中的数据批量处理技术,用于将外部数据源(如TXT、Excel等)...

    LSMW 录屏批量上载操作手册(Batch Input Recording方式)

    今天,我们将围绕 LSMW 录屏批量上载操作手册(Batch Input Recording 方式)这个主题,详细讲解 LSMW 的使用方法和操作步骤。 步骤一:创建 Project 和 Subproject 首先,我们需要进入 LSMW 模块界面,输入事务...

    ABAP BDC的使用

    我们可以使用 BDC 技术来实现这个需求。 首先,我们需要录制一个交易代码 MM02,用于修改物料描述。然后,我们可以使用 BDC 技术来自动化这个过程。在录制过程中,我们需要输入物料编号和描述,然后点击“SAVE”...

    batch_HDF投影_hdf转tif_格式转换_IDl_批处理_

    在“batch_HDF投影_hdf转tif_格式转换_IDl_批处理”这个任务中,我们将会用到以下IDL函数和概念: 1. **打开HDF文件**:使用`HDF_READ`或`HDF_OPEN`函数读取HDF文件中的数据。这些函数可以访问HDF文件的不同数据集...

    SAP BDC与LSMW介绍.pdf

    例如,在生产订单、配额导入、物料移动、修改销售订单等操作中,可以使用BDC来提高效率。 BDC的用法及注意事项: 1. 使用事务代码SHDB,点击输入BDC描述,例如:修改生产订单操作的事务代码为CO02。 2. 完成修改后...

    SAP-17LSMW使用Standard Batch导入BOM.docx

    SAP-17LSMW 使用 Standard Batch 导入 BOM SAP-17LSMW 是 SAP 系统中的一种数据导入工具,使用 Standard Batch 可以将批量数据导入到 SAP 系统中。以下是在 SAP-17LSMW 中使用 Standard Batch 导入 BOM(物料清单)...

    SAP_BDC_举例讲解

    3. 填完 bdcdata 以后,用 call transaction ‘XXXX’ using bdc…… 这个命令来真正的 commit 动作或者 call function 'BDC_INSERT' 在建立一个 session。 4. 并把执行的结果返回给 messtab 这个 Internal Table ...

    SpringBoot+Batch实现

    spring batch官方文档:...简单的任务操作实现,当前项目只是一个demo,我也是初学,目前启动执行完任务boot自动关闭问题还没有解决,代码可供讨论,不能直接使用,哪位大佬解决了一起讨论一下

    recurrent batch normalization的pytorch实现

    4. **训练和评估模式**:在训练模式下,RBN会累积每个时间步的统计量,而在评估模式下,它将使用已训练的全局统计量来计算归一化。 5. **批大小和序列长度**:在实现时,要考虑到不同的批大小和序列长度,确保批量...

Global site tag (gtag.js) - Google Analytics