【SAPが動画で学べる!】YouTubeチャンネル開設しました ▶ SAPラボチャンネルはコチラ

【SAP Fiori】ODataとは?仕組みと見方を解説

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退しSAPの後進育成と啓蒙活動に従事中!
若者に負けぬようX(旧Twitter)も奮闘中。

この記事を読むメリット

  • OData が何か、Fiori アプリとどう関係するかが分かる
  • OData の URL の読み方(サービス・エンティティセット・キー・クエリオプション)が分かる
  • ブラウザと T-CODE:/IWFND/GW_CLIENT で OData のデータを見る方法が分かる

SAP Fiori のアプリは、画面の裏で OData(オーデータ) という決まりを使って SAP のデータを読み書きしています。

この記事では、OData を初めて聞く方に向けて、仕組みを図で説明したうえで、「会社コード」の OData サービスを実際に開いて中身を見ます。

最後に、OData サービスの作り方の 2 通りを紹介します。

レイナ

博士!Fiori の話でよく「OData」って聞くんですけど、何のことか分からなくて…。

博士

うむ、OData は URL を送るとデータが返ってくる決まりじゃ。会社コードのサービスを実際に開いて、中身を見ながら説明していくぞい!

SAPフリーランスバンク SAPフリーランスバンク
  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
COFIPP

【S/4HANA AMS体制Functional Lead】リモート可/R2R・P2D領域インシデント対応

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 運用・保守
作業内容:
グローバル企業のSAP S/4HANA AMS体制に...
COMMSD

【ECC6.0→S/4HANA再構築】東京・都内(出社)/SD・MM・CO ABAP開発・設計・テスト

月額単価
~1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori), テスト
作業内容:
SAP ECC6.0からS/4HANAへの大型再構築プ...
MMPPSD

【SAP S/4保守・運用(ABAP)】東京・田無(テレワーク併用)/インシデント対応・ABAP改修

月額単価
~1,000,000円 / 月
稼働場所
東京都
業務領域
開発(ABAP/Fiori), 運用・保守
作業内容:
SAP S/4の保守・運用フェーズに参画し、...
COFIMMPPSD

【SAP Public Cloud導入(組立製造業・多モジュール)】兵庫(リモート対応可)/MM・SD・FI・CO・PP

月額単価
~1,100,000円 / 月
稼働場所
兵庫県
業務領域
要件定義
作業内容:
組立製造業を対象としたSAP Public Clou...
MMSD

【S/4HANA導入支援(システムテスト・移行)】東京・リモート併用/移行支援

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
テスト
作業内容:
S/4HANA導入プロジェクトの移行フェーズ...
COFIMMSD

【S/4HANA導入支援】東京(リモート併用)/基本設計&実装

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
商社系のシステム再構築プロジェクトに...
SD

【S/4HANA新規導入支援(SDコンサルタント)】東京(リモート併用)/設計構築フェーズ

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
大手企業のS/4HANA新規導入プロジェクト...
COFI

【S/4HANA新規導入支援(原価チームリーダー)】東京駅・リモート併用

月額単価
~1,900,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
S/4HANA新規導入プロジェクトに参画し、...
FIPP

【S/4HANAコンサルティング(FI/PP)】兵庫・加古川(リモート併用)/結合テスト・キーユーザ教育

月額単価
~1,300,000円 / 月
稼働場所
兵庫県
業務領域
テスト, その他
作業内容:
組立製造業向けのS/4HANA導入プロジェク...
COFI

【商社向けパブクラ移行(FICOコンサル)】宮城・仙台(リモート併用)/要件定義+構築

月額単価
~1,100,000円 / 月
稼働場所
宮城県
業務領域
要件定義, 設計
作業内容:
総合商社向けのSAP PublicEdition移行案...
この記事のポイント

OData とは

実務での要件の例

経理の担当から「Fiori のアプリに出ている会社コードのデータが、どこから、どんな形で届いているのかを知りたい」と聞かれた場面を考えます。

この記事では、この依頼を例に画面を追って操作します。例で使うデータは次のとおりです。

データこの例の値使うところ
OData サービスAPI_COMPANYCODE_SRV(会社コードの一覧を返すサービス)T-CODE:/IWFND/MAINT_SERVICE で探し、URL に入れます。一覧に出ないときは、システムの管理者に確かめます
エンティティセットA_CompanyCodeURL のサービス名の後ろに付けて、会社コードのデータを受け取ります
会社コード1010・1710キーや $filter の値に入れて、データを絞り込みます
SAP のサーバ<ホスト>:<ポート>URL の先頭です。OData サービスを公開している SAP Gateway のサーバに読み替えます。SAP Gateway は、業務データを持つシステム(バックエンド)と同じシステムに置く構成のほかに、別のサーバ(ハブ)に置く構成もあります

