Friday is awesome

SAPについて個人的なメモをまとめたブログです

MENU

SAP条件テーブルの有効範囲(有効開始日・有効終了日)の考え方

SAPで価格などの条件レコードを作成する際は、有効開始日と有効終了日も登録する必要があります。つまり、その価格の適用範囲がいつからいつまでなのかを明示する必要があります。SAPの設計では、有効終了日がテーブルのキー項目になっています。また、この設計に従い、期間重複するレコードを登録しようとした場合は柔軟に既存レコードの日付を変更するようにします。
いくつか例を見ていきます。

例1 既存レコードの一部期間に対して新規登録
2022年4月1日~2023年3月31日まで10円の商品マスタを登録していたとします。
 既存レコード 2022/04/01 ~ 2023/03/31 10円
そこに新規レコードで2022年10月から価格を改訂します。
 新規レコード 2022/10/01 ~ 2023/03/31 11円
そうすると、2レコードで期間重複するため、SAPは内部的に期間を調整し、既存レコードの有効終了日を2022年9月30日に変更します。

結果1
 既存レコード 2022/04/01 ~ 2022/09/30 10円
 新規レコード 2022/10/01 ~ 2023/03/31 11円

例2 既存レコードの期間より広い範囲の日付で登録
 既存レコード 2022/04/01 ~ 2023/03/31 10円
 新規レコード 2022/03/01 ~ 2023/04/30 11円
このようなケースでは既存レコードは意味を成さないため削除され、新規レコードが生かされます(登録されます)

結果2
 既存レコード 2022/04/01 ~ 2023/03/31 10円 -> 削除される
 新規レコード 2022/03/01 ~ 2023/04/30 11円 -> 登録される

SAP標準の条件機能ではこのように日付を柔軟に調整してくれますが、アドオンでも同じ機能を持たせようとするとそれなりに開発に時間がかかるため、そこまでの機能を持たせるかはユーザと調整が必要になります。