BDC SESSION

sapkitty發表於2007-10-12

本程式以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番號の設定

*----------------------------------------------------------------------*

* --&gtI_PROGRAM BDC モジュールプール(USINGパラメータ)

* --&gtI_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 專案の設定

*----------------------------------------------------------------------*

* --&gtI_FNAM 專案名 (USINGパラメータ)

* --&gtI_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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章