【Salesforce】Play frameworkを使ってみた②
どうも、あげせん食うでお馴染みのniko79ですw
今回もPlay framework関連のブログだよ。
SalesforceのAPI + Play Frameworkのexcel moduleを使って、
Heroku上に差し込み印刷っぽいエクセル版を作ってみた。
とりあえずソースはGitHub に上げてみた!!
修正する部分は2か所だけ。
/app/service/ConnectionManager.javaがSalesforceに接続するクラス
⇒usernameとpasswordにSalesforceのログインIDとパスを設定。
/app/views/MakeExcelTest/makeExcel.xlsxがテンプレートファイル
⇒エクセルの中に${obj.オブジェクトの項目名}を埋め込むと置換する。
あとは、Salesforceのオブジェクトにカスタムボタンを追加して
「https://Herokuのアプリ名.herokuapp.com/excel/オブジェクトのAPI名/オブジェクトID」の
URLを呼ぶようにすると、excelで差し込み印刷っぽいことができた。
つぶやき、play frameworkって便利だなw
salesforceとか関係なくエクセル帳票出すシステムとかに使えそう。
今回もPlay framework関連のブログだよ。
SalesforceのAPI + Play Frameworkのexcel moduleを使って、
Heroku上に差し込み印刷っぽいエクセル版を作ってみた。
とりあえずソースはGitHub に上げてみた!!
修正する部分は2か所だけ。
/app/service/ConnectionManager.javaがSalesforceに接続するクラス
⇒usernameとpasswordにSalesforceのログインIDとパスを設定。
/app/views/MakeExcelTest/makeExcel.xlsxがテンプレートファイル
⇒エクセルの中に${obj.オブジェクトの項目名}を埋め込むと置換する。
あとは、Salesforceのオブジェクトにカスタムボタンを追加して
「https://Herokuのアプリ名.herokuapp.com/excel/オブジェクトのAPI名/オブジェクトID」の
URLを呼ぶようにすると、excelで差し込み印刷っぽいことができた。
つぶやき、play frameworkって便利だなw
salesforceとか関係なくエクセル帳票出すシステムとかに使えそう。
【Salesforce】Play frameworkを使ってみた①
Play frameworkを使ってみたんで、ちょっとメモするよ。
・Play frameworkはJava or scalaのwebアプリケーション用のフレームっぽい。
・1.X.X系と2.X.X系がある。Javaは両方使える。scalaは2.X.Xのみ。
※今回excel module 使いたかったから1.2.7を入れてみた。
・Herokuへのデプロイするのが楽チン
ダウンロードしたサイトはここ
ダウンロードして、環境変数にパスを通すだけで使える。
・Play frameworkはJava or scalaのwebアプリケーション用のフレームっぽい。
・1.X.X系と2.X.X系がある。Javaは両方使える。scalaは2.X.Xのみ。
※今回excel module 使いたかったから1.2.7を入れてみた。
・Herokuへのデプロイするのが楽チン
ダウンロードしたサイトはここ
ダウンロードして、環境変数にパスを通すだけで使える。
【Salesforce】Googleスプレッドシートを外部オブジェクトとして使ってみた
ザキヤマが結婚するってことで、久々にブログ書いたっす!
なんと前からこのデモを見て気になってたApex Connector Frameworkが
Deveroper環境で使えるようになったっぽい。
ってことは、ODataに対応してないデータでも外部オブジェクトとして扱えるようになったってこと!
今回はGoogleスプレッドシートを外部オブジェクトとして取得してみたっす。
下の例は、Googleスプレッドシートに住所情報をのっけてあって、Salesforceから参照するサンプル
目次
1.Googleスプレッドシートを作成する
2.DataSource.Connection クラスとDataSource.Providerクラスを作成する
3.外部データソースを作成する
1.Googleスプレッドシートを作成する
・まずは、こんな感じに郵便番号マスタっぽいシートを用意する
1行目は項目名を定義する。ExternalIdは必ず入れること、重複値でないことに注意する。
・ファイルのウェブに公開を選択して、シートを公開する。
(OAuth 2.0に対応しているっぽいんで、多分公開しなくてもできる)

