スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

会計伝票転記BAPI

BAPI_ACC_DOCUMENT_POST

概要

会計伝票の転記を行うBAPIです。G/L勘定明細、得意先明細、仕入先明細などの明細を持つ会計伝票を転記できます。未転記伝票や備忘明細は登録できません。

パラメータ

会計伝票ヘッダと会計伝票明細系のパラメータあります。明細は、得意先明細や税明細のように明細の種類に応じたパラメータに分かれています。明細の金額部分は通貨明細のパラメータに分離して設定します。
尚、会計伝票ヘッダのOBJ_TYPEに通常の会計伝票と同じ「BKPF」を設定することはできません。BAPIから登録された会計伝票のOBJ_TYPEは「BKPFF」になります。
パラメータ一覧
種別パラメータ説明
インポートDOCUMENT_HEADERヘッダ
CUSTOMERCPDワンタイム得意先
CONTRACT_HEADER追加契約未収金/未払金ヘッダ
エクスポートOBJ_TYPE参照処理
OBJ_KEY参照キー
OBJ_SYS元伝票の論理システム
テーブルACCOUNTGL勘定コード明細
ACCOUNTRECEIVABLE得意先明細
ACCOUNTPAYABLE仕入先明細
ACCOUNTTAX税明細
CURRENCYAMOUNT通貨明細
CRITERIACO-PA 勘定割当特性
VALUEFIELDCO-PA 勘定割当値項目
EXTENSION1'カスタマEXIT' パラメータのコンテナ
RETURNリターンパラメータ
PAYMENTCARD支払カード情報
CONTRACTITEM追加契約未収金/未払金伝票明細
EXTENSION2EXTENSIONINの参照構造
REALESTATE不動産勘定割当データ
ACCOUNTWT源泉徴収税情報

会計伝票ヘッダ関連のパラメータを設定する

会計伝票のヘッダ (DOCUMENT_HEADER)には、ユーザ名、会社コード、伝票日付、転記日付、伝票タイプなどを設定します。
設定例:DOCUMENT_HEADER
項目項目名称設定値
OBJ_TYPE参照処理BKPFF
USERNAMEユーザ名USER01
COMP_CODE会社コード1000
DOC_DATE伝票の伝票日付20141031
PSTNG_DATE伝票の転記日付20141031
DOC_TYPE伝票タイプKR
REF_DOC_NO参照伝票番号/td>1234567890

会計伝票明細関連のパラメータを設定する

勘定コード明細(ACCOUNTGL)、得意先明細(ACCOUNTRECEIVABLE)、仕入先明細(ACCOUNTPAYABLE)、税明細(ACCOUNTTAX)など、明細の種類に応じてパラメータを設定します。

債務計上をする場合、勘定コード明細にはG/L勘定と必要に応じて原価センタなどのCO対象を設定し、仕入先明細には仕入先コードや割当番号(ソートキー)など、税明細には税コードを設定します。パラメータに転記キーを設定しない場合は、明細の種類に応じて自動で設定されます。尚、会計伝票明細番号は、伝票全体で一意になるようにパラメータ設定が必要です。

明細の金額は、通貨明細(CURRENCYAMOUNT)パラメータに設定します。通貨明細の会計伝票明細番号は、対応する各明細のパラメータと同じ値を設定します。金額項目の数値は、プラスが借方、マイナスが貸方を表します。
設定例:ACCOUNTGL
項目項目名称設定値
ITEMNO_ACC会計伝票明細番号0000000001
GL_ACCOUNT総勘定元帳勘定82310000
COSTCENTER原価センタA001
設定例:ACCOUNTPAYABLE
項目項目名称設定値
ITEMNO_ACC会計伝票明細番号0000000002
VENDOR_NO仕入先または債権者の勘定コードVEND001
ALLOC_NMBR割当番号0000001234
設定例:ACCOUNTTAX
項目項目名称設定値
ITEMNO_ACC会計伝票明細番号0000000003
TAX_CODE消費税コードV1
設定例:CURRENCYAMOUNT
項目項目名称設定値(1)設定値(2)設定値(3)
ITEMNO_ACC会計伝票明細番号000000000100000000020000000003
CURRENCY通貨コードJPYJPYJPY
AMT_DOCCUR伝票通貨額10000-10800800
AMT_BASE課税基準額(伝票通貨建て)10000

サンプルコード

通常の汎用モジュールを実行するのと同様にCALL FUNCTIONで実行します。会計伝票登録のBAPIの内部ではコミットされないため、正常終了時は明示的にコミットを実行する必要があります。

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LS_DOCUMENT_HEADER      TYPE BAPIACHE09,
      LV_OBJ_TYPE             TYPE BAPIACHE09-OBJ_TYPE,
      LV_OBJ_KEY              TYPE BAPIACHE09-OBJ_KEY,
      LV_OBJ_SYS              TYPE BAPIACHE09-OBJ_SYS,
      LT_ACCOUNTGL            TYPE TABLE OF BAPIACGL09,
      LT_ACCOUNTPAYABLE       TYPE TABLE OF BAPIACAP09,
      LT_ACCOUNTTAX           TYPE TABLE OF BAPIACTX09,
      LT_CURRENCYAMOUNT       TYPE TABLE OF BAPIACCR09,
      LT_RETURN               TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LS_DOCUMENT_HEADER-USERNAME    = SY-UNAME.   " ユーザ名
LS_DOCUMENT_HEADER-COMP_CODE   = '1000'.     " 会社コード
LS_DOCUMENT_HEADER-DOC_DATE    = '20141031'. " 伝票の伝票日付
LS_DOCUMENT_HEADER-PSTNG_DATE  = '20141031'. " 伝票の転記日付
LS_DOCUMENT_HEADER-DOC_TYPE    = 'KR'.       " 伝票タイプ
*             :
*          (以下略)

CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
  EXPORTING
    DOCUMENT_HEADER      = LS_DOCUMENT_HEADER
  IMPORTING
    OBJ_TYPE             = LV_OBJ_TYPE
    OBJ_KEY              = LV_OBJ_KEY
    OBJ_SYS              = LV_OBJ_SYS
  TABLES
    ACCOUNTGL            = LT_ACCOUNTGL
    ACCOUNTPAYABLE       = LT_ACCOUNTPAYABLE
    ACCOUNTTAX           = LT_ACCOUNTTAX
    CURRENCYAMOUNT       = LT_CURRENCYAMOUNT
    RETURN               = LT_RETURN
  .
* エラーメッセージの取得
READ TABLE LT_RETURN WITH KEY TYPE = 'E'.

* エラーメッセージがない場合
IF SY-SUBRC <> 0.
  COMMIT WORK AND WAIT.
ELSE.
  ROLLBACK WORK.
ENDIF.

コメントの投稿

非公開コメント

自動税計算

当BAPIを使用するとき、税明細を作成する必要があるということでしょうか?
税額を自動計算させるにはどのようにコーディングすればいいですか?
どうやってもうまくいかないのですが、ご存じであればご教示願います。

自動税計算

会計伝票のBAPIには税の自動計算機能は無いようです。税明細は手動で作成してBAPIに渡しています。

SAP Note 367175(FI/CO BAPI に税計算機能がない) にも以下の記述がありました。
「一般に、BAPI 処理機能に税計算は含まれません。FI/CO BAPI が呼び出されたあとは、明細は生成されません。」
プロフィール

Z*

Author:Z*

このブログではSAPの技術情報について解説をしていきます。

このブログを気に入って頂いた方は、リンクを張っていただけると嬉しいです。

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。