番号は、この記事で使った検証環境のものです。ご自分の環境では、それぞれの番号に読み替えてください。

前提条件として、V2 のサービスを実行するための権限オブジェクト S_SERVICE の権限が必要です。

この要件は、次のように分けて進めます。

要件の部分どうするか
Fiori アプリの裏のデータの流れを知るこの章で、OData と SAP Gateway の仕組みを確かめます
会社コードの OData サービスを探すT-CODE:/IWFND/MAINT_SERVICE で API_COMPANYCODE_SRV を探します
返ってくるデータを見るブラウザか T-CODE:/IWFND/GW_CLIENT で URL を送り、XML や JSON で中身を見ます
OData サービスを作るこの記事では扱いません。作り方の 2 通りを、最後の章で紹介します

ひとことで言うと

OData(Open Data Protocol)は、URL を送るとデータが返ってくる、Web のデータのやり取りの決まり です。SAP のヘルプは、OData を REST に基づく、データの照会と更新のための Web のプロトコルと説明しています。土台は HTTP です。

OData は OASIS の標準で、もとは Microsoft が開発しました。SAP だけの仕組みではなく、業界の標準の決まりです。

HTTP を使うので、OData はブラウザでも試せます。返ってくるデータの形は、XML か JSON を選べます。

Fiori アプリとの関係

SAP の中で OData を受け付けるのが SAP Gateway です。SAP Gateway は、SAP の機能を OData サービス として公開し、いろいろな端末やアプリから SAP のデータを使えるようにします。

Fiori アプリは、OData でバックエンドのデータを表示し、更新します。OData サービスは、Fiori アプリを動かすのに欠かせない部品です。

OData でデータを受け取る流れ

使う側(Fiori アプリ・ブラウザ・SAP Gateway クライアント)が URL を送ると、SAP Gateway の OData サービスが SAP のデータを読み、JSON や XML で返します。

似た名前が出てくるので、ここで整理しておきます。

名前中身
SAP GatewaySAP の機能を OData サービスとして公開する仕組みです。
SAP Gateway Foundation(SAP_GWFND)SAP Gateway の中心になるソフトウェアコンポーネントです。
SAP Gateway クライアントOData サービスを試すためのツールです(T-CODE:/IWFND/GW_CLIENT)。

V2 と V4

OData には版があり、SAP Gateway Foundation は V2 と V4 に対応しています。この記事で扱うのは V2 のサービスです。

V2V4
URL の形/sap/opu/odata/<namespace(名称領域)>/<サービス名>//sap/opu/odata4/<サービスグループ ID>/<リポジトリ ID>/<サービス ID>/<版>(グループ ID とサービス ID には namespace(名称領域) が入ります)
URL の例/sap/opu/odata/sap/API_COMPANYCODE_SRV//sap/opu/odata4/sap/zst006_ui_companycode_o4/srvd/sap/zst006_ui_companycode/0001/
サービスの管理T-CODE:/IWFND/MAINT_SERVICET-CODE:/IWFND/V4_ADMIN(サービスグループの単位で公開)

覚えておきたい用語

用語意味
サービス外部のアプリから呼び出せるように公開された OData の窓口です。例: API_COMPANYCODE_SRV
エンティティセット同じ種類のデータの集まりです。例: 会社コードの集まり A_CompanyCode
エンティティエンティティセットの中の 1 件です。例: 会社コード 1010
プロパティ1 件が持つ項目です。例: 会社コード、会社名、通貨
キー1 件を一意に決める項目です。例: 会社コード
エンティティタイプ1 件の形(どんなプロパティとキーを持つか)の定義です。
サービスドキュメントサービスのいちばん上の説明で、エンティティセットの一覧が書かれています。
$metadataサービスのデータの形を丸ごと書いた XML です。エンティティタイプ・プロパティ・キーが分かります。
ナビゲーションプロパティある 1 件から、関連する別のデータへのリンクです(例: 製品から、その製品の仕入先へ)。

Excel の表にたとえると、エンティティセットが「表」、エンティティが「行」、プロパティが「列」にあたると考えると分かりやすいでしょう。

