1、BDC的过程

2、BDC执行方式

3、详细步骤

1)code:SHDB

2)新建记录

填写客户信息

如果在页面中没有遇到要填写的信息,就点击下一制表页

信息录完之后点击保存,没有录完就继续下一页

创建程序

到达如下界面

回到SHDB,进入创建好的BDC记录,将录入的字段整理成表格

新建程序:

创建内表、复制BDC的源代码,修改

*&---------------------------------------------------------------------*
*& Report  ZSAP_BDC
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zsap_bdc.

*-----批导入-----*

"结构,从BDC中复制的结构
TYPES:BEGIN OF ty_customer,
* data element: KUN16
        kunnr_001(016),"客户编号
* data element: KTOKD
        ktokd_005(004),"账户组
* data element: VKORG
        vkorg_002(004),"销售组织
* data element: VTWEG
        vtweg_003(002),"分销渠道
* data element: SPART
        spart_004(002),"产品组
* data element: ANRED
        anred_006(015),"标题
* data element: NAME1_GP
        name1_007(035),"姓
* data element: STRAS_GP
        stras_008(035),"街道
* data element: PSTLZ
        pstlz_010(010),"邮政编码
* data element: ORT01_GP
        ort01_009(035),"城市
* data element: LAND1_GP
        land1_012(003),"国家
* data element: ORT02_GP
        ort02_011(035),"地区
* data element: BZIRK
        bzirk_016(006),"销售地区
* data element: AWAHR
        awahr_017(003),"销售部门
* data element: LPRIO
        lprio_021(002),"交货优先权
* data element: PERFK
        perfk_024(002),"出票日期

END OF ty_customer.

"从BDC复制的变量
*----------------------------------------------------------------------*
*   data definition
*----------------------------------------------------------------------*
*       Batchinputdata of single transaction
DATA:bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
*       messages of call transaction
DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

DATA:   ctumode LIKE ctu_params-dismode.
DATA:   cupdate LIKE ctu_params-updmode.

"根据结构创建内表
DATA lt_customer TYPE TABLE OF ty_customer WITH HEADER LINE.
"用于接收上载的文件名称的临时变量
DATA:lv_filename TYPE string.
"上传文件的选择屏幕元素
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
"文件搜索帮助

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  "执行方法
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
      field_name    = ' '
    IMPORTING
      file_name     = p_file.

START-OF-SELECTION.
  "文件上载,并把数据存在内表
  lv_filename = p_file.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                      = lv_filename
    filetype                      = 'ASC'
     has_field_separator           = 'X'
*   HEADER_LENGTH                 = 0
    read_by_line                  = 'X'
     dat_mode                      = ' '
    codepage                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
     no_auth_check                 = 'X'
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
    TABLES
      data_tab                      = lt_customer[]
   EXCEPTIONS
     file_open_error               = 1
     file_read_error               = 2
     no_batch                      = 3
     gui_refuse_filetransfer       = 4
     invalid_type                  = 5
     no_authority                  = 6
     unknown_error                 = 7
     bad_data_format               = 8
     header_not_allowed            = 9
     separator_not_allowed         = 10
     header_too_long               = 11
     unknown_dp_error              = 12
     access_denied                 = 13
     dp_out_of_memory              = 14
     disk_full                     = 15
     dp_timeout                    = 16
     OTHERS                        = 17
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

CHECK lt_customer[] IS NOT INITIAL.
  LOOP AT lt_customer.
    "从bdc复制的子例程调用语句,更改内表对应的字段,把不需要传的字段注释掉或者设置成空值
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0100'.

PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'RF02D-KUNNR'
                                  lt_customer-kunnr_001."内表对应的字段
    PERFORM bdc_field       USING 'RF02D-VKORG'
                                  lt_customer-vkorg_002.
    PERFORM bdc_field       USING 'RF02D-VTWEG'
                                  lt_customer-vtweg_003.
    PERFORM bdc_field       USING 'RF02D-SPART'
                                  lt_customer-spart_004.
    PERFORM bdc_field       USING 'RF02D-KTOKD'
                                  lt_customer-ktokd_005.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0110'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNA1-ORT02'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_field       USING 'KNA1-ANRED'
                                  lt_customer-anred_006.
    PERFORM bdc_field       USING 'KNA1-NAME1'
                                  lt_customer-name1_007.
    PERFORM bdc_field       USING 'KNA1-STRAS'
                                  lt_customer-stras_008.
    PERFORM bdc_field       USING 'KNA1-ORT01'
                                  lt_customer-ort01_009.
    PERFORM bdc_field       USING 'KNA1-PSTLZ'
                                  lt_customer-pstlz_010.
    PERFORM bdc_field       USING 'KNA1-ORT02'
                                  lt_customer-ort02_011.
    PERFORM bdc_field       USING 'KNA1-LAND1'
                                  lt_customer-land1_012.
    PERFORM bdc_field       USING 'KNA1-SPRAS'
                                  'ZH'."必传
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNA1-LIFNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
*perform bdc_field       using 'KNA1-STKZN'
*                              ''.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0125'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNA1-NIELS'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0130'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNBK-BANKS(01)'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0340'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02D-KUNNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0370'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RF02D-KUNNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
*perform bdc_field       using 'KNA1-CIVVE'
*                             ''.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0310'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNVV-VKBUR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_field       USING 'KNVV-BZIRK'
                                  lt_customer-bzirk_016.
    PERFORM bdc_field       USING 'KNVV-AWAHR'
                                  lt_customer-awahr_017.
*perform bdc_field       using 'KNVV-VKBUR'
*                              ''.
*perform bdc_field       using 'KNVV-WAERS'
*                              ''.
*perform bdc_field       using 'KNVV-KALKS'
*                              ''.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0315'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNVV-LPRIO'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VW'.
    PERFORM bdc_field       USING 'KNVV-LPRIO'
                                  lt_customer-lprio_021.
*perform bdc_field       using 'KNVV-KZAZU'
*                              ''.
*perform bdc_field       using 'KNVV-ANTLF'
*                              ''.
    PERFORM bdc_dynpro      USING 'SAPMF02D' '0320'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KNVV-PERFK'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=UPDA'.
    PERFORM bdc_field       USING 'KNVV-PERFK'
                                  lt_customer-perfk_024.
    PERFORM bdc_transaction USING 'XD01'.

ENDLOOP.

"从BDC复制的子例程
*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM    text
*      -->DYNPRO     text
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.

CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  APPEND bdcdata.

ENDFORM.                    "BDC_FIELD
*&---------------------------------------------------------------------*
*&      Form  BDC_TRANSACTION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->TCODE      text
*----------------------------------------------------------------------*
FORM bdc_transaction USING tcode.
  REFRESH messtab.
  CALL TRANSACTION tcode USING bdcdata
                   MODE   'A'"显示所有屏幕
                   UPDATE 'S'"同步
                   MESSAGES INTO messtab.
ENDFORM.                    "BDC_TRANSACTION

执行BDC注意事项

准备数据然后删除表头另存成Unicode  txt格式

文件上载方式(此方式只适合上传txt,不适合上载Excel)

或者用

另外说一下下载

