SAPの拡張開発の種類とは?In-App拡張とSide-by-Side拡張の違い
—————————————-
【コラム監修者 プロフィール】
クラウドコンサルティング代表取締役 岸仲篤史
新卒でSAPジャパン株式会社に入社。
SAPジャパン在籍中にCOコンサルとして従事したことで、会計コンサルの面白さに目覚め、
大和証券SMBC株式会社 投資銀行部門、新日本有限責任監査法人、アビームコンサルティングにて、
一貫して約10年間、会計金融畑のプロフェッショナルファームにてキャリアを積む。
その後、2017年クラウドコンサルティング株式会社を設立し、SAPフリーランス向けSAP free lanceJobsを運営し、コラムの監修を手掛ける。
https://www.facebook.com/atsushi.kishinaka#
X
—————————————-
INDEX LINK
はじめに
SAPシステムを企業の業務に最適化するためには、標準機能だけでなく「拡張開発」が必要になるケースが多くあります。
特に、SAP S/4HANAの導入においては、カスタマイズを最小限に抑える「クリーンコア」戦略が推奨されており、SAPの公式な拡張手法を理解することが重要です。
SAPが提供する拡張開発の方法は、大きく「In-App拡張」と「Side-by-Side拡張」の2種類に分類されます。
本記事では、それぞれの拡張手法の特徴や違い、活用シナリオについて詳しく解説します。
1.SAPの拡張開発の種類とは?
SAPの拡張開発は、主に以下の2つの方法に分けられます。
In-App拡張(インアプリ拡張)
SAP S/4HANAの標準機能内で行うカスタマイズ・拡張。
コード変更を伴わない設定変更や、ローコード開発による機能追加が可能。
Side-by-Side拡張(サイドバイサイド拡張)
SAP BTP(Business Technology Platform)などの外部プラットフォーム上で、SAPと連携する形で開発を行う方式。
SAP本体のコア機能には影響を与えず、独立したアプリケーションやマイクロサービスを構築可能。
それぞれより詳しく見ていきましょう。
2.In-App拡張とは?
In-App拡張(インアプリ拡張)とは、SAP S/4HANAのシステム内部で拡張を行う方法です。
SAP標準の開発ツールや設定を利用し、システム本体を改変することなく機能を追加・変更できます。
2-1.特徴
・SAPの標準機能を活用しながら柔軟なカスタマイズが可能
・コーディング不要(ノーコード・ローコード開発)で拡張できるケースが多い
・アップグレードに影響を与えにくいため、SAPのクリーンコア戦略と親和性が高い
2-2.代表的なIn-App拡張の方法
・キー・ユーザー拡張(Key User Extensibility)
SAP Fioriアプリ内で、フィールドの追加やレイアウト変更を行う
コーディング不要で、GUIベースの設定のみで実装可能
・カスタムフィールドとロジック(Custom Fields & Logic)
SAPの標準エンティティに独自のカスタムフィールドを追加できる
ビジネスルールを設定することで、特定条件下での動作変更も可能
・Embedded Steampunk(ABAP Cloud)
SAP S/4HANAのクラウド環境で、標準のABAP拡張機能を利用
SAPのアップグレードと互換性を保ちつつ、ABAPで拡張開発できる
2-3.活用シナリオ
・SAP Fioriの画面カスタマイズ(不要なフィールドを非表示、入力フィールドの追加など)
・売上伝票や購買オーダーに独自の承認ルールを追加
・特定の業務プロセスのカスタムバリデーションを実装
3.Side-by-Side拡張とは?
Side-by-Side拡張(サイドバイサイド拡張)は、SAP S/4HANAの外部にあるプラットフォーム上で拡張を行う方法です。
主に、SAP BTP(Business Technology Platform)を活用して、独自のアプリケーションやサービスを構築します。
3-1.特徴
・SAP本体のコードを改変せずに、新しい機能を追加可能
・APIを活用して、SAPと外部アプリケーションを連携
・最新のクラウド技術(AI, IoT, モバイル)と統合しやすい
3-2.代表的なSide-by-Side拡張の方法
SAP BTP上でのアプリ開発
・SAP FioriアプリやカスタムUIを、SAP BTP上に構築
・SAP S/4HANAとの連携は、OData APIやSAP Graphを活用
SAP Integration Suiteによるシステム連携
・異なるシステム(SAP以外のERPやクラウドサービス)とSAPをつなぐ
イベント駆動型アーキテクチャ(Event-Driven Architecture)
・SAP S/4HANA内のイベントをトリガーにして、外部システムとリアルタイム連携
・受注データが更新されたら、AIで自動分析を行うといったシナリオを実現
3-3.活用シナリオ
・AIや機械学習を活用した予測分析をSAPと統合
・モバイルアプリを開発し、現場の作業者向けにSAPデータを提供
・SAP以外のクラウドサービス(Salesforce, Microsoft Teams)とデータ連携
4.In-App拡張とSide-by-Side拡張の違い
In-App拡張とSide-by-Side拡張の違いは、開発のアプローチや適用範囲、拡張の自由度など多岐にわたります。
簡単にまとめると以下の表になりますね。
項目 | In-App拡張 | Side-by-Side拡張 |
開発場所 | SAP S/4HANA本体 | SAP BTPや外部プラットフォーム |
開発難易度 | 低(ノーコード・ローコード開発) | 中〜高(プログラミングが必要) |
拡張の自由度 | SAP標準の範囲内で可能 | SAP外部に独自アプリを構築可能 |
適用範囲 | SAP標準機能のカスタマイズ | SAPと外部サービスの連携、独自機能追加 |
アップグレードの影響 | 影響が少ない | 影響なし(SAP本体を改変しない) |
代表的な技術 | カスタムフィールド、キー・ユーザー拡張、ABAP Cloud | SAP BTP、OData API、Event Mesh |
4-1.開発の場所
In-App拡張がSAP S/4HANA本体の内部で行われるのに対し、Side-by-Side拡張はSAP BTP(Business Technology Platform)などの外部プラットフォーム上で行われます。
In-App拡張はSAPの標準機能のカスタマイズを目的とし、SAP本体の環境を直接変更せずに拡張できるのが特徴です。
一方、Side-by-Side拡張はSAPの外部環境に独自のアプリケーションやマイクロサービスを構築し、APIを通じてSAPと連携する形で開発が進められます。
4-2.難易度
開発の難易度については、In-App拡張がノーコード・ローコード開発が中心であるのに対し、Side-by-Side拡張では一般的にプログラミングが必要です。
したがって、Side-by-Side拡張のほうが技術的なハードルは高めです。
SAPのキー・ユーザー拡張やカスタムフィールドの追加などは、GUIベースの設定変更で簡単に実装できるため、SAPエンジニアでなくても扱いやすいです。
一方で、Side-by-Side拡張は、SAP BTP上でアプリを開発したり、イベント駆動型アーキテクチャを活用したりするため、JavaやNode.jsなどの開発スキルが求められます。
4-3.拡張の自由度
拡張の自由度については、Side-by-Side拡張が上ですね。
SAP本体の標準機能内で拡張を行うIn-App拡張は制約が多いです。
これに対し、Side-by-Side拡張ではSAP本体に依存せず自由に機能を追加できます。
SAPの標準機能に沿って拡張を行うIn-App拡張は、SAPのガイドラインに準拠したカスタマイズが可能ですが、業務要件に応じた大規模な変更には不向きです。
一方、Side-by-Side拡張では、SAP本体の制約を受けずに独自のシステムや外部サービスとの連携を実現できます。モバイルアプリやAI、機械学習を活用した高度な機能追加が可能です。
4-4.アップグレードの影響
アップグレードの影響についても両者には違いがあります。
In-App拡張はSAP S/4HANAの標準機能に準拠しているため、アップグレード時の影響を受けにくいです。
しかし、拡張の範囲がSAPの標準機能内に限定されるため、業務要件によっては対応しきれない場合もあります。
Side-by-Side拡張はSAP本体のコードを改変しないため、SAPのアップグレードに影響を与えません。
そのため、SAPの最新バージョンに常に対応できるというメリットがあります。
4-5.代表的な技術
最後に、代表的な技術についても違いがあります。
In-App拡張では、カスタムフィールドの追加やキー・ユーザー拡張、ABAP Cloud(Embedded Steampunk)などが活用されます。
一方、Side-by-Side拡張では、SAP BTPのOData APIやSAP Graph、Event Meshを利用した拡張が主流となります。
まとめ
このように、In-App拡張はSAPの標準機能を活かした軽量なカスタマイズに適しており、Side-by-Side拡張はより柔軟で高度な拡張を必要とする場合に適しています。
どちらの拡張手法を選択するかは、業務要件やシステムの将来性を考慮し、適切に判断することが重要です。
SAP人材として成長し続けるためには、最新のSAP技術トレンドをキャッチアップし、クリーンコアを意識した開発アプローチを実践することが不可欠です。
今後のプロジェクトでは、どの拡張手法が最適かを判断し、柔軟に対応できるスキルを身につけることが、SAPスペシャリストとしての価値を高める鍵となります。
SAPの標準機能、拡張開発、クラウド活用の知識を深め、DX時代に求められるSAP人材としてさらなる成長を目指していきましょう。