BDC SESSION

本程序以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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8214011/viewspace-976204/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值