BDC

 

Session

Call Transaction

Process mode

需要手动在sm35中处理对应的session,或者通过RSBDCSUB来处理

直接处理

DB update mode

Synchronous

Sync/Async

error log

SM35中有对应的错误日志,方便错误分析

没有错误日志,可以创建自定义表来存储错误日志

Speed

比较慢

更快

Single/Muti Trans

In sm35, we can handle more than one transaction

only one transaction

Sy-subrc

Sy-subrc 不能表示更新的成功与否


Session 和  transaction方式: 都要注意在录屏的时候一定要勾选"def size"。比如va22默认在满5行item的时候要换屏。

 换屏后,第5行会在第二屏中的第一行, 也就是我们要填充的行号又要重新变为2。

 

Call transaction方式的时候,最好要用到OPTION, 将其中参数defsize 设为'X'.这样能避免出现换屏的问题。 本人曾经没这个的时候出现过如下状况:

    (1) 代码中没有换屏, call transaction没有设置defsize.

            跑前台是没有问题的,跑job的时候会出现某些字段不存在

     (2) 代码中换屏了, call transaction没有设置defsize

           跑后台是没有问题的, 跑前台的时候会出现某些字段不存在。

 

   datalwa_opt type ctu_params.

    lwa_opt-dismode 'N'.

    lwa_opt-updmode  'L'.

    lwa_opt-defsize 'X'.

 

   CALL TRANSACTION TCODE USING BDCDATA

                     OPTIONS FROM lwa_opt

                     MESSAGES INTO MESSTAB.

 

 

Session 方式要用到functions:

    BDC_OPEN_GROUP

    BDC_INSERT

    BDC_CLOSE_GROUP

最终的处理可以手动在sm35中处理对应的session,

如果不想手动处理,我们可以用程序RSBDCSUB来处理,如下图示:

  SUBMIT RSBDCSUB WITH MAPPE 'ROBBINTEST'

                  WITH VON sy-datum

                  WITH BIS sy-datum

                  EXPORTING LIST TO MEMORY AND RETURN.

 

  DATA list_tab TYPE TABLE OF abaplist.

 

  CALL FUNCTION 'LIST_FROM_MEMORY'

    TABLES

      listobject list_tab

    EXCEPTIONS

      not_found  1

      OTHERS           2.

 

  IF sy-subrc 0.

    CALL FUNCTION 'WRITE_LIST'

      TABLES

        listobject list_tab.

  ENDIF.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值