サービス・エンティティセット・エンティティ・プロパティの関係

会社コードのサービスを例にした図です。図の表では、1 行が 1 件(エンティティ)、列が項目(プロパティ)にあたります。

URL の読み方

OData では、どのデータがほしいかを URL で指定します。たとえば、会社コード 1010 の会社コードと会社名を JSON で受け取る URL は次のとおりです。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/A_CompanyCode('1010')?$select=CompanyCode,CompanyCodeName&$format=json
OData の URL の読み方

画面の見方

  1. SAP のサーバ: お使いのシステムのホストとポートです。
  2. OData V2 の入口と namespace(名称領域): V2 のサービスは /sap/opu/odata/ の後ろに namespace(名称領域) が入ります。
  3. サービス名: どの OData サービスを呼ぶかです。
  4. エンティティセット: サービスの中の、どのデータの集まりかです。ここで止めると一覧が返ります。
  5. キー: 括弧でキーの値を付けると、その 1 件だけが返ります。文字のキーは '(シングルクォート)で囲みます。
  6. クエリオプション: ? の後ろに、絞り込み・項目・形式などを付けます。2 つ以上は & でつなぎます。

この例では、namespace(名称領域)は sap です。

namespace(名称領域)は、サービスの持ち主を表す部分です。SAP が作ったサービスと、Z・Y で始まる自社のサービスは sap になります。自社で名称領域(/ABC/ など)を予約している会社のサービスは、sap の代わりにその名称領域(例 /sap/opu/odata/abc/…)が入ります。

OData で決められているクエリオプション(システムクエリオプション)は、名前が $ で始まります。よく使うものは次のとおりです。

クエリオプション意味例
$format返す形式。json か xml$format=json
$top先頭から何件返すか$top=3
$skip先頭から何件飛ばすか($top と組み合わせてページ送り)$skip=2&$top=3
$filter条件で絞り込む。eq(等しい)・ne(等しくない)・gt(より大きい)・lt(より小さい)、and・or$filter=CompanyCode eq '1010'
$select返す項目を選ぶ$select=CompanyCode,Currency
$orderby並べ替え。asc(昇順)・desc(降順)$orderby=CompanyCode desc
$inlinecount一覧と一緒に総件数を返す(V2)$inlinecount=allpages
$expand関連するデータ(ナビゲーションプロパティの先)も一緒に返す$expand=<ナビゲーションプロパティ>

件数だけがほしいときは、V2 ではエンティティセットの後ろに /$count を付けます(例: A_CompanyCode/$count)。V2 の $count は、? の後ろに付けるクエリオプションではありません。

SEGW で作ったサービスのうち、データを返す処理を自分で ABAP で書いたものでは、$filter・$top・$skip・$orderby・$inlinecount は開発側の実装が必要です。そのため、サービスによっては使えないクエリオプションがあります。CDS ビューをもとにしたサービスでは、フレームワーク(SADL)がこれらのクエリオプションを処理します。

HTTP メソッドと操作

OData では、URL に加えて HTTP メソッド で「何をするか」を伝えます。

HTTP メソッド操作
GETデータを取得する(1 件・一覧)
POSTデータを新しく作成する
PUTデータを更新する(1 件の内容をまるごと送る)
PATCH・MERGEデータの一部の項目だけを送って更新する(送らなかった項目はそのまま)
DELETEデータを削除する

この記事で使うのは、データを取得する GET だけです。POST・PUT・PATCH・MERGE・DELETE は SAP のデータを変えます。中身を見たいだけのときは、GET だけを使うとよいでしょう。

サービスを探す

V2 の OData サービスは、T-CODE:/IWFND/MAINT_SERVICE で一覧を見られます。ここで、サービスの名前と、呼び出せる状態かどうかを確かめます。

1. T-CODE:/IWFND/MAINT_SERVICE を開く

コマンドフィールドに /n/IWFND/MAINT_SERVICE と入力し、Enter キーを押します。画面「サービスの有効化および更新」が開きます。

サービスの有効化および更新

画面の見方

  1. フィルタ: 一覧に表示するサービスを、名前などで絞り込みます。

上の「サービスカタログ」が登録済みのサービスの一覧で、下が一覧で選んだサービスの詳細(ICF ノードとシステムエイリアス)です。

2. サービス名で絞り込む

「フィルタ」を押すと、ダイアログ「サービスカタログのフィルタ」が開きます。外部サービス名に API_COMPANYCODE_SRV と入力し、「続行」を押します。

