BDC

Session 和  transaction方式: 都要注意在录屏的时候一定要勾选"def size"。比如va22默认在满5行item的时候要换屏。
 换屏后,第5行会在第二屏中的第一行, 也就是我们要填充的行号又要重新变为2。
 
Call transaction方式的时候,最好要用到OPTION, 将其中参数defsize 设为'X'.这样能避免出现换屏的问题。 本人曾经没这个的时候出现过如下状况:
    (1) 代码中没有换屏, call transaction没有设置defsize.
            跑前台是没有问题的,跑job的时候会出现某些字段不存在
     (2) 代码中换屏了, call transaction没有设置defsize
           跑后台是没有问题的, 跑前台的时候会出现某些字段不存在。
 
   data: lwa_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.

猜你喜欢

转载自www.cnblogs.com/wangxiaowen/p/8992430.html
BDC