SAP・ABAP開発における基礎知識「RICEF」について3分でサクッと解説します。「RICEF」とは、開発するオブジェクトをざっくり5つに分類して整理したものです。
上記5つの頭文字をとって「RICEF」です。このページでは、「RICEF」を1つずつ順に解説し、それぞれの特徴を押さえつつ、RICEFという分類がなぜ必要なのか?(意外と必要性は低い?)整理しておきたいと思います。
このページで学べる内容
- RICEFとは何か?
- それぞれの機能の特徴
- RICEFの分類方法
SAP開発に従事する人であれば、絶対に知っておきたい基本知識ばかりですので是非最後までご覧ください。
それでは早速解説を始めます。
RICEF
RICEFは、アドオン開発における「開発オブジェクト」をReports、Interfaces、Conversions、Extensions、Formsの5つに分類・整理したものです。
ここで、SAPにおける「開発オブジェクト」という言葉についての定義を確認しておきます。
開発オブジェクト・・・SAP標準ではない全ての機能のこと
例えば、SAP標準にない機能をABAPプログラムで追加したとします。すると、その追加したプログラムは「開発オブジェクト」に分類されることになります。
また、SAPがあらかじめ用意しているBADIやUser Exitなどを用いて機能を追加(拡張)したものも「SAP標準にない機能」という定義に当てはまるため「開発オブジェクト」の分類に当てはまりまることになります。
RICEFとはこの開発オブジェクトをざっくり5つに分類したものである、というをことを念頭に置いて、それぞれの内容を解説します。
※「開発オブジェクト」という言葉は、会社や職場によって異なる使われ方がされていたり、もしくはそもそもあまり使用しない単語である場合もあります。あらかじめご了承ください。
それでは、具体的にRICEFそれぞれの特徴を解説していきます。
Reports
Reportsのポイント
- データの集計・ダウンロードを行う機能グループ(SAPクエリを含める)
- データベースの更新は行わない
Reportsは日本語に訳せば「報告書」となるとおり、データベースからデータを取得したり編集(データの並び替えや集計)したり、取得したデータを表示したりする機能群です。
押さえて起きたいのは、Reportsはあくまでもデータの取得・編集・表示を行うものであり、データベースの更新は行わないという点です。データベースの更新が発生する機能は、後述するExtensionsに該当します。
Reportsは、データベースの更新を行わない(即ちデータを条件に沿って取得してくるだけ)なので、設計・プログラミングが比較的簡単な機能です。
※「SAPクエリ」を詳しく知りたい方は以下のページをご覧ください。
Interfaces
Interfacesのポイント
- 外部システムとの連携を行う機能グループ
- 外部システムからのRFC呼び出し/外部システムのWebService呼び出し
Interfacesには、SAP以外のシステムとのデータ連携機能が含まれます。
旅費精算システム(外部システム)から、金額データをSAPに取り込む機能などが該当するイメージです。SAPの対抗システムが増加すればするほど、このInterfacesの機能数が増加します。
Interfacesに分類される機能については、異なるシステムとのデータ連携が発生するため、SAP以外のシステム知識がある程度求められるようになります。また、比較的大きめのデータを取り扱うことになるためパフォーマンス観点での設計・プログラミングが必要になってくるため、Reports分類よりも開発難易度が上がります。
Conversions
Conversionsのポイント
- 主にデータ移行用に用いられる機能グループ
- Excel(VBA)などのツール群も該当する
Conversionsには、既存システムから新規システムに移行する場合のデータ移行機能が含まれます。したがって基本的には、導入前に一番活躍するのがConversionsに分類される機能群です。
Conversionは日本語で「変換」の意味となります。その名の通りデータ変換を行う機能が中心ですが、データを一括でアップロード(バッチインプット)する機能もこの分類に含まれます。
Extensions(Enhancements)
Extensionsのポイント
- データ更新を伴う処理を実行する機能グループ
- SAP標準機能の拡張や、テーブルへの項目追加なども該当する
Extensionsは、データベースの更新を行う機能と、ExitやBADIなどのSAP標準の拡張機能を利用してアドオンする機能全般が含まれます。
単純なReportよりも圧倒的に開発の難易度が上がります。データベースの更新が含まれるため、LUWの観点が必要になること、ExitやBADIに代表されるABAPだけではなくSAP独自の仕組みに対する理解が必要となってくることが主な理由です。
プロジェクトが炎上する場合、大体の原因がこのExtensions分類です。熟練の開発者/SAPエンジニアをこれらの機能開発に割り当てる必要があるといえます。
Forms
Formsのポイント
- 帳票を作成する機能グループ
Formsは帳票系の機能を指します。SmartformsやSVF関連の機能がこれに該当します。
特に日本では、帳票文化が未だ根強いためこの分類に該当する機能数が多くなる傾向にあります。
RICEFを何に利用するか?
この章では、RICEFのそもそも論―。「何のために分類しているか?」について整理しておきたいと思います。
開発工数見積の精緻化
RICEFの分類を行うことで得られるメリットの第1は開発工数の見積もり精緻化に役立つということです。Report1本の開発工数と、Forms1本の開発工数は微妙に(時には非常に)異なるので、RICEF単位で見積もりをしたほうがより精度の高い予想開発工数が算出できるでしょう。
プロジェクト開始時点である程度の開発工数を予測する際に、RICEFという視点が役に立ちます。
開発体制の計画
メリットの2つ目は、チームメンバーの配置・役割分担の基準となる点です。ABAPerといえど、帳票系が得意なメンバーもいればExitやBADIに詳しいメンバーなど十人十色です。
もし、あなたがプロジェクトリーダーだとすれば、アドオン機能ごとにチームを構成する際に、RICEFを基準にすることができるでしょう。
RICEFの分類を行うメリット
- 開発工数の見積を精緻化することができる
- 開発チームの役割分担の指標となる
RICEFの分類方法
RICEFを分類・特定するには、以下の基準を用います。
困ったら、是非このページを活用していただければと思います。これでRICEFの解説は終了です。
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!