サービスカタログのフィルタ

画面の見方

  1. 外部サービス名: 絞り込みに使うサービスの名前です。
  2. 続行: 入力した条件で一覧を絞り込みます。

3. サービスの情報を確かめる

会社コードのサービス

画面の見方

  1. 技術サービス名: サービスカタログに登録されたサービスの名前です。
  2. 外部サービス名: サービスのもう 1 つの名前です。
  3. ICF ノードのステータス: サービスを呼び出す入口(ICF ノード)の状態を表すアイコンです。
  4. ブラウザ呼出: サービスをブラウザで呼び出します。
  5. SAP Gateway Client: サービスを SAP Gateway クライアント(T-CODE:/IWFND/GW_CLIENT)で試します。

この例では、一覧に 1 行だけ表示されました。技術サービス名は ZAPI_COMPANYCODE_SRV、外部サービス名は API_COMPANYCODE_SRV です。URL に入れるのは外部サービス名の API_COMPANYCODE_SRV です。ICF ノード ODATA のステータスは緑のアイコンで、説明は「サービスが有効です」です。

SAP のヘルプによると、V2 のサービスは、サービスごとに ICF ノードがあり、使う前にそれぞれ有効にする必要があります。

ブラウザで OData を開く

ブラウザのアドレス欄に URL を入れて、OData の中身を見ます。

ログオンするクライアントを指定するときは、URL に sap-client=<クライアント> を付けます。? の後ろにほかの指定があるときは &sap-client=<クライアント> です(例: …/API_COMPANYCODE_SRV/?sap-client=100)。sap-client は $ で始まらない指定です。この例では、存在しないクライアント 999 を指定すると、「ログオンに失敗しました」(ステータスコード 401)になりました。

1. サービスドキュメントを開く

サービス名の後ろで止めた URL を開きます。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/
サービスドキュメント

画面の見方

  1. エンティティセット: このサービスで使えるエンティティセットです。href の値がエンティティセットの名前です。

この例では、エンティティセットは A_CompanyCode の 1 つだけです。

2. $metadata でデータの形を見る

サービス名の後ろに $metadata を付けます。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/$metadata
$metadata

画面の見方

  1. エンティティタイプ: 1 件の形の定義です。Key の中がキー、Property の 1 行 1 行がプロパティです。
  2. エンティティセット: エンティティセットの名前と、どのエンティティタイプのデータかです。

この例では、エンティティタイプ A_CompanyCodeType のキーは CompanyCode です。プロパティは CompanyCodeName・CityName・Currency など 21 項目あり、sap:label に「会社名」「市区町村」「通貨」のような日本語の項目名が入っています。$metadata は XML でしか取れません。

3. エンティティセットのデータを見る

エンティティセット A_CompanyCode の後ろにクエリオプションを付けます。ここでは、先頭の 2 件($top=2)、4 つの項目($select)を、JSON($format=json)で受け取ります。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/A_CompanyCode?$top=2&$select=CompanyCode,CompanyCodeName,CityName,Currency&$format=json
エンティティセットのデータ(JSON)

画面の見方

  1. エンティティ(1 件): results の中の { } 1 組が 1 件です。
  2. プロパティと値: "プロパティ名": "値" の形で並びます。

この例では、会社コード 0001 と 0002 の 2 件が返り、$select で選んだ 4 項目だけが入っています。__metadata の uri には、その 1 件を指す URL(A_CompanyCode('0001') など)が入っています。画面は、ブラウザの上の「プリティ プリント」にチェックを付けて、改行と字下げを入れて表示しています。

4. 条件で絞り込む

$filter で条件を付けます。ここでは、会社コードが 1010 または 1710 のものだけを受け取ります。文字の値は ' で囲みます。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/A_CompanyCode?$filter=CompanyCode eq '1010' or CompanyCode eq '1710'&$select=CompanyCode,CompanyCodeName,CityName,Currency&$format=json
条件で絞り込んだ結果

画面の見方

  1. 1 件目のプロパティと値: 条件に合った 1 件目です。
  2. 2 件目のプロパティと値: 条件に合った 2 件目です。

この例では、会社コード 1010 と 1710 の 2 件だけが返りました。

5. 件数を数える

エンティティセットの後ろに /$count を付けると、件数だけが返ります。

https://<ホスト>:<ポート>/sap/opu/odata/sap/API_COMPANYCODE_SRV/A_CompanyCode/$count

