SAP運用保守をしていると、顧客から「○○というプロセスを追加したいんだけど」と言われ、既存機能への影響調査を行わなければならないときがある。
伝票タイプの追加であったり、ワークフローの追加であったり、業務プロセスレベルの追加となると既存アドオンを調べたりするのに、結構な工数がかかるものだ。
そんなとき、ABAPソースの中で、ハードコーティングされた文字列や、特定の変数型の指定、カスタム定義した項目の使用などを、プログラムを跨いで一括検索できると、影響調査の際には結構便利だ。(使用先一覧で出てこないケースも多いし、あいまい検索もしたい等)
今回は、そうしたABAPプログラムコードを一括で検索する方法について紹介する。
ABAPソーススキャンの方法(プログラム調査方法)
プログラム:RPR_ABAP_SOURCE_SCAN
複数プログラムの中で特定文字列を探したいのであれば、プログラム:RPR_ABAP_SOURCE_SCAN(ABAPレポートソーススキャン)を使うのが最も良いと言える。
検索の切り口が最も多く、検索位置の指定や、インクルードを含むかどうか、コメント行を含むかどうかまで条件指定が出来る。
いまのところ、標準プログラムの中では、このプログラムを使用するのが最も柔軟性に富むアプローチではないかと思う。
プログラム:RKCTSEAR
対象プログラム1~9を指定し、検索対象文字列(ストリング)1,2の子弟文字列を検索することが出来る。
プログラムは「*(アスタリスク)」検索もできるようだが、RPR_ABAP_SOURCE_SCANに比べると制限が多く、下位互換といった感じか。
こちらを使うケースはあまりないと思われる。
プログラム:RSRSCAN1(古い?)
シンプルな画面で、「プログラムIDの範囲選択」「検索文字列」「Includeを展開するかどうか」「パターン検索」を画面入力できる。
ただ、画面上部に「プログラム RSRSCAN1 は旧いです」とあり、かつこれも下位互換的なもののようなので、大人しくプログラム:RPR_ABAP_SOURCE_SCANを使うのがよさそうだ。
補足:テーブルTRDIRでプログラムID検索
プログラムID自体を検索したい時、Tr:SE38の検索ヘルプを用いるか、またはテーブルTRDIRで検索することができる。
テーブルTRDIR(Generated Table for View TRDIR)では、プログラム属性(プログラムタイプや登録日、更新日など)を検索条件とすることもできるので、複数条件で検索したいときはTr:SE16Nからテーブル検索する方が便利なときもある。
より詳しく学びたい方へ(参考書、専門書のご紹介)
・ファーストステップABAP入門 (Espresso Tutorials)
ABAPを勉強したい人向けの入門書。めずらしく日本語で書かれており、図表付きで初学者の導入にはかなり良いカンジの参考書となっている。
・ABAP to the Future (3rd edition updated and expanded)
次世代のSAP動向を勉強したいのであれば、ABAP to the Future (3rd edition updated and expanded)もおススメできる。
これも英語だが、2025年問題(現2027年問題)以降のSAP業界を技術者として生きていくのであれば、押さえておくべき重要知識が詰まっている。