Force.com

Force.comはSaleforce.com上にカスタムアプリケーションを作成できるというプラットフォームサービスで、さらに作成したアプリケーションをSalesforce.comユーザーに配布できるAppExchangeというサービスとも連動している。いろいろいじってだいぶわかってきた。

オブジェクト(RDBで言うテーブル)を作成し、Visualforceページ(カスタムWebページ)を作成し、その二つをApexクラス(ほとんどJavaと同じ文法でクラスを定義する)で接着するというのが基本的な流れになっている。Visualforceページには必ず一つコントローラーというApexクラスを定義することになっていて、ページからメンバ変数をいじったりメソッドをコールする事でDBを書き換える。文法やライブラリでガチガチにSalesforceスタイルにさせられるので最初の敷居が高いが慣れれば生産性は高そうだ。ページのテキストボックスやボタンを直接クラスのメンバ変数やメソッドにバインドするような書き方ができる。

ちょうどMicrosoft Accessでテーブルを作成し、ウィザードでフォームを作成するような感覚だ。テーブルとフォームは直接接着されている感覚だが、Visualforceページとオブジェクトはその間に接着剤としてクラスを定義する。その分手間がかかるがそこにロジックを追加していく余地がある。

面白いのは複数ページで同じコントローラーを指定するとメンバ変数でデータの受け渡しができる事だ。セッションにクラスのインスタンスが入っているようなイメージ。

「オブジェクト」と「クラス」がまったく関連のない別のものを指すというのはプログラマ的には「?」だが一般の英語で「オブジェクト=物」だからDBを指すのは自然なのだろう。日本語版でもそのまま「オブジェクト」「クラス」となっている。

Developerアカウントでは2ユーザーでしかテストできないので、ISV and Test Editionの申請をUSのSalesforceにした(日本版にはない)。こっちは10,000回APIコールしかできない制限があるが、20ユーザーでテストできる。

今日はInternal Server Errorが2回出た。いまいち安定していないのはUSクオリティと言うべきだろう。

Salesforce LIVE

今日、Salesforce LIVEに行こうとしたら、小田急線が人身事故で止まっていた。

東京に住み始めた頃、日常的に電車が「人身事故」で止まるので漠然と故障かなと思っていた。しかし「人身事故」のほとんどが飛び込み自殺だという事を知って腰が抜けるほど驚いた。だって人身事故があっても皆ぜんぜん驚いていないじゃないか。

でもいつの間にか人身事故で電車が止まっても「私の帰る時間に飛び込むなよ」などと思うようになってしまった。朝起きてNHKを付けて電車が止まっていると、ゆっくり朝の支度をするようになった。遅延証明がもらえるので遅刻しても大丈夫だからだ。感覚が麻痺したのだ。

結局、Saleseforce LIVEの基調講演には間に合わなかった。Force.comのチュートリアルをもらえたので、帰ってからいくらかのコードを書いて動かしてみた。