【SAP】Gateway OData Serviceに関するリンク集（随時更新）

## はじめに
SAPのブログ記事などを中心に、Gateway OData Service (SEGW)に関するリンクを集めました。

## 目次
1. Batch Process
2. Deep Insert
3. ETag
4. ファイルアップロード・ダウンロード
5. Association
6. Annotationの追加
7. OData V4
8. MPC_EXT
8. ODataのversioning
8. メッセージの返し方

## 1. Batch Process
**バックエンド**

- [Details about some new features in SAP Gateway 2.0 SP09](https://archive.sap.com/documents/docs/DOC-57113) / Gateway側のメソッド（CHANGESET_BEGIN、HANGESET_PROCESS）についての説明
- [$BATCH request in SAP GATEWAY](https://blogs.sap.com/2018/05/06/batch-request-in-sap-gateway/) / $batchのコンセプトから、技術的な詳細まで
- [How To Implement OData $batch Processing with Content ID in SAP Gateway](https://blogs.sap.com/2016/03/09/how-to-implement-odata-batch-processing-with-content-id-in-sap-gateway/) / バックエンド側でのBatch Processing実装

**フロントエンド**

- [OData V2 Model-Batch Processing](https://sapui5.hana.ondemand.com/#/topic/6c47b2b39db9404582994070ec3d57a2.html#loio8a6ae1d390534d05a560bf350af59c29) / 公式ドキュメント。$batchリクエストの実装手順

**バックエンド+フロントエンド**

- [【OData】Batch Processの実装：ODataからSAPUI5アプリまで](https://qiita.com/tami/items/490d74379d51354bc227)

## 2. Deep Insert
- [【SAPUI5】Deep Insertを使ったデータの登録(2)](https://qiita.com/tami/items/75c2ca3a2dc10b25d550) / バックエンド側の実装
- [【SAPUI5】Deep Insertを使ったデータの登録(3)](https://qiita.com/tami/items/9c251162b959bffe4c56) / フロントエンド側の実装
- [SAP Gateway Deep Insert End to End Scenario](https://blogs.sap.com/2018/08/30/sap-gateway-deep-insert-end-to-end-scenario/) / バックエンドからフロントエンドまで

## 3. ETag
- [How to handle etags in SAP Gateway using code based implementation](https://blogs.sap.com/2017/05/05/how-to-handle-etags-in-sap-gateway-using-code-based-implementation/) / ETagの実装方法（UpdateとFunction Import）
- [Maintain Data Concurrency in OData](https://blogs.sap.com/2016/03/18/maintain-data-concurrency-in-odata/) / 複数の項目から計算したハッシュ値をETagにする方法
- [Optimistic locking: ETag in SAPUI5](https://blogs.sap.com/2017/06/30/optimistic-locking-etag-in-sapui5/) / ETagを無視して画面から強制的にアップデートする方法
- [Custom E-tag for optimistic lock in SAP Gateway Odata for Deep Update](https://blogs.sap.com/2020/08/29/custom-e-tag-for-optimistic-lock-in-sap-gateway-odata-for-deep-update/) / DeepなEntityを更新するときにカスタムEtagを見る方法

## 4. ファイルアップロード・ダウンロード
- [Media Handling in OData in SAP UI5](https://blogs.sap.com/2018/06/22/media-handling-in-odata-in-sap-ui5/) / ODataサービスの定義からUI5アプリまで
- [SAP Netweaver Gateway and OData. Part XII. Media Handling using OData Gateways   ](https://sapyard.com/sap-netweaver-gateway-and-odata-part-xii-media-handling-using-odata-gateways/) / SmartForm(PDF)をダウンロードする方法
- [Six and three half ways to start a file download in SAPUI5 (and maybe a few more)](https://blogs.sap.com/2018/09/16/six-and-three-half-ways-to-start-a-download-in-sapui5-and-maybe-a-few-more/) / UI5アプリでファイルを開くさまざまな方法
- [Download File through NetWeaver Gateway with OData Version 4](https://blogs.sap.com/2021/02/01/download-file-through-netweaver-gateway-with-odata-version-4/) / OData V4でファイルをダウンロードするサービスを作成する方法

## 5. Association
- [Implementing Get_expanded_entity/ Get_expanded_entityset](https://blogs.sap.com/2019/12/17/implementing-get_expanded_entity-get_expanded_entityset/) / $expandで関連するエンティティを取得する際に独自のロジックを実装する方法

## 6. Annotationの追加
- [Code snippet for adding annotations to your Gateway Service](https://blogs.sap.com/2016/03/17/code-snippet-for-adding-annotations-to-your-gateway-service/) / MPC_EXTクラスでアノテーションを追加する方法
- [‘Dynamic Date’ control in SmartFilter](https://blogs.sap.com/2019/04/30/dynamic-date-control-in-smartfilter/) / 日付項目をレンジ型にする方法
- [OData annotations in SEGW with example and consume it in visual studio to create a fiori application](https://blogs.sap.com/2023/04/18/odata-annotations-in-segw-with-example-and-consume-it-in-visual-studio-to-create-a-fiori-application/) / フィルタ項目を必須にしたりドロップダウンにしたりする方法

## 7. OData V4
- [OData V4 code based implementation – Overview](https://blogs.sap.com/2017/12/12/odata-v4-code-based-implementation-overview/) / コードベースでOData V4サービスを実装する方法。試験的な感じ。
- [Implementation of SAP Odata V4](https://blogs.sap.com/2020/02/13/implementation-of-sap-odata-v4/) / SEGWでOData V4サービスを実装する方法。上のブログを書いた人からSEGWは非推奨とコメントされている。
- [Simple OData V4 service using Code Based implementation](https://blogs.sap.com/2021/05/07/simple-odata-v4-service-using-code-based-implementation/) / コードベースでOData V4サービスを実装する方法 (2021.5.7)
- OData V4のサービスを見るトランザクション：/IWFND/V4_ADMIN

## 8. MPC_EXTでできること（アノテーション以外）
- [Disable Conversion Exits in Gateway](https://answers.sap.com/questions/11616622/disable-conversion-exits-in-gateway.html) / 通貨項目がISOコードに変換されないようにする方法
- [How to check the maximum length of a function import parameter in SEGW based OData services](https://blogs.sap.com/2020/11/03/how-to-check-the-maximum-length-of-a-function-import-parameter-in-segw-based-odata-services/) / Function Importのインポートパラメータの桁数をチェックする方法

## 9. ODataのversioning
- [oData Versioning](https://blogs.sap.com/2021/06/22/odata-versioning/) / サービス（ロジック）とモデル（メタデータ）のバージョンを別々に上げる方法　フロントエンドに影響を与えないように

## 10. メッセージの返し方
- [Display Messages in ODATA Header Response while success and update and usage of ALL Query operations.](https://blogs.sap.com/2021/07/23/display-messages-in-odata-header-response-while-success-and-update-and-usage-of-all-query-operations./#) / 成功、エラーのメッセージをレスポンスヘッダに返す方法