SAPアドオンプログラムの5分類「RICEF」
INDEX LINK
はじめに
ABAPerの皆さんは「RICEF」という言葉を聞いたことがあるでしょうか。
RICEFは、ABAPを用いた開発の基礎となる概念です。
基本知識とされていますが、実際の開発業務ではあまり触れられないため、この機会に理解しておきましょう。
1.RICEFとは
RICEFは、SAPのアドオン開発における「開発オブジェクト」の定義です。
具体的には、Reports、Interfaces、Conversions、Extensions、Formsの5つに分類されています。
ちなみに開発オブジェクトとは、SAPの標準機能を除くすべての機能のことです。
最初から備わっているもの以外はすべて開発オブジェクトですから、ExitやBADIを活用した場合も開発オブジェクトに該当します。
少し脱線しましたが、RICEFの定義を見ていきましょう。
1-1.R: Reports(レポート)
レポートは、データ集計や分析に用いられる機能グループです。
また、データベースの更新は行いません。
レポートでは「データ取得、編集、表示」のみを行います。
一般的にSAPプロジェクトで「レポートプログラム」と呼ばれるものと大体同じ定義ですね。
SAPでは、標準的なレポートが数多く提供されていますが、特定のニーズに応じたカスタムレポート(帳票、報告書形式のプログラム)の開発が必要になることがよくあります。
こうした需要にこたえるのがレポートです。
1-2.I: Interfaces(インターフェース)
インターフェースは、SAPシステムと外部システム間、またはSAPシステム同士のデータ交換を実現するための機能グループです。
「外部システムとの連携」や「RFC呼び出し」「WebService呼び出し」などが含まれます。
外部とのやり取りを行う機能グループだけに、SAP以外のシステムについてもある程度の知識が必要です。
実はアドオンの中でもハイレベルな知識を要求されるのがインターフェースなのです。
1-3.C: Conversions(コンバージョン)
主にデータ移行などに活用される機能グループで、普段はあまり触れる機会がないと思います。
移行時には旧システムから新システムへデータを移し替えるために必要な、「一括アップロードプログラム」などを開発しますよね。
こういったプログラムはコンバージョンに該当します。
1-4.E: Enhancements(エンハンスメント)
エンハンスメント(Enhancements)は、SAPの標準機能を拡張する機能グループです。
Extensions(エクステンション)とも呼ばれます。
具体的には、データ更新処理や標準機能の拡張などが含まれます。
User ExitやCustomer Exit、BADI(Business Add-Ins)、などを用いてデータベースの更新を行うため、レポートよりも高度な知識が必要です。
5つの分類の中では最も要求レベルが高く、経験年数5年程度の中堅ABAPerより上の層が対応することが多いでしょう。
標準機能との境界線なので、万が一不具合が起こると影響が大きく、大障害につながることもあります。
1-5.F: Forms(フォーム)
フォームは、注文書、請求書、納品書など、いわゆる帳票系をまとめた機能グループですね。
Smart Forms、やSVFなど外部帳票を作るときに使用されます。
開発は比較的容易ですが、プログラムの本数が多くなりがちなので、意外と手間がかかる分野です。
2.RICEFを知っていると何が良いのか?
RICEFは単に機能グループを表したものではありません。
それぞれの機能グループで「開発に必要な工数」や「要求される技術水準」が微妙に異なるので、見積もりや人材の配置などに役立てることができます。
例えば、レポートを5本、エンハンスメントを3本という計画であれば、エンハンスメント3本のほうが開発工数は大きくなりやすいですね。
また、人員についても、後者にベテランを振り分けたりします。
実際の開発ではRICEFを知らなくても十分に対応できますが、分類によって難易度が異なるという点は覚えておいて損はないと思います。
ちなみに、個人的には
エンハンスメント>インターフェース>コンバージョン=レポート>フォーム
の順で難易度が高いと思います。(左にいくほど高難易度)
まとめ
今回はABAPの開発における基礎的な分類方法「RICEF」について解説しました。
RICEFは開発者がレベルアップしていくための指標にもなります。
まずはフォームやレポートで経験を積みながら、徐々にインターフェースはエクステンションに挑戦していきましょう。