この例では、絞り込みなしの全件の数として、数字だけの 435 が返りました。

SAP Gateway クライアントで試す

SAP Gateway クライアント(T-CODE:/IWFND/GW_CLIENT)は、どの OData サービスでもテストできるツールです。HTTP メソッドを選び、URL を入れて実行します。「サービスを探す」の手順 3 で ⑤「SAP Gateway Client」を押すと、要求 URI にそのサービスの URL が入った状態で開きます。

1. 要求 URI を入れて実行する

要求 URI を書き換えて、「実行」を押します。

SAP Gateway クライアント

画面の見方

  1. HTTP メソッド: 何をするかを選びます。データを見るときは GET です。
  2. 要求 URI: 呼び出す URL を、/sap/opu/odata/ から入れます(ホストとポートは要りません)。
  3. 実行: 要求を送ります。

この例では、会社コード 1010 の 1 件を JSON で受け取るよう、要求 URI に /sap/opu/odata/sap/API_COMPANYCODE_SRV/A_CompanyCode('1010')?$format=json を入れています。画面の HTTP メソッドには、表にない HEAD もあります。

2. 応答を確かめる

右側の「HTTP 応答」に結果が表示されます。

HTTP 応答

画面の見方

  1. ステータス: 応答のステータスコード(~status_code)と、その理由(~status_reason)です。
  2. データエクスプローラ: 応答の中身を、項目名と値の表で表示します。

この例では、ステータスコードは 200、理由は OK です。応答の本文の欄は、文字化けして読めないことがあります。本文は、データエクスプローラで見るとよいでしょう。

3. データエクスプローラで中身を見る

「データエクスプローラ」を押すと、応答の中身が表で表示されます。

データエクスプローラ

画面の見方

  1. パラメータ名: 応答に入っている項目の名前です。
  2. パラメータ値: その項目の値です。

この例では、会社コード 1010 の会社名(Company Code 1010)・市区町村(Walldorf)・通貨(EUR)などが並んでいます。もとの表示に戻すときは「元の本体」を押します。

OData サービスの作り方

OData サービスの作り方は、大きく 2 通りあります。

OData サービスの作り方は 2 通り
作り方流れ
SEGW(SAP Gateway Service Builder)T-CODE:SEGW でプロジェクトを作り、データモデルを定義します。データを返す処理は、生成されたクラス(データプロバイダの拡張クラス、名前の末尾が _DPC_EXT)に ABAP で書きます。できたサービスは T-CODE:/IWFND/MAINT_SERVICE で登録し、有効にします。
RAP(ABAP RESTful Application Programming Model)ABAP Development Tools(ADT)で、CDS ビューでデータモデルを作り、サービス定義で公開する CDS ビューを決めます。サービスバインディングで V2 / V4 などの種類を選んで有効化し、公開(Publish)します。オンプレミスでは、この公開はそのシステムだけのもので、公開した状態は移送できません。

この記事で使った会社コードのサービスは、SAP が SEGW で作ったものです。システムには、SAP が作ったプロジェクト API_COMPANYCODE と、クラス CL_API_COMPANYCODE_DPC_EXT などがあります。

SAP は、使えるならビジネスサービス(RAP のサービス定義とサービスバインディング)がいちばん将来性があるとしています。また、OData V4 の開発は、SEGW ではなく ADT を使うやり方を強く推奨しています。

RAP で OData サービスを作る手順は、後編の記事で、画面を使って解説しています。

うまくいかないとき

「サービスが見つかりません」と返る

存在しないサービス名を呼んだときや、公開を取り消したサービスを呼んだときは、エラーのコード /IWFND/MED/170 が返ります。

サービスが見つからないときのエラー

画面の見方

  1. エラーのコードとメッセージ: エラーのコードと、サービスの名称領域・名称・バージョンが書かれています。
  2. 調べ方の案内: 調べるためのトランザクションが書かれています。

この例では、存在しないサービス名 ZNOT_EXIST_SRV を呼んだので、「名称領域 ”、名称 ‘ZNOT_EXIST_SRV’、バージョン ‘0001’ のサービスが見つかりません」と返りました。② には、T-CODE:/IWFND/ERROR_LOG で上のタイムスタンプの記録を探すよう書かれています。T-CODE:/IWFND/ERROR_LOG は、実行時に起きたエラーの時刻や場所を調べるためのログです。

