本程序以BDC SESSION的方式创建了一个SESSION(SM35可以查看SESSION一览),执行SESSION可以创建一条新的银行条目,该银行条目的关键字段如下:
『銀行国コード』 :JP
『銀行コード』 :9999001
『銀行名』 :建設銀行001(東京)
『地域 (都道府県)』:13
[@more@]*&---------------------------------------------------------------------*
*& Report Z_BDC_SESSION *
*& *
*&---------------------------------------------------------------------*
* TCODE SM35を利用して、新規のセッションをチェックする。
*
*----------------------------------------------------------------------*
REPORT Z_BDC_SESSION.
*----------------------------------------------------------------------*
* INTERNAL TABLE
*----------------------------------------------------------------------*
DATA:
TD_BDCDATA LIKE TABLE OF BDCDATA.
*----------------------------------------------------------------------*
* PARAMETERS
*----------------------------------------------------------------------*
PARAMETERS:
P_GROUP TYPE APQI-GROUPID DEFAULT SY-REPID. "セッション名
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
%_P_GROUP_%_APP_%-TEXT = 'セッション名'.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
*『銀行マスタ』テーブルに以下の条件に満足したデータを削除する
DELETE FROM BNKA WHERE BANKS = 'JP' "銀行国コード
AND BANKL = '9999001'. "銀行コード
* バッチインプットテーブルの編集
PERFORM FRM_EDIT_BDCDATA.
* セッションの開始
PERFORM FRM_BDC_OPEN_GROUP.
* セッションの設定
PERFORM FRM_BDC_INSERT.
* セッションの終了
PERFORM FRM_BDC_CLOSE_GROUP.
*&---------------------------------------------------------------------*
*& Form FRM_SET_BDC_DYNPRO
*&---------------------------------------------------------------------*
* バッチインプットテーブルの編集
*----------------------------------------------------------------------*
* なし
*----------------------------------------------------------------------*
FORM FRM_EDIT_BDCDATA.
* 新画面開始
PERFORM FRM_SET_BDC_DYNPRO USING 'SAPMF02B'
'0100'.
PERFORM FRM_SET_BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM FRM_SET_BDC_FIELD USING 'BNKA-BANKS' "銀行国コード
'JP'.
PERFORM FRM_SET_BDC_FIELD USING 'BNKA-BANKL' "銀行コード
'9999001'.
* 新画面開始
PERFORM FRM_SET_BDC_DYNPRO USING 'SAPMF02B'
'0110'.
PERFORM FRM_SET_BDC_FIELD USING 'BDC_OKCODE'
'=UPDA'.
PERFORM FRM_SET_BDC_FIELD USING 'BNKA-BANKA' "銀行名
'建設銀行001(東京)'.
PERFORM FRM_SET_BDC_FIELD USING 'BNKA-PROVZ' "地域 (都道府県)
'13'.
ENDFORM. " FRM_EDIT_BDCDATA
*&---------------------------------------------------------------------*
*& Form FRM_SET_BDC_DYNPRO
*&---------------------------------------------------------------------*
* BDC モジュールプール & Dynpro番号の設定
*----------------------------------------------------------------------*
* -->I_PROGRAM BDC モジュールプール(USINGパラメータ)
* -->I_DYNPRO BDC Dynpro 番号 (USINGパラメータ)
*----------------------------------------------------------------------*
FORM FRM_SET_BDC_DYNPRO USING I_PROGRAM
I_DYNPRO.
DATA LTH_BDC LIKE BDCDATA.
LTH_BDC-PROGRAM = I_PROGRAM.
LTH_BDC-DYNPRO = I_DYNPRO.
LTH_BDC-DYNBEGIN = 'X'.
APPEND LTH_BDC TO TD_BDCDATA.
ENDFORM. " FRM_SET_BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form FRM_SET_BDC_FIELD
*&---------------------------------------------------------------------*
* BDC 項目の設定
*----------------------------------------------------------------------*
* -->I_FNAM 項目名 (USINGパラメータ)
* -->I_FVAL BDC 項目値(USINGパラメータ)
*----------------------------------------------------------------------*
FORM FRM_SET_BDC_FIELD USING I_FNAM
I_FVAL.
DATA LTH_BDC LIKE BDCDATA.
LTH_BDC-FNAM = I_FNAM.
LTH_BDC-FVAL = I_FVAL.
APPEND LTH_BDC TO TD_BDCDATA.
ENDFORM. " FRM_SET_BDC_FIELD
*&---------------------------------------------------------------------*
*& Form FRM_BDC_OPEN_GROUP
*&---------------------------------------------------------------------*
* セッションの開始
*----------------------------------------------------------------------*
* なし
*----------------------------------------------------------------------*
FORM FRM_BDC_OPEN_GROUP.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P_GROUP
USER = SY-UNAME
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FRM_BDC_OPEN_GROUP
*&---------------------------------------------------------------------*
*& Form FRM_BDC_INSERT
*&---------------------------------------------------------------------*
* セッションの設定
*----------------------------------------------------------------------*
* なし
*----------------------------------------------------------------------*
FORM FRM_BDC_INSERT.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FI01'
TABLES
DYNPROTAB = TD_BDCDATA
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FRM_BDC_INSERT
*&---------------------------------------------------------------------*
*& Form FRM_BDC_CLOSE_GROUP
*&---------------------------------------------------------------------*
* セッションの終了
*----------------------------------------------------------------------*
* なし
*----------------------------------------------------------------------*
FORM FRM_BDC_CLOSE_GROUP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FRM_BDC_CLOSE_GROUP
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8214011/viewspace-976204/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8214011/viewspace-976204/