リンクがこんな感じにでてくる↓↓
「https://docs.google.com/spreadsheets/d/[sheetId]/pubhtml」
json形式で取得するため、[sheetId]だけコピーして、以下のURL以下のリンクを作成↓↓↓
(クラス作成で使うのでメモしとく)
「https://spreadsheets.google.com/feeds/cells/[sheetId]/od6/public/values?alt=json」
2.DataSource.Connection クラスとDataSource.Providerクラスを作成する
サンプルを見ながら実装してみた
・DataSource.Connection クラス
3つのメソッドを実装する必要がある。
①外部オブジェクト情報を定義(ExternalIdとDisplayUrlは必須)するsyncメソッド
②SOQL、リストビュー、詳細画面で実行されるqueryメソッド
③SOSL、グローバル検索で実行されるsearchメソッド
・DataSource.Providerクラス
こっちも以下の3つのメソッドを実装する必要がある。
①外部システムへの認証種類を定義するgetAuthenticationCapabilitiesメソッド
②外部システムがサポートする機能を定義するgetCapabilitiesメソッド
③関連するDataSource.Connectionを定義するgetConnectionメソッド
3.外部データソースを作成する
・開発⇒外部データソース⇒新規作成画面へ遷移すると、種別でさっき作成したDataSource.Providerクラスが選べるようになるので選択する

・検証して同期する

・AdressMasterを選択して同期

・外部オブジェクトが作成される

・タブで表示してみたら、取れてた!

つぶやき
Googleスプレッドシートを簡易DB的な使い方ができそう!
でも、Googleスプレッドシートのデータがすごく扱いずらいのはどうにかしてほしい…
なんと前からこのデモを見て気になってたApex Connector Frameworkが
Deveroper環境で使えるようになったっぽい。
ってことは、ODataに対応してないデータでも外部オブジェクトとして扱えるようになったってこと!
今回はGoogleスプレッドシートを外部オブジェクトとして取得してみたっす。
下の例は、Googleスプレッドシートに住所情報をのっけてあって、Salesforceから参照するサンプル
目次
1.Googleスプレッドシートを作成する
2.DataSource.Connection クラスとDataSource.Providerクラスを作成する
3.外部データソースを作成する
1.Googleスプレッドシートを作成する
・まずは、こんな感じに郵便番号マスタっぽいシートを用意する
1行目は項目名を定義する。ExternalIdは必ず入れること、重複値でないことに注意する。
・ファイルのウェブに公開を選択して、シートを公開する。
(OAuth 2.0に対応しているっぽいんで、多分公開しなくてもできる)

リンクがこんな感じにでてくる↓↓
「https://docs.google.com/spreadsheets/d/[sheetId]/pubhtml」
json形式で取得するため、[sheetId]だけコピーして、以下のURL以下のリンクを作成↓↓↓
(クラス作成で使うのでメモしとく)
「https://spreadsheets.google.com/feeds/cells/[sheetId]/od6/public/values?alt=json」
2.DataSource.Connection クラスとDataSource.Providerクラスを作成する
サンプルを見ながら実装してみた
・DataSource.Connection クラス
3つのメソッドを実装する必要がある。
①外部オブジェクト情報を定義(ExternalIdとDisplayUrlは必須)するsyncメソッド
②SOQL、リストビュー、詳細画面で実行されるqueryメソッド
③SOSL、グローバル検索で実行されるsearchメソッド
・DataSource.Providerクラス
こっちも以下の3つのメソッドを実装する必要がある。
①外部システムへの認証種類を定義するgetAuthenticationCapabilitiesメソッド
②外部システムがサポートする機能を定義するgetCapabilitiesメソッド
③関連するDataSource.Connectionを定義するgetConnectionメソッド
3.外部データソースを作成する
・開発⇒外部データソース⇒新規作成画面へ遷移すると、種別でさっき作成したDataSource.Providerクラスが選べるようになるので選択する

・検証して同期する

・AdressMasterを選択して同期

・外部オブジェクトが作成される

・タブで表示してみたら、取れてた!

つぶやき
Googleスプレッドシートを簡易DB的な使い方ができそう!
でも、Googleスプレッドシートのデータがすごく扱いずらいのはどうにかしてほしい…
MA(えむえー)って!?
なんかこんなサイトを発見⁈
web apiを使ったアプリのコンテストらしいです。
昨日の記事でも使用したHeartRails Expressもありました。
個人的には形態素解析とか、画像認識に興味あります!
面白そうでゲス!
github が行きなり使えないゲス!
github登録してみたけど、簡単にソース公開できなかったので書きます^-^;
gistにソース登録するも、以下の画面が出て使えず‥
「Whoops. We seem to have missed the gist of that gist you were looking for.」
結果的にアドレス間違ってただけでした。
https://github.com/contact←ここにアドレス間違ってたんで修正しました。許可してください的な英語文を送ればすぐなおりました!
感謝です!
よし!今までのをgistに移そう~
gistにソース登録するも、以下の画面が出て使えず‥
「Whoops. We seem to have missed the gist of that gist you were looking for.」
結果的にアドレス間違ってただけでした。
https://github.com/contact←ここにアドレス間違ってたんで修正しました。許可してください的な英語文を送ればすぐなおりました!
感謝です!
よし!今までのをgistに移そう~
【Salesforce】GoogleMapsAPI+HeartRailsを使ってみたゲス!
今回はあまり、Salesforceの技術とは関係ありませんが、Salesfoceの取引先(account)などの
顧客情報の住所を、GoogleMap上に表示させてみたいと思います。
こんな風に標準画面にGoogleMapを表示するvisual forceページを追加してみました。
都道府県、市区町村、町・番地から緯度経度を取得し地図上にマーカーを表示しています。

