SAP ABAP SE38開発とOData開発の違いを徹底解説
SAP ABAP SE38開発とOData開発の違いを徹底解説
はじめに
SAPシステムの開発には様々なアプローチがあります。その中でも特に重要なのが、従来型のSE38(ABAPプログラム)開発と、モダンなAPI指向のOData開発です。本記事では、両者の概念・構造・ユースケースの違いを整理し、どの場面でどちらを選ぶべきかを解説します。
アーキテクチャ比較図
以下の図は SE38 と OData それぞれの開発スタックを示しています。
SE38開発とは
SE38はSAPのABAPワークベンチにおけるプログラム開発トランザクションです。バックエンドロジックを直接ABAPコードで記述し、SAP GUIや帳票出力、バッチ処理などに使用されます。
SE38の主な特徴
- 実行環境:SAP GUI(SAPログオンクライアント)上で動作
- 出力方式:WRITE 文、ALV(ABAP List Viewer)、スプール出力
- データアクセス:透過テーブルやビューへのOPEN SQL直接アクセス
- 実行形式:トランザクション(SA38)、バックグラウンドジョブ(SM37)経由
- 対象ユーザー:社内の業務担当者・ABAPエンジニア
REPORT zmy_report.
DATA: lt_mara TYPE TABLE OF mara,
ls_mara TYPE mara.
SELECT matnr mtart mbrsh
FROM mara
INTO TABLE lt_mara
WHERE mtart = 'FERT'.
LOOP AT lt_mara INTO ls_mara.
WRITE: / ls_mara-matnr, ls_mara-mtart.
ENDLOOP.SE38プログラムはSAPシステム内で完結しており、外部システムとの連携を前提としていません。業務ロジックが直接コードに埋め込まれるため、シンプルな帳票・バッチ処理には非常に適しています。
OData開発とは
OData(Open Data Protocol)は、RESTfulなAPIを定義するためのプロトコルです。SAPでは主にSEGW(SAP Gateway Service Builder)を使ってODataサービスを構築し、SAP FioriアプリやサードパーティのWebアプリケーションとのデータ連携を実現します。
OData開発の主な特徴
- 実行環境:HTTP経由でブラウザ・モバイル・外部アプリからアクセス可能
- 出力方式:JSON / XML 形式でデータを返却
- データアクセス:DPC(Data Provider Class)を通じた抽象化レイヤー経由
- 実行形式:HTTPエンドポイント(/sap/opu/odata/sap/サービス名/)
- 対象ユーザー:Fioriアプリ・外部システム・API連携
METHOD zmy_service_dpc_ext=>materialset_get_entity.
DATA: ls_mara TYPE mara,
ls_entity TYPE zcl_zmy_service_mpc=>ts_material.
READ TABLE it_key_tab
WITH KEY name = 'Matnr'
INTO DATA(ls_key).
SELECT SINGLE matnr mtart
FROM mara
INTO CORRESPONDING FIELDS OF ls_mara
WHERE matnr = ls_key-value.
ls_entity-matnr = ls_mara-matnr.
ls_entity-mtart = ls_mara-mtart.
er_entity = ls_entity.
ENDMETHOD.SE38とODataの比較
| 項目 | SE38開発 | OData開発 |
|---|---|---|
| 開発トランザクション | SE38 / SE80 | SEGW |
| 実行環境 | SAP GUI | ブラウザ / 外部アプリ |
| 通信プロトコル | DIAG(SAPプロプライエタリ) | HTTP / HTTPS |
| データ形式 | 内部テーブル / ALV | JSON / XML / Atom |
| 主な用途 | 帳票・バッチ・マスタ管理 | Fiori・API連携・モバイル |
| テスト方法 | F8(直接実行) | /iwfnd/gw_client |
| 認証方式 | SAPログオン認証 | Basic認証 / OAuth |
どちらを選ぶべきか
SE38が適しているケース
- 帳票出力:月次締め処理、在庫一覧など印刷・スプール出力が必要な場合
- バッチ処理:夜間バッチ、データ移行、大量データ処理
- マスタメンテナンス:社内ユーザーがSAP GUIから直接操作する場合
- システム管理ツール:ログ確認、エラーモニタリングなどの運用ツール
ODataが適しているケース
- SAP Fiori アプリ開発:モバイル対応のモダンなUIを提供する場合
- 外部システム連携:ERP以外のシステムとのAPI連携
- マイクロサービス化:機能を小さなAPIとして公開・再利用する場合
- リアルタイムデータ取得:Webブラウザからリアルタイムにデータを表示する場合
まとめ
SE38はSAP内部の業務処理を効率よく実装するための手段であり、ODataはSAPをオープンなエコシステムの一部として機能させるための手段です。どちらが優れているというわけではなく、システムの要件・ユーザーの環境・連携先に応じて適切な方法を選択することが、良いSAP開発エンジニアの条件と言えるでしょう。
この記事はSAP NetWeaver 7.5 / S/4HANA 2022環境を前提としています。バージョンによって一部UIや手順が異なる場合があります。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 TKblog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果