このエラーが返ったときは、まず外部サービス名の綴りを確かめるとよいでしょう。

400 エラーが返る

キーや $filter の文字の値を ' で囲まないと、ステータスコード 400 のエラーが返ります。

呼び方返ったメッセージ
A_CompanyCode(1010)Invalid key predicate type for ‘CompanyCode’. Expected type is ‘Edm.String’
A_CompanyCode?$filter=CompanyCode eq 1010Invalid parametertype used at function ‘eq’ (Position: 13)

CompanyCode の型は、$metadata では Edm.String(文字)です。文字の値は A_CompanyCode('1010')・CompanyCode eq '1010' のように ' で囲みます。

まとめ

  • OData は、URL を送るとデータが返ってくる Web の決まりです。Fiori アプリは OData で SAP のデータを表示・更新します。
  • URL は「サービス名 / エンティティセット (キー) ? クエリオプション」の順に読みます。$metadata でデータの形が分かります。
  • T-CODE:/IWFND/MAINT_SERVICE でサービスを探し、ブラウザか T-CODE:/IWFND/GW_CLIENT の GET で中身を見られます。
レイナ

URL の後ろに $filter や $select を付けるだけで、ほしいデータを選べるんですね!

博士

うむ。$metadata を開けば、項目・キー・型も分かるのじゃ。

  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
COFIPP

【S/4HANA AMS体制Functional Lead】リモート可/R2R・P2D領域インシデント対応

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 運用・保守
作業内容:
グローバル企業のSAP S/4HANA AMS体制に...
COMMSD

【ECC6.0→S/4HANA再構築】東京・都内(出社)/SD・MM・CO ABAP開発・設計・テスト

月額単価
~1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori), テスト
作業内容:
SAP ECC6.0からS/4HANAへの大型再構築プ...
MMPPSD

【SAP S/4保守・運用(ABAP)】東京・田無(テレワーク併用)/インシデント対応・ABAP改修

月額単価
~1,000,000円 / 月
稼働場所
東京都
業務領域
開発(ABAP/Fiori), 運用・保守
作業内容:
SAP S/4の保守・運用フェーズに参画し、...
COFIMMPPSD

【SAP Public Cloud導入(組立製造業・多モジュール)】兵庫(リモート対応可)/MM・SD・FI・CO・PP

月額単価
~1,100,000円 / 月
稼働場所
兵庫県
業務領域
要件定義
作業内容:
組立製造業を対象としたSAP Public Clou...
MMSD

【S/4HANA導入支援(システムテスト・移行)】東京・リモート併用/移行支援

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
テスト
作業内容:
S/4HANA導入プロジェクトの移行フェーズ...
COFIMMSD

【S/4HANA導入支援】東京(リモート併用)/基本設計&実装

月額単価
~1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
商社系のシステム再構築プロジェクトに...
SD

【S/4HANA新規導入支援(SDコンサルタント)】東京(リモート併用)/設計構築フェーズ

月額単価
~1,500,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
大手企業のS/4HANA新規導入プロジェクト...
COFI

【S/4HANA新規導入支援(原価チームリーダー)】東京駅・リモート併用

月額単価
~1,900,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
S/4HANA新規導入プロジェクトに参画し、...
FIPP

【S/4HANAコンサルティング(FI/PP)】兵庫・加古川(リモート併用)/結合テスト・キーユーザ教育

月額単価
~1,300,000円 / 月
稼働場所
兵庫県
業務領域
テスト, その他
作業内容:
組立製造業向けのS/4HANA導入プロジェク...
COFI

【商社向けパブクラ移行(FICOコンサル)】宮城・仙台(リモート併用)/要件定義+構築

月額単価
~1,100,000円 / 月
稼働場所
宮城県
業務領域
要件定義, 設計
作業内容:
総合商社向けのSAP PublicEdition移行案...

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社スプラッシュエンジニアリング(https://splash-eng.com/)の代表取締役。

新卒でSAPエンジニアとして働き始め、SAPエンジニア・コンサルタント歴は10年以上。
2015年にシステム開発会社である株式会社Luxyを創業し2021年にバイアウト。その後、受託開発会社の株式会社アガルートITパートナーズ代表取締役も兼任。
2024年にこれまでの会社の代表を退任し株式会社スプラッシュエンジニアリングを創業。

一緒に「SAPラボ」を盛り上げてくれる副業ライター(SAP経験者)を募集してますので、お問い合わせよりお願いします!

この記事のポイント