また、緯度経度から最寄駅を教えてくれるHeartRails ExpressというWeb APIを組み合わせて
地図上をクリックすると最寄駅を表示するようにしてみました。

visual forceページのソースはこんな感じです。
GoogleMapAPIはSalesforceに限らず他でも使えそう。
スマホのGPSと組み合わせたらおもしろそうでゲス!
(SalesforceもSalesforce1に力入れてるみたいだし)
顧客情報の住所を、GoogleMap上に表示させてみたいと思います。
こんな風に標準画面にGoogleMapを表示するvisual forceページを追加してみました。
都道府県、市区町村、町・番地から緯度経度を取得し地図上にマーカーを表示しています。

また、緯度経度から最寄駅を教えてくれるHeartRails ExpressというWeb APIを組み合わせて
地図上をクリックすると最寄駅を表示するようにしてみました。

visual forceページのソースはこんな感じです。
GoogleMapAPIはSalesforceに限らず他でも使えそう。
スマホのGPSと組み合わせたらおもしろそうでゲス!
(SalesforceもSalesforce1に力入れてるみたいだし)
【Salesforce】Excelからオブジェクトのデータ取得してみるゲス!②
前回は、ログインまで実装しました。
今回は、SELECTしてExcelシートへ出力してみます!
こんな感じ↓
Apexで記述するのとあまり変わらない。
やっぱExcelから直接オブジェクト操作できるのは便利でゲス!
使ってみて思ったのは、metadata APIとかも使えたら便利なのにな~
今回は、SELECTしてExcelシートへ出力してみます!
こんな感じ↓
Apexで記述するのとあまり変わらない。
やっぱExcelから直接オブジェクト操作できるのは便利でゲス!
使ってみて思ったのは、metadata APIとかも使えたら便利なのにな~
【Salesforce】Excelからオブジェクトのデータ取得してみるゲス!①
Salesforceにはデータローダ
という公式のレコード操作できるツールがありますが、
普段使っていると、データローダは、SOQLちょっと間違えるとcsv出力されず元の画面戻るし
登録時は日付がYYYY-MM-DD形式でかつ、+1日に変換しなきゃいけないなどなど…
ちょっと面倒でエクセルから直接レコード操作したい!!と思ったらこんなのあった。
Force.com tool kit リファレンスみるとofficeから Salesforce APIを使いCRUDができるっぽい
使い方も結構簡単!以下のサイトから「SForce Office Toolkit.msi」をダウンロード&インストールする。
https://code.google.com/p/excel-connector/downlo
事前にすることはエクセルのVBEから「ツール」→「参照設定」→参照可能なライブラリファイルに
「SForceOfficeToolkit4 v4.0」があるのでチェックする。
これだけで、使える!さっそくこんな感じでログインしてみた
次はSOQLを実行してみるでゲス!
普段使っていると、データローダは、SOQLちょっと間違えるとcsv出力されず元の画面戻るし
登録時は日付がYYYY-MM-DD形式でかつ、+1日に変換しなきゃいけないなどなど…
ちょっと面倒でエクセルから直接レコード操作したい!!と思ったらこんなのあった。
Force.com tool kit リファレンスみるとofficeから Salesforce APIを使いCRUDができるっぽい
使い方も結構簡単!以下のサイトから「SForce Office Toolkit.msi」をダウンロード&インストールする。
https://code.google.com/p/excel-connector/downlo
事前にすることはエクセルのVBEから「ツール」→「参照設定」→参照可能なライブラリファイルに
「SForceOfficeToolkit4 v4.0」があるのでチェックする。
これだけで、使える!さっそくこんな感じでログインしてみた
次はSOQLを実行してみるでゲス!

