汎用モジュールのブラックリスト|使用禁止の汎用モジュールを調べる
![汎用モジュールのブラックリスト](https://boostover40.com/wp-content/uploads/2024/05/blacklist.webp)
「ブラックリスト」
なんとも物騒な名前のリストが、SAP S/4HANA上には存在する。
通称ではなく、本当にブラックリストなのだ。何のブラックリストかといえば、「S/4HANAで使用を禁じられている(ブロックされている)汎用モジュール/BAPIのリスト」である。
この記事では、S/4HANA上でブラックリストを参照し、汎用モジュールがブロックされているか、調べる方法を紹介する。
なぜブロックされているのか?
SAP社がS/4HANAで特定の汎用モジュール(リモート汎用モジュール)の使用をブロックしている主な理由は、以下である。
汎用モジュールがブロックされている理由
- システム信頼性の維持
- 新ソリューションの促進
- 古い技術資産の解消
システム信頼性の維持
一部の古い汎用モジュールは、最新のS/4HANAアーキテクチャとの互換性が十分でない場合がある。そのような汎用モジュールは、不整合のあるデータをデータベースに書き込んでしまうリスクがある。つまり、古い汎用モジュールは、データの整合性や、システムの信頼性に、悪影響を及ぼす可能性があるのだ。SAP社はシステムの信頼性を維持するため、互換性のない汎用モジュールをブロックしている。
ブロックされている汎用モジュールは、互換性が確認されるとブロックを解除される。あるバージョンのS/4HANAでブロックされていた汎用モジュールが、数世代後のS/4HANAではブロックを解除されていた場合、互換性を維持するための改修および検証が完了したということである。
新ソリューションの促進
SAP社は、最新のソリューションを推進するため、一部の古い汎用モジュールを制限している。これにより、ユーザーが最新のソリューションや機能を採用しやすくなる。
つまり、SAP社は最新のソリューションにユーザーを誘導するため、古い汎用モジュールをブロックしている場合がある。
古い技術資産の解消
機能が増えれば技術資産も増えることになるが、古い汎用モジュールの多くは、技術的な負債となり得る。この負債を解消するための措置として、古い汎用モジュールはブロックされている。
古い技術資産を減らすことで、SAP社はリソースを新ソリューションに投入しやすくなる。それは、システムの保守性と拡張性の向上に繋がる。
ブラックリストの汎用モジュールを実行するとどうなる?
ブロックされている汎用モジュールを実行しようとすると、エラー SYSTEM_ABAP_ACCESS_DENIED が発生する。このエラーはABAPダンプにも出力される。
詳細は、SAP Note #2249880 (Dump SYSTEM_ABAP_ACCESS_DENIED caused through Blocklist Monitor in SAP S/4HANA on premise)を参照のこと。
ブラックリストの汎用モジュールを探す方法
ブラックリストの一覧を見る
プログラム RS_RFC_BLACKLIST_COMPLETE を実行することで、ブラックリストの一覧を照会できる。
やり方は次の通り。
- トランザクションコード(T-CD):SE38を起動。
- 「プログラム」に"RS_RFC_BLACKLIST_COMPLETE"と入力し、実行する([F8]キーを押す)。
- 「パッケージ」に[F4]キーを押して入力ヘルプを呼び出し、パッケージ名を入力する。
ここで選択できる値は、使用中のSAPシステムに一つしかないので、選択できる値をセットする。
たとえば、S/4HANA2022であれば、"ABLMUCO2022"である。 - パッケージ名に値を入力したら、[Enter]キーを押す。
- 使用がブロックされている汎用モジュールの一覧が表示される。
これが、ブラックリストである。
ブラックリストの一覧をダウンロードする
上記で表示されたブラックリストの一覧をダウンロードするには、次のように操作する。
- RS_RFC_BLACKLIST_COMPLETE で表示されるブラックリストの一覧上で、右クリックする。
- メニューが表示されるので、「スプレッドシート」を選択。
- ファイルを保存するダイアログが表示されるので、ファイル名を指定し、「エクスポート先」を押す。
(適宜、形式を変更する。「形式」に「スプレッドシート(*.xlsx)」を選択すれば、Excelで開けるファイルとして保存される) - ファイルをダウンロードするフォルダを指定し、ファイルを保存する。
汎用モジュール単位に探す
ブラックリストの汎用モジュールを個別に検索したい場合は、
- T-CD:38より、プログラム RS_RFC_BLACKLIST_CUSTOM を実行する。
- 「汎用モジュール」に目的の汎用モジュール名を入力し、[Enter]を押す。
- 「ブロック」(数カ所)のチェックがONであれば、汎用モジュールはブロックされている。
このプログラムは、存在しない汎用モジュールを指定してもエラーを返さない。
なので、汎用モジュール名を間違えて指定し、「ブロックされてないんだ」と勘違いしないように注意のこと。
汎用モジュールがブラックリストに載っていたら、どうする?
サポートパッケージを適用する
ブラックリストの汎用モジュールのいくつかは、一時的にブロックされているだけかもしれない。
そのような汎用モジュールなら、サポートパッケージを適用することで、ブラックリストから削除される。
他の機能を探す
ブラックリストに登録されている汎用モジュールを見限って、SAP社が提供する代替手段、すなわち、他の機能を探す。
これが王道らしい。具体的には、SAP Noteを検索する。
たとえば、S/4HANAでT-CD:VA06を実行しようとすると、
「トランザクションVA06はサポートされていません(SAPノート2228098を参照)」
というメッセージがポップアップし、実行できない。
(バージョンによっては、ポップアップではなく、ショートダンプ SYSTEM_ABAP_ACCESS_DENIED が発生する)
この原因は、VA06が依存している汎用モジュールがブロックされているからである。
解決策として、VA06ではなく、Fioriアプリを使うように、ということが、SAP Note #2456442(VA06 giving shortdump SYSTEM_ABAP_ACCESS_DENIED) に書かれている。
ブロックを解除する
ブラックリストに登録され、使用がブロックされている汎用モジュールは、ブラックリストから除外することができる。
つまり、ブロックの解除が可能だ。
まず、ブラックリストにある汎用モジュールのブロックを解除してよいか、SAP社のサポートに問い合わせること。
サポートの方から、SAP社の開発部門に確認し、ブロックが一次的なものか恒久的なものか、ブロックの解除は許可されるかなどを、回答してもらうのである。
理由があってブロックされているのだから、自分たちの判断でブロック解除しないようにする。
以下は、プログラム RS_RFC_BLACKLIST_CUSTOM を使った、ブロック解除の手順である。
- T-CD:SE38より、RS_RFC_BLACKLIST_CUSTOM を実行する。
- ブロック解除を行う汎用モジュールを「汎用モジュール」に入力し、[Enter]を押す。
- カスタム設定/オリジナル設定の「サーバでブロック」のチェックを外し、[保存]ボタンを押す。
- カスタマイジングエントリ(移送依頼)を登録する。
なお、この操作を行うには、以下の権限が必要である。
AUTHORITY OBJECT: S_UCON_ADM
ID: UCON_TYPE: FIELD: BLRC
ID: UCON_NAME: DUMMY
ID: ACTVT: FIELD: 01、02、03、06
ブロック解除の詳細は、SAPノート #2408693 (Override blocklist of Remote Enabled Function Modules)に記載されているので、必ず読んでから実行されたし。
まとめ
S/4HANAでの使用がブロックされている汎用モジュールが登録されている「ブラックリスト」の参照方法や、ブロックを解除する方法を紹介した。
ブラックリストとは、かなりネガティブな印象を与える名前であるが、システムの信頼性を維持するため、安易に使用されるのを防ごうとする、SAP社の意図は理解できる。
しかし、使用をブロックしているリストなのだから、「ブラックリスト」ではなく「ブロックリスト」でもよかったのでは? と個人的には思うのだった。
【関連記事】