SAPの「チェック」と「代入」は、会計伝票などの入力値に業務ルールを適用する標準の仕組みです。チェック(Validation)は条件に合わない値を検出し、代入(Substitution)は条件に合うときに許可された項目の値を置き換えます。似た画面で設定しますが、目的と結果は異なります。この記事ではFIの会計伝票を中心に、設計と確認の基本を説明します。
チェックと代入の違い
| 機能 | 定義するもの | 条件を満たした後の動作例 |
|---|---|---|
| チェック | 前提条件・チェック式・メッセージ | 会社コードと勘定が対象で、必須の原価センタが空ならエラーにする |
| 代入 | 前提条件・代入対象項目・代入値 | 条件に合う明細のテキストが空なら所定の値を補う |
どちらも前提条件が偽なら、そのステップは適用されません。チェックは前提条件が真のときにチェック式を評価し、満たさなければ設定したメッセージを出します。代入は前提条件が真のときに値を置き換えます。先に標準の項目必須設定やマスタの初期値で対応できないか確認してください。
FIでの設定と有効化の流れ
- 対象の業務、会社コード、項目、登録時点を決めます。呼出ポイントはヘッダ・明細・伝票全体などで、利用可能な項目が異なります。
- チェックは
GGB0、代入はGGB1でルールを定義します。ステップごとに前提条件と判定または代入内容を設定します。 - FIの会社コード・呼出ポイントへの割当と有効化を、チェックは
OB28、代入はOBBHで確認します。定義を保存しただけでは対象取引で動かないことがあります。 - 正常値・異常値・対象外の会社コードなどを用意し、実際の会計伝票登録経路でテストします。手入力だけでなく、必要ならSD/MMからの自動転記も確認します。
同じ番号の呼出ポイントでも適用領域によって意味が異なります。COやPSでも類似の仕組みを使えますが、FIのトランザクション設定をそのまま当てはめず、対象領域のIMGと環境の設定を確認してください。
前提条件・セット・EXITの注意点
前提条件には会社コードや勘定などを組み合わせられます。複数の勘定をまとめるときは、対象項目と呼出ポイントが対応するセットを使える場合があります。「GS03で見えるセットなら何でも条件に使える」わけではないため、ルール画面の値ヘルプとテスト結果を確認します。
標準の条件式で表現しにくい場合は、チェック・代入用のユーザーEXITでABAPのFORMルーチンを利用できます。関数EXITをCMODで実装する一般的なカスタマEXITとは別の仕組みです。また、代入できる項目は制限されます。標準で禁止された項目を無理に開放するとデータ不整合を招くため、許可項目の範囲内で設計します。
動かないときの確認順序
- 前提条件が入力データに一致しているか。
- 会社コードと呼出ポイントへの割当・有効化が済んでいるか。
- テストした取引がその呼出ポイントを通るか。
- 対象項目がその時点で参照・代入可能か。標準の初期値や後続処理で上書きされないか。
参考・関連記事
- OKB9の自動勘定割当:原価センタの初期値を設定する別の方法
- SAPのグループ階層とセットクラス:条件に使う集合を理解する
- SAPの会計伝票とは:チェック・代入が適用される伝票の基本
- カスタマEXITの管理テーブル:別の拡張方式との違い