Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Shunji Konishi
10,192 views
Salesforce連携のためのOData入門
2014/12/25 社内勉強会資料
Technology
◦
Read more
13
Save
Share
Embed
Embed presentation
Download
Downloaded 50 times
1
/ 20
2
/ 20
3
/ 20
Most read
4
/ 20
Most read
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
Most read
More Related Content
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
PPTX
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
by
Tadahiro Ishisaka
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
by
Yuki Hattori
PPTX
グラフデータベース入門
by
Masaya Dake
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
Cloud Foundryで学ぶ、PaaSのしくみ講座
by
Kazuto Kusama
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
by
Tadahiro Ishisaka
Microsoft Graph APIを活用した社内アプリケーション開発
by
Yuki Hattori
グラフデータベース入門
by
Masaya Dake
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
Cloud Foundryで学ぶ、PaaSのしくみ講座
by
Kazuto Kusama
What's hot
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
PDF
SQLアンチパターン(インデックスショットガン)
by
Tomoaki Uchida
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
ここが良かったDatadog
by
tyamane
PDF
REST API のコツ
by
pospome
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PDF
ログ解析を支えるNoSQLの技術
by
Drecom Co., Ltd.
PDF
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
by
hideakikabuto
PPTX
SQLチューニング入門 入門編
by
Miki Shimogai
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
今さらだけどMySQLとライセンス
by
Hidenori Ishii
PDF
JJUG CCC リクルートの Java に対する取り組み
by
Recruit Technologies
PDF
私がドメイン駆動設計をやる理由
by
増田 亨
PDF
ドキュメントを作りたくなってしまう魔法のツールSphinx
by
Takayuki Shimizukawa
PDF
技術ブログを書こう
by
akira6592
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
SQLアンチパターン(インデックスショットガン)
by
Tomoaki Uchida
RESTful Web アプリの設計レビューの話
by
Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
ここが良かったDatadog
by
tyamane
REST API のコツ
by
pospome
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
ログ解析を支えるNoSQLの技術
by
Drecom Co., Ltd.
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
by
hideakikabuto
SQLチューニング入門 入門編
by
Miki Shimogai
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
今さらだけどMySQLとライセンス
by
Hidenori Ishii
JJUG CCC リクルートの Java に対する取り組み
by
Recruit Technologies
私がドメイン駆動設計をやる理由
by
増田 亨
ドキュメントを作りたくなってしまう魔法のツールSphinx
by
Takayuki Shimizukawa
技術ブログを書こう
by
akira6592
Similar to Salesforce連携のためのOData入門
PDF
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
PDF
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
by
オラクルエンジニア通信
PPTX
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
by
洵貴 佐川
PDF
APIと連動するWebアプリ開発-バックエンド入門_by CraftStadium
by
CraftStaidium
PPTX
Herokuで使えるRDBMS管理者ツール
by
Shunji Konishi
PPT
Inside mobage platform
by
Toru Yamaguchi
PDF
XPagesDay 2015 RESTの総復習
by
Masahiko Miyo
PPTX
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
by
CData Software Japan
PDF
一番簡単なWebSocketの試し方
by
Shunji Konishi
PPTX
HerokuからSalesforceを使ってみた
by
masaoki_ohashi
PPTX
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
by
fukuoka.ex
PDF
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
by
次朗 永島
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
by
オラクルエンジニア通信
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
by
洵貴 佐川
APIと連動するWebアプリ開発-バックエンド入門_by CraftStadium
by
CraftStaidium
Herokuで使えるRDBMS管理者ツール
by
Shunji Konishi
Inside mobage platform
by
Toru Yamaguchi
XPagesDay 2015 RESTの総復習
by
Masahiko Miyo
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
by
CData Software Japan
一番簡単なWebSocketの試し方
by
Shunji Konishi
HerokuからSalesforceを使ってみた
by
masaoki_ohashi
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
by
fukuoka.ex
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
by
次朗 永島
More from Shunji Konishi
PDF
良質なコードを高速に書くコツ
by
Shunji Konishi
PPTX
文字コードのお話
by
Shunji Konishi
PPTX
Heroku Dyno再起動時の振る舞い
by
Shunji Konishi
PDF
MochaとChaiでやるJavaScriptテスト
by
Shunji Konishi
PPTX
Herokuのログ解析ツール
by
Shunji Konishi
PPTX
Excel2 canvas
by
Shunji Konishi
PDF
お手軽Ajaxアプリケーションの作り方
by
Shunji Konishi
PDF
WebSocketでリアルタイムクイズアプリを作ってみた
by
Shunji Konishi
PPTX
Play1 to Play2
by
Shunji Konishi
PDF
Salesforceのハッカソンに参加した話
by
Shunji Konishi
PDF
セキュリティの考え方
by
Shunji Konishi
PDF
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
PDF
プロキシーを使ってテストを楽にする
by
Shunji Konishi
PPTX
Heroku tips1
by
Shunji Konishi
PPTX
SendGridサンプルの紹介
by
Shunji Konishi
PDF
特盛!Heroku
by
Shunji Konishi
PPTX
High traffic questionnaire site
by
Shunji Konishi
PPTX
Dyno cycling behavior of Heroku
by
Shunji Konishi
PDF
Playframework1でSeleniumテスト
by
Shunji Konishi
良質なコードを高速に書くコツ
by
Shunji Konishi
文字コードのお話
by
Shunji Konishi
Heroku Dyno再起動時の振る舞い
by
Shunji Konishi
MochaとChaiでやるJavaScriptテスト
by
Shunji Konishi
Herokuのログ解析ツール
by
Shunji Konishi
Excel2 canvas
by
Shunji Konishi
お手軽Ajaxアプリケーションの作り方
by
Shunji Konishi
WebSocketでリアルタイムクイズアプリを作ってみた
by
Shunji Konishi
Play1 to Play2
by
Shunji Konishi
Salesforceのハッカソンに参加した話
by
Shunji Konishi
セキュリティの考え方
by
Shunji Konishi
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
プロキシーを使ってテストを楽にする
by
Shunji Konishi
Heroku tips1
by
Shunji Konishi
SendGridサンプルの紹介
by
Shunji Konishi
特盛!Heroku
by
Shunji Konishi
High traffic questionnaire site
by
Shunji Konishi
Dyno cycling behavior of Heroku
by
Shunji Konishi
Playframework1でSeleniumテスト
by
Shunji Konishi
Salesforce連携のためのOData入門
1.
2014年12月25日 株式会社FLECT 小西俊司
2.
Heroku Postgres上のデータをSalesforceの外部オ ブジェクトとして参照したいらしい
ODataの細かい仕様がどうなっているのかという点に は全く踏み込んでいない ◦ 所詮2,3日調べた程度なので多くを期待してはいけない
3.
Open Data
Protocol ◦ http://www.odata.org/ ◦ Microsoft が主導で推進しているらしい httpのREST APIだけでデータの参照・更新・削除を 行うための仕様 SQLのhttp版くらいに思っておけばOKだと思う ◦ ↑というか、まさに今この程度の理解 ◦ 具体的な検索条件やソートの指定の仕方等はなんとなく試し てみた程度でちゃんと調べてはいない
4.
httpだけでデータを読み書きできることにつきる CORS(Cross
Origin Resource Sharing)との組み 合わせを考えるとこんな状況もありえるかも? ◦ 近年色々な鉄道会社が時刻表や電車の遅延情報などをAPI で提供し始めている(気がする) ◦ しかし、それぞれの鉄道会社はAPIはRESTではあっても全部 独自形式(知らないけど多分) ◦ 各社のAPIはCORSには対応していないのでブラウザから直 接は叩けず、サーバで実行するしかない(に違いない) ◦ CORSとODataがサポートされればブラウザから直接各社の データに統一規格でアクセスできるのサーバ不要でアプリが 作れる(公開先はもはやGitHub.ioで良いですね(^^v) まぁ希望なんで当分なさそうではあるけど
5.
V1からV4まであるらしい ◦ V4は近日正式リリース予定らしい
どこが変わったのかは知らないけど、多分できること が増えているのであろう 現在広く使われているバージョンはV2 ◦ かどうかは確信が無いが、とりあえずSalesforceの外部デー タ参照でサポートされているのはV2のみ ◦ V4も近い将来サポートされるらしい
6.
http://www.odata.org/libraries/ MS主導のため.NETのライブラリが一番充実している
Javaのライブラリで有力なのは以下の二つ ◦ Apache Olingo V2 and V4 サーバ/クライアント両対応 ◦ odata4j V1 – V3 サーバ/クライアント両対応 odata4jはコミットログを見る限り停滞しているように 見えるので、Olingoを使うのが良さげ
7.
一部クラスがServlet API依存なので、Play等の非 Servletから扱うのはしんどい ◦
やりかけたけど途中であきらめました。 ライブラリの完成度はやや怪しいかも。。。(-- ◦ 2,3日の評価なんで何とも言えないけど(後述) V4はまったく未検証
8.
https://github.com/shunjikonishi/odata- producer Olingoで作成したOData
Producer ◦ JPAのエンティティを作成することでテーブルをODataとして 公開出来る ◦ サンプルデータとして、Car, Makerという二つのテーブルと テストデータを生成する ◦ ベーシック認証対応
9.
サンプルはHeroku上で公開されているので以下の URLにアクセス ◦ BasicAuth:
test/password ◦ http://flect-odata-test.herokuapp.com/odata ◦ http://flect-odata-test.herokuapp.com/odata/$metadata ◦ http://flect-odata-test.herokuapp.com/odata/Cars ◦ http://flect-odata-test.herokuapp.com/odata/Cars(1) ◦ http://flect-odata- test.herokuapp.com/odata/Cars?$filter=Car_name%20eq%2 0%27LEGACY%27
10.
設定 >
開発 > External Data Sources 設定項目 ◦ サーバURL: OData ProducerのURL (Ex. https://flect-odata-test.herokuapp.com/odata) ◦ 種別: OData 2.0 ◦ 形式: AtomPub ◦ Basic認証を設定した場合以下の認証設定が必要 ◦ ID種別: 指定ユーザ ◦ 認証プロトコル: パスワード認証 ◦ ユーザ名とパスワード
11.
設定 >
開発 > 外部オブジェクト ◦ 外部データソースを指定する以外は通常のカスタムオブジェ クトとあまり変わらない ◦ API参照名には「__x」が付加される ◦ 作成直後は外部IDと表示URLだけが項目として設定されて おり、各フィールドは手動でカスタム項目として追加する必要 がある データ型等を指定できる 大文字小文字の差異に注意($metadataでフィールド名を確認 しながら設定を行うと良い) ◦ 他の外部オブジェクトや標準/カスタムオブジェクトに対して 参照関係が設定できる 多分、通常の参照/親子関係と同じ感覚で使用できると思う
12.
Car#maker_id ->
Maker#maker_idの参照関係 を設定した例(デフォルトのまま)
13.
サブクエリ等も使えるがSOQLとして正しくてもエラー となるケースもあるらしい 成功するクエリの例 ◦
SELECT car_name__c, maker__r.maker_name__c FROM car__x WHERE maker__r.maker_name__c = 'HONDA’
14.
EXTERNAL_OBJECT_UNSUPPORTED_EXCEPTION ◦ LIKE検索で発生 ◦
ODataのfilterにLIKE構文はない QUERY_TOO_COMPLICATED ◦ 参照テーブルにLIKE構文を使用したらエラーコードが変わっ た ◦ これもfilterの制限と思われる 原理的にODataでサポートしていない検索はできないはず
15.
http://flect-odata- test.herokuapp.com/odata/Cars?$filter=inde xof(Car_name, ‘WING’)
eq 0 仕様にあるfilterのindexofとか実装されていない。 ただし、SalesforceからのOdata APIのキックでOlingo側の 未実装が問題となるケースには遭遇していない
16.
External Datasourceの設定画面にこんな項目がある
多分filterのカスタム関数を自前で作ればそれが使えるんだと 思う この辺を参考にすれば実装できそう http://olingo.apache.org/doc/odata2/tutorials/Olingo_T utorial_AdvancedRead_FilterVisitor.html 必要に迫られれば作る(PullRequest歓迎)
17.
https://github.com/shunjikonishi/odata- producer をフォーク
環境変数DATABASE_URLに接続先のPostgreSQLの URLを定義 ◦ 現在はPostgreSQL固定になっているので、MySQL等を使う場合 はHerokuEntityManagerFactoryとpersistense.xmlの修正が 必要 サンプルエンティティ(src/…/entities/*.java)を削除 公開したいエンティティをentities以下に定義 いじょ ◦ ローカルでの動作確認はrun.sh(run.bat)でできます。 ◦ Herokuで動かす場合は環境変数「APP_OPTS」でBASIC認証が 設定できます。
18.
JPAのエンティティとして定 義する ◦ Lombokが入っているので getter/setterは不要
余計な修飾は一切いらな い ◦ OneToManyとか ManyToOneとかは Salesforce側で解決される ので不要 ◦ 下手に付けるとOlingoがエ ラーで落ちることがある ◦ @Columnでフィールド名を 変更しても良いけど Salesforce側でも設定でき るのであまり意味はない
19.
紆余曲折あったが、結局のところ公式ドキュメント (http://olingo.apache.org/doc/odata2/index.htm l)のJPAの章ほぼそのままで動いた ただしデフォルトでは例外発生時にStackTraceがでない のでそこだけは手を入れた方が良い ◦
MyODataJPAServiceFactory#getCallback参照 ◦ 当初OneToManyの定義が書き方によって動かなくて、原因を特 定するのにえらい苦労した フックポイントは多いので多分何でもできるはず ◦ ODataの仕様書をちゃんと読めばね。。。。 ◦ ちょいちょいNot implementedを見かけるがそれも自力で解決で きると思われる ちゃんと使おうと思ったら絶対ソースは読むべき(基本)
20.
とりあえずSalesforceから参照可能なODataProducerを 作るだけなら難しくはない ◦ 現状一番の問題はLIKEが使えないこと ◦
認証がBASIC認証だけで良いかは課題 HerokuのOAuthを使っても良いけどあんまり意味が無い気がする ◦ パフォーマンス、実用性などは実案件に即した検証が必要 V4の今後がどうなるかは謎なので現状V2でどこまで作り 込むべきかは不明 ◦ 1年以内にV4が来るならV2での実装は不要と思う ◦ しかしOlingoのV4ドキュメントは現状ほとんどない。。。(-- OData自体はSalesforceと関係なくWatchする価値のあ る技術
Download