会計伝票の連携や税勘定の調査で、「税コードに対応する消費税勘定をABAPから確認したい」ときがあります。その際に使える汎用モジュールが FI_TAX_GET_TAX_ACC_BY_KSCHL です。会社コードと税コードを起点に、必要に応じて条件タイプを指定し、勘定設定の結果を取得します。
ただし、税コードと消費税勘定は常に一対一ではありません。税計算手順に含まれる条件タイプ、勘定キー、勘定コード表、OB40の設定などが関係します。取得した先頭行の勘定を無条件で転記する実装は避けましょう。
税コードから税勘定が決まるまで
税コード(MWSKZ)は、取引に適用する税の区分や税率を識別します。一方、税額をどの勘定へ転記するかは、税計算手順の条件タイプと勘定キー、および税勘定の自動設定によって決まります。OB40のルールによっては税コードごとに勘定を分けますが、同じ勘定キーに対して複数の税コードが同じ勘定を使う設定もあります。
また、控除対象外税額などを費用・収益明細へ配賦する設定では、独立した税勘定明細が作られないことがあります。したがって「税コードを渡せば必ず一つの税勘定が返る」とは考えず、実際の転記方法まで確認します。
FI_TAX_GET_TAX_ACC_BY_KSCHLの主な入出力
| 項目 | 役割 | 確認ポイント |
|---|---|---|
I_BUKRS | 会社コード | 会社コードから国・税計算手順・勘定コード表をたどるための起点 |
I_MWSKZ | 税コード | 対象取引で実際に使うコードを指定 |
I_KSCHL | 条件タイプ | 対象の税条件を絞り込む場合に指定。適当な値を固定しない |
I_PRSDT | 税計算の基準日 | 伝票に合わせた日付を渡し、過去・将来の設定変更に注意 |
I_TXJCD | 税管轄コード | 税管轄を使う国・設定で必要性を確認 |
T_T030K | 税勘定設定の結果 | 勘定キー KTOSL と勘定 KONTS などを確認 |
この汎用モジュールは勘定決定の確認に使うものです。税額を計算したり、会計伝票を登録したりする機能ではありません。引数や例外の詳細は、利用しているSAPシステムのSE37で必ず確認してください。
ABAPの呼び出し例
次は結果を一覧表示して確認するための最小例です。p_kschl は、対象の条件タイプが分かっているときに指定します。空欄で実行した結果が複数行の場合は、業務で必要な勘定キーを確認して絞り込みます。
REPORT zfi_tax_account_check.
PARAMETERS: p_bukrs TYPE t001-bukrs OBLIGATORY,
p_mwskz TYPE bset-mwskz OBLIGATORY,
p_kschl TYPE bset-kschl,
p_prsdt TYPE sy-datum DEFAULT sy-datum.
DATA: lt_t030k TYPE STANDARD TABLE OF t030k,
ls_t030k TYPE t030k.
CALL FUNCTION 'FI_TAX_GET_TAX_ACC_BY_KSCHL'
EXPORTING
i_bukrs = p_bukrs
i_mwskz = p_mwskz
i_kschl = p_kschl
i_prsdt = p_prsdt
TABLES
t_t030k = lt_t030k
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
WRITE: / '勘定決定を確認できません。SY-SUBRC:', sy-subrc.
RETURN.
ENDIF.
IF lt_t030k IS INITIAL.
WRITE: / '税勘定の結果がありません。設定を確認してください。'.
RETURN.
ENDIF.
LOOP AT lt_t030k INTO ls_t030k.
WRITE: / '勘定キー:', ls_t030k-ktosl,
'税勘定:', ls_t030k-konts.
ENDLOOP.
上のプログラムは調査用です。実装では例外の種類ごとの処理を追加し、SY-SUBRC だけでなく返された勘定キーと税勘定、実際の伝票の税明細を突き合わせてください。画面やインタフェースの項目は製品・リリースや設定で異なるため、SE37で確認した定義に合わせます。
結果が想定と違うときの確認順序
- 会社コードと税コード:対象の会社コード・伝票で使われる税コードが一致しているかを確認します。FTXPでは税コードと条件の設定を確認できます。
- 条件タイプと勘定キー:税計算手順で対象の条件タイプがどの勘定キーへつながるかを確認します。税コードに複数の条件があれば、結果も複数になり得ます。
- OB40:該当する勘定コード表・勘定キーについて、税コード別の勘定設定ルールとG/L勘定を確認します。関連する設定は主に
T030Kに保持されます。 - 実際の転記:検証環境で該当取引の会計伝票を作り、税明細とG/L明細を確認します。配賦される税額、ゼロ税率、丸め、複数税条件などは、返却テーブルだけでは最終的な仕訳を判断できません。
開発時の注意点
- 税勘定をプログラムへ直接書き込むと、OB40の変更や税コード追加に追従できません。勘定決定は標準設定を基準にします。
T_T030Kの最初の1件を「正解」と決めつけず、条件タイプと勘定キーを業務要件に照らして確認します。- 外部システムから会計伝票を登録する場合、税額の入力方法と自動税計算の設定を揃えます。手動で税明細を作る設計なら、二重計上や端数差がないかテストします。
- この汎用モジュールの返却値だけで転記可否を判断せず、G/L勘定の会社コード側設定と、実際の登録テストを行います。
まとめ
FI_TAX_GET_TAX_ACC_BY_KSCHL は、会社コード・税コード・条件タイプから税勘定の設定を調べるときに役立ちます。ポイントは、税コードだけで勘定を一意に決めないことです。結果の勘定キー、OB40の設定、最終的な会計伝票を合わせて確認すると、連携プログラムや設定調査での誤判定を防げます。
参考・関連記事
- 消費税の仕組みとSAPの税コードについて:税コードが必要になる業務上の背景を確認できます。
- 請求書照合(MIRO)の基本:購買の請求書で税コードを確認する場面を押さえられます。
- ERS(MRRL)の基本:自己請求時に購買発注の税コードが重要になる理由を確認できます。