この記事を読むメリット
RAP で OData サービスを作る順番(CDS ビュー → サービス定義 → サービスバインディング → 公開)が分かる
Eclipse(ADT)の画面で、CDS ビュー・サービス定義・サービスバインディングを作って公開する手順が分かる
作ったサービスを T-CODE:/IWFND/MAINT_SERVICE・ブラウザ・T-CODE:/IWFND/GW_CLIENT で確かめる方法が分かる
前編の「ODataとは?仕組みと見方を解説」では、SAP が用意した OData サービスを開いて、中身の見方を説明しました。
あわせて読みたい
【SAP Fiori】ODataとは?仕組みと見方を解説
この記事を読むメリット OData が何か、Fiori アプリとどう関係するかが分かる OData の URL の読み方(サービス・エンティティセット・キー・クエリオプション)が分かる…
後編のこの記事では、RAP(ABAP RESTful Application Programming Model) を使って、OData サービスを自分で作ります。
会社コードの一覧を返す読み取り専用のサービスを、Eclipse の画面と SAP の画面を見ながら 1 つずつ作り、公開して呼び出すところまで進めます。OData は V2 と V4 の 2 通りを作ります。
博士!OData の見方は分かったんですけど、自分で OData サービスを作るにはどうすればいいんですか?
うむ、RAP で作れるぞい。会社コードを返すサービスを、Eclipse と SAP の画面を見ながら一緒に作ってみるのじゃ!
この記事のポイント
RAP で作るもの
実務での要件の例
社内の別のシステムの担当から「会社コードの一覧を読みたいので、OData のサービスを用意してほしい」と頼まれた場面を考えます。
この記事では、この依頼を例に画面を追って操作します。例で使うデータは次のとおりです。
データ この例の値 使うところ 元のテーブル T001(会社コード) CDS ビューでデータを読むテーブルです CDS ビュー(データ定義) ZST006_I_CompanyCode T001 の会社コード・名称・都市・国・通貨を選ぶために作ります サービス定義 ZST006_UI_COMPANYCODE 公開する CDS ビューを決めるために作ります サービスバインディング ZST006_UI_COMPANYCODE_O2(OData V2 – UI)と ZST006_UI_COMPANYCODE_O4(OData V4 – UI) 公開して、ブラウザや T-CODE:/IWFND/GW_CLIENT で呼び出します パッケージ $TMP(ローカルオブジェクト) この記事の部品をすべて作る場所です 名前の頭 ZST006_ 部品の名前に付けた、この記事の例です。ほかの人と重ならない名前にします
番号は、この記事で使った検証環境のものです。ご自分の環境では、それぞれの番号に読み替えてください。
この要件は、次のように分けて進めます。
要件の部分 どうするか 返す項目を決める CDS ビュー ZST006_I_CompanyCode で、テーブル T001 の会社コード・名称・都市・国・通貨を選びます OData サービスにする サービス定義 ZST006_UI_COMPANYCODE で公開する CDS ビューを決め、サービスバインディング(V2・V4)を作ります 呼び出せるようにする サービスバインディングを公開し(V4 は T-CODE:/IWFND/V4_ADMIN で公開)、ブラウザや T-CODE:/IWFND/GW_CLIENT で確かめます データを更新できるようにする この記事では扱いません。作るのは読み取り専用のサービスです
作る部品と順番
RAP では、OData サービスのデータモデルを CDS で定義します。そのうえで、次の順に部品を作ります。
この記事では、テーブル T001 から CDS ビューを作り、② のサービス定義から V2 と V4 の 2 つのサービスバインディングを作ります。前編で見た V2 と比べられるように、両方を作ります。
部品 役割 ① CDS ビュー(データ定義) テーブルのどの項目を使うかを、SQL のような文で定義します。 ② サービス定義 OData サービスに含める CDS ビューを決めます。OData の版(V2・V4)には関係しません。 ③ サービスバインディング サービス定義を、OData V2 や OData V4 などのプロトコルに結び付けます。 ④ 公開(Publish) サービスバインディングの画面で公開すると、SAP Gateway で有効になり、呼び出せるようになります。
1 つのサービス定義から、サービスバインディングは複数作れます。
SAP のヘルプでは、RAP の前提(Prerequisites)として、AS ABAP 7.55 SP00 以上で作業していること、SAP Gateway の設定が済んでいること、ADT で ABAP プロジェクトを作ってシステムにつないでいることを挙げています。権限については、ロール SAP_BC_DWB_ABAPDEVELOPER(ABAP Developer)と SAP_BC_DWB_WBDISPLAY(Display User)を挙げています。サービスバインディングなどの権限は、これとは別に足す必要があるとしています。SAP Gateway については、サービスの開発に /IWFND/RT_DEVELOPER、公開に /IWFND/RT_ADMIN、利用に /IWFND/RT_GW_USER のテンプレートのロールが要るとしています。
Eclipse を準備する
RAP の部品は、Eclipse に ABAP Development Tools(ADT)を入れて作ります。ADT は SAP の配布サイト(tools.hana.ondemand.com)で配られています。
対応する Eclipse の版は、配布サイトの ADT の欄に書かれています。
Eclipse のメニュー Help → Install New Software で、配布サイトの URL https://tools.hana.ondemand.com/latest を入れ、ABAP Development Tools を選んで入れます。
Windows からオンプレミスの SAP につなぐには、SAP GUI for Windows も要ります。
1. ABAP プロジェクトを作る
ADT では、SAP のシステムとつなぐために ABAP プロジェクト を作ります。メニューの File → New → ABAP Project を選びます。
画面の見方
New : 新しく作るものを選ぶメニューです。
ABAP Project : SAP のシステムにつなぐプロジェクトを作ります。
2. 接続先を選ぶ
接続先のシステムを選んで「Next」を押します。
画面の見方
接続先 : つなぐシステムの行です。一覧には、SAP Logon に登録してある接続先が出ます。
Next : 次の画面に進みます。
この例では、SAP Logon の接続先 S4(システム ID FAA)を選びました。次の接続の設定の画面は、そのまま「Next」を押します。
3. ログオンする
クライアント・ユーザー・パスワード・言語を入れて、「Finish」を押します。
画面の見方
ログオンの情報 : SAP にログオンするクライアント・ユーザー・パスワード・言語です。
Finish : プロジェクトを作ります。
この例では、クライアント 100、言語 JA でログオンしました。
4. プロジェクトを確かめる
左の Project Explorer に、作ったプロジェクトが表示されます。
画面の見方
ABAP プロジェクト : つないだシステムのプロジェクトです。後ろの [ ] に、システム・クライアント・ユーザー・言語が表示されます。
Local Objects ($TMP) : 自分のローカルオブジェクト(パッケージ $TMP)です。この記事の部品は、すべてここに作ります。
CDS ビューを作る
最初に、テーブル T001 から会社コードの項目を選ぶ CDS ビューを作ります。CDS ビューは データ定義(Data Definition) として作ります。
1. 新規作成のメニューを開く
Local Objects ($TMP) を右クリックし、New → Other ABAP Repository Object を選びます。
画面の見方
Local Objects ($TMP) : 作る先のパッケージです。
New : 新しく作るもののメニューです。
Other ABAP Repository Object : 作るものの種類を一覧から選びます。
2. Data Definition を選ぶ
Core Data Services → Data Definition を選んで、「Next」を押します。
画面の見方
Core Data Services : CDS の部品の種類です。
Data Definition : CDS ビューを書くためのデータ定義です。
Next : 次の画面に進みます。
3. 名前と説明を入れる
名前と説明を入れて、「Next」を押します。
画面の見方
Package : 作る先のパッケージです。
Name・Description : データ定義の名前と説明です。
Next : 次の画面に進みます。
この例では、Name に ZST006_I_COMPANYCODE、Description に 会社コード(OData 練習) を入れました。
4. 移送依頼の画面を進める
移送依頼を選ぶ画面です。$TMP に作るときは、何も選ばずに「Next」を押します。
画面の見方
メッセージ : パッケージ $TMP では変更記録が有効になっていない、という表示です。
Next : 次の画面に進みます。
5. テンプレートを選ぶ
ソースのひな形(テンプレート)を選んで、「Finish」を押します。
画面の見方
defineViewEntity : CDS ビュー(ビューエンティティ)を作るためのテンプレートです。
Finish : データ定義を作り、エディタを開きます。
テンプレートの下に、ひな形のソースが表示されます。ソースは次の手順で書き換えます。
6. ソースを書いて有効化する
開いたエディタのソースを、次のとおりに書き換えます。Ctrl+S で保存し、Ctrl+F3 で有効化します。
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '会社コード(OData 練習)'
define view entity ZST006_I_CompanyCode
as select from t001
{
key bukrs as CompanyCode,
butxt as CompanyCodeName,
ort01 as CityName,
land1 as Country,
waers as Currency
}
行 意味 @AccessControl.authorizationCheck: #NOT_REQUIREDアクセス制御(CDS ロール)の設定です。NOT_REQUIRED は、CDS ロールが無いときに出る警告を出さないための値で、アクセス制御そのものを止めるものではありません。CDS ロールを作れば、アクセス制御が効きます。SAP の入門の手順でも NOT_REQUIRED にしています。 @EndUserText.labelCDS ビューの説明です。 define view entity ZST006_I_CompanyCodeCDS ビューの名前です。テンプレートには、データ定義の名前をもとにした名前が入っています。 as select from t001データを読むテーブルです。 key bukrs as CompanyCodekey を付けた項目が CDS ビューのキーになります。as の後ろは項目の別名です。butxt as CompanyCodeName など使う項目と、その別名です。
この例では、会社コードごとに見せるデータを絞る CDS ロールは作っていないので、どのユーザーにも全部の会社コードが返ります。
この例は、ABAP の言語版が Standard ABAP(従来の ABAP)のデータ定義で、テーブル T001 を直接読んでいます。ABAP for Cloud Development の言語版では、リリースされた API(と同じソフトウェアコンポーネントのオブジェクト)しか使えません。この例のシステムでは、T001 のリリース状態は「NOT_TO_BE_RELEASED」で、後継としてリリース済みの CDS ビュー I_CompanyCode が登録されていました。ABAP for Cloud Development で作るときは、I_CompanyCode のようなリリースされた CDS ビューから作ることになります。
画面の見方
データ定義 : 作ったデータ定義です。Core Data Services → Data Definitions の下に入ります。
ソース : CDS ビューのソースです。
有効化すると、ウィンドウのタイトルに「active」と表示されます。
7. データプレビューで確かめる
エディタの中をクリックして F8 を押すと、CDS ビューが返すデータを一覧で見られます。
画面の見方
Data Preview : CDS ビューのデータを表示するタブです。
項目 : CDS ビューの項目です。ソースで付けた別名が見出しになります。
この例では、CompanyCode・CompanyCodeName・CityName・Country・Currency の 5 項目が表示されました。
サービス定義を作る
次に、OData サービスに含める CDS ビューを決める サービス定義 を作ります。
1. Service Definition を選ぶ
Local Objects ($TMP) を右クリックし、New → Other ABAP Repository Object を選びます。Business Services → Service Definition を選んで、「Next」を押します。
画面の見方
Business Services : サービス定義・サービスバインディングの種類です。
Service Definition : サービス定義です。
Next : 次の画面に進みます。
2. 名前と説明を入れる
名前と説明を入れて、「Next」を押します。移送依頼の画面は、CDS ビューのときと同じく何も選ばずに「Next」を押します。
画面の見方
Name・Description : サービス定義の名前と説明です。
この例では、Name に ZST006_UI_COMPANYCODE、Description に 会社コード(OData 練習) を入れました。
3. テンプレートを選ぶ
テンプレート defineService を選んで、「Finish」を押します。
画面の見方
defineService : サービス定義を作るためのテンプレートです。
Finish : サービス定義を作り、エディタを開きます。
4. ソースを書いて有効化する
エディタのソースを次のとおりに書き換え、Ctrl+S で保存し、Ctrl+F3 で有効化します。
@EndUserText.label: '会社コード(OData 練習)'
define service ZST006_UI_COMPANYCODE {
expose ZST006_I_CompanyCode as CompanyCode;
}
行 意味 define service ZST006_UI_COMPANYCODEサービス定義の名前です。 expose ZST006_I_CompanyCode as CompanyCode;サービスに含める CDS ビューです。as の後ろの別名(任意)が、OData のエンティティセットの名前になります。
サービスバインディング(V2)を作って公開する
サービス定義を OData V2 に結び付ける サービスバインディング を作り、公開します。
1. Service Binding を選ぶ
Local Objects ($TMP) を右クリックし、New → Other ABAP Repository Object を選びます。Business Services → Service Binding を選んで、「Next」を押します(「サービス定義を作る」の手順 1 の画面で、Service Definition の 1 つ上にあります)。
2. バインディングの種類を選ぶ
名前と説明を入れ、Binding Type の一覧から種類を選びます。
画面の見方
Binding Type : プロトコル(OData V2・V4、InA、SQL)と用途(UI・Web API)の組み合わせです。
OData V2 – UI : OData V2 の、UI(Fiori アプリなど)用のサービスです。
OData V4 – UI : OData V4 の、UI 用のサービスです。
一覧には、InA – UI・OData V2 – UI・OData V2 – Web API・OData V4 – UI・OData V4 – Web API・SQL – Web API が並びます。SAP のヘルプでは、UI は Fiori elements などの UI を付けられるサービス、Web API は UI 以外の用途で使うサービスと説明しています。また、名前の頭に、UI のサービスは UI_、Web API は API_ を付けることを勧めています。
3. サービス定義を選んで作る
名前・説明・Binding Type を入れてサービス定義を選ぶと、「Finish」が押せるようになります。この例では、そのまま「Finish」を押して作りました。
画面の見方
Name・Description : サービスバインディングの名前と説明です。名前は 26 文字までです。
Binding Type・Service Definition : バインディングの種類と、使うサービス定義です。
注意書き : どの版を使うかの目安です。
Finish : サービスバインディングを作ります。
この例では、Name に ZST006_UI_COMPANYCODE_O2、Binding Type に OData V2 - UI、Service Definition に ZST006_UI_COMPANYCODE を指定しました。
③ には、「実装タイプ managed でドラフトを使わず、Fiori Elements を使う場合は OData V2 で公開する。それ以外は OData V4 を強く推奨する」という意味の英文が表示されています。SAP のヘルプでも、取引系のサービスにはできるだけ OData V4 を使うよう書かれています。
バインディングの種類は、作った後には変えられません。
4. 有効化して公開する
サービスバインディングのエディタが開きます。Ctrl+F3 で有効化してから、Publish を押します。
画面の見方
Binding Type : バインディングの種類です。
Service Versions : サービスの版と、使っているサービス定義です。
Local Service Endpoint : 公開の状態です。
Publish : サービスを公開します。
この例では、公開前の Local Service Endpoint は Unpublished でした。
公開するには、サービスバインディングが有効化されている必要があります。
5. 公開できたことを確かめる
公開が終わると、エディタの右側にサービスの URL とエンティティセットが表示されます。
画面の見方
Local Service Endpoint : 公開の状態です。
Service URL : サービスの URL です。リンクを押すと、ブラウザでサービスドキュメントが開きます。
Entity Set and Association : サービスに含まれるエンティティセットです。
この例では、Local Service Endpoint が Published になり、ボタンが Unpublish(公開の取り消し)に変わりました。Service URL は /sap/opu/odata/sap/ZST006_UI_COMPANYCODE_O2、エンティティセットは CompanyCode でした。エンティティセットの名前には、サービス定義で付けた別名が使われています。
サービスバインディング(V4)を作って公開する
同じサービス定義から、OData V4 のサービスバインディングも作ります。手順は V2 と同じで、Binding Type に OData V4 – UI を選びます。
この例では、Name に ZST006_UI_COMPANYCODE_O4、Description に 会社コード OData V4、Service Definition に ZST006_UI_COMPANYCODE を指定しました。
1. 有効化して公開する
エディタで Ctrl+F3 で有効化してから、Publish を押します。V4 のエディタは、Publish ボタンが左側の Services の中にあります。
画面の見方
Binding Type : バインディングの種類です。
Services : サービスの名前・版・サービス定義です。
Local Service Endpoint と Publish : 公開の状態と、公開するボタンです。
この例では、Publish でエラー(Local Publish of … failed)が表示されました。そこで、「うまくいかないとき」の手順で公開しました。
2. 公開できたことを確かめる
公開した後にエディタを開き直すと、Local Service Endpoint が Published になっていました。Services の下の版(1.0.0)を選ぶと、右側に URL とエンティティセットが表示されます。
画面の見方
Local Service Endpoint と Unpublish : 公開の状態と、公開を取り消すボタンです。
サービスの版 : 選ぶと、右側にその版の情報が表示されます。
Service URL : サービスの URL です。
Entity Set and Association : サービスに含まれるエンティティセットです。
この例では、呼び出しに使った URL は /sap/opu/odata4/sap/zst006_ui_companycode_o4/srvd/sap/zst006_ui_companycode/0001/ でした。V2 とは形が違い、/sap/opu/odata4/ で始まります。
SAP の学習コンテンツでは、V4 のサービスは単体ではなく サービスグループ として公開され、URL は /sap/opu/odata4/sap/<サービスグループ>/<リポジトリ ID>/sap/<サービス>/<版> の形になると説明しています。この例では、サービスグループがサービスバインディングの名前、リポジトリ ID が srvd、サービスがサービス定義の名前、版が 0001 でした。
SAP の画面で確かめる
公開したサービスを、SAP の画面とブラウザで確かめます。V2 の見方は前編で説明したものと同じです。
1. T-CODE:/IWFND/MAINT_SERVICE で V2 のサービスを探す
T-CODE:/IWFND/MAINT_SERVICE は、OData V2 のサービスの一覧です。「フィルタ」を押して、外部サービス名で絞り込みます。
画面の見方
外部サービス名 : 絞り込みに使うサービスの名前です。
続行 : 入力した条件で絞り込みます。
この例では、外部サービス名に ZST006* と入れて絞り込みました。
画面の見方
技術サービス名 : サービスカタログに登録されたサービスの名前です。
外部サービス名 : サービスのもう 1 つの名前です。
ICF ノードのステータス : サービスを呼び出す入口(ICF ノード)の状態を表すアイコンです。
この例では、技術サービス名と外部サービス名はどちらも ZST006_UI_COMPANYCODE_O2 で、サービスバインディングの名前と同じでした。ICF ノード ODATA は緑のアイコン(サービスが有効です)でした。Publish を押しただけで、ここに登録されています。
2. ブラウザでサービスドキュメントを開く
サービスバインディングの Service URL をブラウザで開きます。ブラウザは、ADT と同じクライアントにログオンするようにします。クライアントを指定するときは、前編で説明したとおり、URL に sap-client=<クライアント> を付けます。
https://<ホスト>:<ポート>/sap/opu/odata/sap/ZST006_UI_COMPANYCODE_O2/
画面の見方
エンティティセット : サービス定義で公開した CDS ビューです。href の値がエンティティセットの名前です。
この例では、エンティティセット CompanyCode の sap:member-title は「会社コード(OData 練習)」で、CDS ビューやサービス定義の説明と同じ文字列でした。一覧には SAP__ で始まるエンティティセットも並んでいますが、これはサービス定義で公開したものではありません。
3. $metadata でデータの形を見る
URL の後ろに $metadata を付けます。
https://<ホスト>:<ポート>/sap/opu/odata/sap/ZST006_UI_COMPANYCODE_O2/$metadata
画面の見方
エンティティタイプ : 1 件の形の定義です。名前は、サービス定義の別名の後ろに Type を付けたものです。
キー : CDS ビューで key を付けた項目です。
プロパティ : CDS ビューの項目です。名前はソースで付けた別名です。
この例では、エンティティタイプは CompanyCodeType、キーは CompanyCode でした。sap:label には「会社コード」「会社名」「市区町村」「国/地域コード」「通貨」のように日本語の項目名が入っています。CDS ビューのソースには、ラベルを書いていません。SAP のヘルプによると、CDS でラベルを付けていないときは、データエレメントの項目ラベルが入ります。この例でも、テーブル T001 の項目のデータエレメントの長いラベルと同じでした。
SAP のヘルプによると、RAP で作った OData V2 のサービスでは、単位と通貨の型が組み込みのエンティティセットとして自動で $metadata に入ります。この例でも、SAP__Currencies と SAP__UnitsOfMeasure が入っていました。前編で見た、SEGW で作られた標準のサービス API_COMPANYCODE_SRV の $metadata には、SAP__ で始まるエンティティセットはありません。
4. V2 のデータを JSON で見る
エンティティセットの後ろに、前編で説明したクエリオプションを付けます。ここでは、会社コード 1010 または 1710 だけを JSON で受け取ります。
https://<ホスト>:<ポート>/sap/opu/odata/sap/ZST006_UI_COMPANYCODE_O2/CompanyCode?$filter=CompanyCode eq '1010' or CompanyCode eq '1710'&$format=json
画面の見方
1 件目 : 条件に合った 1 件目のプロパティと値です。
2 件目 : 条件に合った 2 件目のプロパティと値です。
この例では、会社コード 1010(Company Code 1010、Walldorf、EUR)と 1710(Company Code 1710、Palo Alto、USD)の 2 件が返りました。自分で作った CDS ビューの 5 項目が、そのまま OData のプロパティになっています。
5. V4 のデータを見る
V4 のサービスも、同じようにブラウザで開けます。URL は V4 のサービスバインディングの Service URL です。
https://<ホスト>:<ポート>/sap/opu/odata4/sap/zst006_ui_companycode_o4/srvd/sap/zst006_ui_companycode/0001/CompanyCode?$filter=CompanyCode eq '1010' or CompanyCode eq '1710'
画面の見方
value : 返ったデータの一覧です。
1 件目 : 1 件目のプロパティと値です。
この例では、$format を付けなくても JSON で返りました。V2 の "d"・"results" の代わりに、"value" の中に 1 件ずつ並んでいます。V2 にあった __metadata はありません。
6. T-CODE:/IWFND/GW_CLIENT で呼び出す
SAP Gateway クライアント(T-CODE:/IWFND/GW_CLIENT)でも、V4 のサービスを呼び出せます。要求 URI に、会社コード 1010 の 1 件を指定して実行し、「データエクスプローラ」を押します。
画面の見方
要求 URI : 呼び出す URL です(ホストとポートは要りません)。
ステータス : 応答のステータスコードと、その理由です。
応答本文 : 応答の中身を、パラメータ名とパラメータ値の表で表示しています。
この例では、要求 URI に /sap/opu/odata4/ から入れました。ステータスコード 200(OK)が返り、会社コード 1010 の 5 項目が表示されました。
うまくいかないとき
V4 の Publish で「Local Publish of … failed」と表示される
V4 のサービスバインディングで Publish を押したときに、次のエラーのダイアログが表示された場合の対処です。
画面の見方
エラーのメッセージ : サービスバインディングの公開に失敗したことを表します。
もう 1 つのダイアログには「例外が発生しました」とだけ表示されます。このときは、V4 のサービスグループを T-CODE:/IWFND/V4_ADMIN で公開します。手順は次のとおりです。System Alias には、同じシステム自身を指すシステムエイリアス(画面の例では LOCAL。ローカルの印あり、RFC 接続先 NONE)を選びます。SAP Gateway を別のサーバ(ハブ)に置く構成では、サービスを作ったシステムを指すシステムエイリアスを選びます。
T-CODE:/IWFND/V4_ADMIN を開き、「サービスグループ公開」を押します。
System Alias に LOCAL、Service Group ID にサービスバインディングの名前(この例では ZST006*)を入れ、「サービスグループ取得」を押します。
「非公開サービスグループ」の一覧で、サービスバインディングと同じ名前の行を選び、「サービスグループ公開」を押します。
カスタマイジング依頼を聞かれたら、依頼を指定して続けます。
「新規サービスグループの公開完了」と表示されたら、Eclipse でサービスバインディングのエディタを開き直します。Local Service Endpoint が Published になっています。
画面の見方
System Alias : 絞り込みに使うシステムエイリアスです。
Service Group ID : 探すサービスグループの名前です。
サービスグループ取得 : 条件に合う、まだ公開されていないサービスグループを一覧に出します。
サービスグループ : 公開するサービスグループの行です。
サービスグループ公開 : 選んだ行を公開します。
この例では、サービスバインディング ZST006_UI_COMPANYCODE_O4 と同じ名前のサービスグループが一覧に出ていました。
公開の取り消しと削除
練習で作ったサービスは、使い終わったら消しておくとよいでしょう。
サービスバインディングのエディタで Unpublish を押し、公開を取り消します。
サービスバインディング → サービス定義 → CDS ビューの順に削除します。
公開したままのサービスバインディングは、「Service endpoint of Service Binding … is published.」と出て削除できません。先に公開を取り消します。
V4 は、公開の取り消しも Publish と同じエラーになることがあります。そのときは、T-CODE:/IWFND/V4_ADMIN で次のように取り消します。
左のツリーの「サービスグループ」の下で、サービスバインディングと同じ名前のグループをダブルクリックします。
右上のシステムエイリアスの一覧で LOCAL の割当を「割当削除」で消します。
ツリーのグループを右クリックし、「グループ削除」を選んで「はい」を押します。
カスタマイジング依頼を聞かれたら、依頼を指定して続けます。
グループを削除すると、サービスバインディングが未公開の状態に戻り、削除できるようになります。
なお、SAP のヘルプによると、オンプレミスのシステムでは、サービスバインディングで公開できるのは今のシステムだけです。公開した状態と、そのときにできたものを移送することはできません。品質保証や本番のシステムでサービスを使うには、公開したシステムで公開を取り消し(Unpublish)、SAP Gateway のツールでサービスを有効にして保守します。
この記事の部品は、練習用にパッケージ $TMP に作りました。$TMP では変更記録が有効になっていないので(「CDS ビューを作る」の手順 4 の表示)、品質保証や本番のシステムでも使うサービスは、移送できるパッケージに作るとよいでしょう。
まとめ
RAP では、CDS ビュー → サービス定義 → サービスバインディング → 公開(Publish)の順に作ります。
1 つのサービス定義から、V2 と V4 のサービスバインディングを作れます。URL の形は V2 が /sap/opu/odata/、V4 が /sap/opu/odata4/ で始まります。
公開したサービスは、T-CODE:/IWFND/MAINT_SERVICE・ブラウザ・T-CODE:/IWFND/GW_CLIENT で確かめられます。
あわせて読みたい
【SAP Fiori】ODataとは?仕組みと見方を解説
この記事を読むメリット OData が何か、Fiori アプリとどう関係するかが分かる OData の URL の読み方(サービス・エンティティセット・キー・クエリオプション)が分かる…
あわせて読みたい
【SAP Fiori】CDSビューとは?初心者向けに作成方法までわかりやすく解説
この記事を読むメリット CDSビューとは何か、基本的な仕組みを理解できます。 SAP FioriでCDSビューが利用される理由を理解できます。 CDSビューの基本的な作成手順を学…
CDS ビューとサービス定義を作って、バインディングで公開するだけなんですね!
うむ。1 つのサービス定義から、V2 と V4 の両方を作れるのじゃ。