MURASAKI
Amebaでブログを始めよう!

【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とか関係なくエクセル帳票出すシステムとかに使えそう。

【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へのデプロイするのが楽チン

ダウンロードしたサイトはここ
ダウンロードして、環境変数にパスを通すだけで使える。

【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に対応しているっぽいんで、多分公開しなくてもできる)

1-2

 リンクがこんな感じにでてくる↓↓
 「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クラスが選べるようになるので選択する

2


・検証して同期する

3

・AdressMasterを選択して同期

7

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

4


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

8


つぶやき
Googleスプレッドシートを簡易DB的な使い方ができそう!
でも、Googleスプレッドシートのデータがすごく扱いずらいのはどうにかしてほしい…

【Salesforce】Excelからオブジェクトのデータ取得してみるゲス!③

今回は前回使ったツールを使用せず、自前でSOAPでやってみるゲス!



こちら
のサイトを見て、リクエスト用のXML作成するでゲス!



以下がログイン処理のソースでゲス!




テンプレートはこちら
を使うでゲス!



やっぱりツールなしの方がいいでゲス!

次はquery実行してみるでゲス!

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に移そう~

【Salesforce】GoogleMapsAPI+HeartRailsを使ってみたゲス!

今回はあまり、Salesforceの技術とは関係ありませんが、Salesfoceの取引先(account)などの

顧客情報の住所を、GoogleMap上に表示させてみたいと思います。

こんな風に標準画面にGoogleMapを表示するvisual forceページを追加してみました。
都道府県、市区町村、町・番地から緯度経度を取得し地図上にマーカーを表示しています。
map1
また、緯度経度から最寄駅を教えてくれるHeartRails ExpressというWeb APIを組み合わせて
地図上をクリックすると最寄駅を表示するようにしてみました。

map2

visual forceページのソースはこんな感じです。




GoogleMapAPIはSalesforceに限らず他でも使えそう。
スマホのGPSと組み合わせたらおもしろそうでゲス!
(SalesforceもSalesforce1に力入れてるみたいだし)

【Salesforce】Excelからオブジェクトのデータ取得してみるゲス!②

前回は、ログインまで実装しました。
今回は、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を実行してみるでゲス!