ABAP開発をしていると、たまに遭遇するのが帳票等に曜日を付けて欲しいという要望です。
そこまで頻度は高く無いのですが、自分で計算して曜日を導くロジックを書くのは面倒ですし、テストするのも手間ですよね。そんな時に使えるSAP標準の汎用モジュールが『DAY_IN_WEEK』です。
今回はこの『DAY_IN_WEEK』という汎用モジュールについて解説していきます。
汎用モジュール DAY_IN_WEEK でできること
DAY_IN_WEEKは、指定した日付に対する曜日を取得するSAP標準の汎用モジュールです。
『datum』というパラメータに該当の日付を渡すと、『wotnr』に曜日が返ってきます。ただし、数値で返ってくるので、以下の通り変換してあげる必要があります。
- 1:月曜日
- 2:火曜日
- 3:水曜日
- 4:木曜日
- 5:金曜日
- 6:土曜日
- 7:日曜日
稼働日判定はできないため必要なら別途実装が必要
この汎用モジュールはあくまでも日付に対する曜日を返すだけの機能になります。
ですので、該当の日が祝日なのかや、土日の休みの日なのか等の稼働日判定はできない機能となっています。その場合は、稼働日カレンダーを用意して、指定した日が稼働日かどうかの判定をする処理は別途実装する必要があるので、ご注意ください。
まとめ
今回は、ABAP開発でたまに要件として出てくる曜日を出力する際に使える汎用モジュール DAY_IN_WEEK についてご紹介しました。
頻繁に使う汎用モジュールではありませんが、知っていると便利なので、ぜひ覚えておいてもらえららと思います。