ABAP---BDC批导入相关推荐

  1. 快速掌握SAP BDC数据导入

    对于有任何语言编程经验的人员来说,BDC 方式导入数据不失为一种不错的选择.BDC 可以将操作过程录制的记录自动生成 ABAP 代码,并且可以基于自动生成的代码进行优化,加上诸如数据校验,数据导入日志 ...

  2. SAP ABAP BDC(批量数据通信)-018

    SAP ABAP BDC(批量数据通信)-018 批量输入简介 批处理输入通常用于将数据从非 R/3 系统传输到 R/3 系统或在 R/3 系统之间传输数据. 它是一种数据传输技术,允许您将数据集自动 ...

  3. SAP BDC 数据导入

    BDC.CATT批量数据维护 BDC批量数据导入... 19 SM35(包含SHDB)录屏操作... 19 生成程序... 22 带服务器端测试数据文件... 22 编辑服务器端上生成的测试数据文件. ...

  4. abap BDC 使用方法

    1.t-code: SHDB将操作录下来 2.在程序中包含下BDC子程序,只需复制粘贴即可使用,具体代码如下: * 包含BDC用子程序 INCLUDE zbdcrecx. zbdcecx内容: *-- ...

  5. abap bdc附加选项

    语法 CALL TRANSACTION 'TCODE' USING itab_bdcdateMODE modeUPDATE upd OPTIONS FROM optMESSAGE INTO itab_ ...

  6. SAP ABAP BDC 的使用及代码详解

    首先介绍一下BDC即Batch Data Conversion.由于某种原因,当我们需要大量并且重复的输入保存变更删除数据的操作,且没有对应的BAPI可以使用的时候,可以使用BDC的方式进行. 其原理 ...

  7. ABAP BDC 实例

    BDC的本质就是在SAP中,一些标准程序批量处理时,无法使用SAP系统提供的BAPI进行数据处理,而使用SHDB生成一个模板,然后在程序中调用这个模板生成的代码,用于数据的批导. 1.使用Tcode ...

  8. ABAP BDC返回成功但是未创建单据或没有产生相应效果

    最近在调两个接口,两个接口都是使用BDC取生成数据 遇见主要的问题是数据转换的问题 问题一:原接口定义的字段长度长于BDC中对应字段的长度,这种只要定义一个符合BDC中对应字段长度的字段转换赋值一下即 ...

  9. abap如何找屏幕增强_因增强导致BDC录屏执行异常的梗

    最近呀,写一个使用BDC批量导入数据到MIRO的程序,遇到一个很有意思的问题,愣是折腾了半天才找到原因,具体是啥问题呢,且听我细细道来.Debug的时候发现,执行完CALLTRANSACTION 'M ...

最新文章

  1. AtCoder AGC002E Candy Piles (博弈论)
  2. 【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )
  3. java获取content-disposition_java – Content-Disposition附件不起作用 – 将...
  4. 计算机文化英文15版答案,15信高《计算机文化基础》期中考试题答案
  5. 直播预告丨爆款独立站如何利用数据提升经营效率?
  6. 北斗导航 | 基于RTK的GNSS与多源融合定位技术发展与挑战
  7. FineReport——JDBC 连接 MySQL8.0 版本数据库
  8. DB2 9 底子(730 考试)认证指南,第 3 局部: 拜访 DB2 数据(3)
  9. 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决
  10. Eclipse run configrations 配置
  11. eclipse中 将java项目转换为web项目
  12. 线上风控与数据埋点三部曲(一)——流量江湖不是处女地,投放渠道需谨慎
  13. 用LVM在VMware中的Linux硬盘扩容
  14. Apache与Tomcat有什么关系和区别
  15. 模拟学信网登录,Cookie 序列化,在反序列化之后不能用的问题
  16. html中空格符号以及空格字符实体的总结
  17. Dva 的connect使用
  18. Java验证辛钦大数定理
  19. 推荐一款开源的ICO制作神器——greenfish
  20. ICMP目的网络,主机,协议,端口不可达报文的Type值,Code值分别是

热门文章

  1. Scratch冰雹猜想
  2. 渲染管线----通俗易懂向面试官介绍
  3. 学生请假管理系统(jsp+servlet)
  4. 信息碎片化时代, 如何让学习更有效
  5. tomcat的启动过程
  6. 专利申请的流程、材料及费用
  7. 使用爬虫爬取两种数据:结构化/非结构化文本
  8. 如何测试UDP端口连通性
  9. FastDFS分布式文件服务器部署与运用
  10. 系统集成项目管理工程师案例分析考点汇总(成本、质量、人力)