3
0

More than 3 years have passed since last update.

【SAPIUI5】SuccessFactors連携時のOdata注意点

Posted at

SuccessFactors等の拡張機能として、SAP BTP上でFioriのアプリを構築し、
OdataAPIを通じてSuccessFactorsと連携する場合の考慮点

アプリごとに使用するEntityを絞る

manifest.jsonに記載のdatasourceの内容

特に考慮しない場合

"mainService": {
    "uri": "https://api10preview.sapsf.com/odata/v2",
    "type": "OData",
    "settings": {
        "odataVersion": "2.0",
        "localUri": "localService/metadata.xml"
    }
}

例)Userのデータに絞る場合

"mainService": {
    "uri": "https://api10preview.sapsf.com/odata/v2/User",
    "type": "OData",
    "settings": {
        "odataVersion": "2.0",
        "localUri": "localService/metadata.xml"
    }
}

例)複数のEntityを参照する場合

"mainService": {
    "uri": "https://api10preview.sapsf.com/odata/v2/User,EmpJob",
    "type": "OData",
    "settings": {
        "odataVersion": "2.0",
        "localUri": "localService/metadata.xml"
    }
}

となります。
Controllerにてアクセスする場合は

oDataModel.read("/User");

等でアクセスが可能になります。

実際のURLは

https://api10preview.sapsf.com/odata/v2/User,EmpJob/User

へアクセスされますが、問題なくデータが取得できます。

注意点

  • 参照するEntityはかならず記載する
  • $expand等で子階層のデータを参照する時も必ず子階層のEntity情報を記載する

SuccessFactorsの標準Entity等により、metadaのサイズが大きくなりがちかと思います。
多くのEntityを参照するアプリでも必ず指定するようにしましょう。

基本は1,000件のレスポンス

フィルター条件等を指定しても、最大1,000のレスポンスとなります。
\$top,\$skipを使用してPagingの考慮を行いましょう。

また、1001件以上データが存在する場合は、__nextのデータが存在します
__nextに記載されたURLへアクセスすると1001件目~のデータ取得できます。

こちらを使用してページング処理を行う場合はURLのパラメータとして
paging=snapshotを指定するようにしましょう

参考ページ
https://help.sap.com/viewer/b2b06831c2cb4d5facd1dfde49a7aab5/2105/en-US/12fe2115d865471f9e4b91d55ccfe51a.html

その他

  • bathでまとめてリクエス可能件数は180リクエスト
  • upsertの可能件数は1000件

CDSビュー等で構築したoDataとは異なる独自の制限があることに注意しましょう

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0