カテゴリ「基本機能」の記事

2010年10月11日 (月)

PODとログイン後のURL

セールスフォースのシステムは「POD」と呼ぶクラスター単位で構築、運用されており、各PODは1個のOracle RAC(Oracle Real Application Clusters:単一のデータベースをサーバーのクラスタ全体で実行できる)、およそ100台のサーバーで構成されています。

ユーザーは地域に応じて各PODに割り当てられ、割り当てられたPODによって、ログイン後のURLが以下のように変わってきます。

Browserwindow

インスタンス名ユーザの地域
AP0 日本
AP1 アジア・太平洋
EU0 欧州・中東・アフリカ
NA0~NA7 北米
CS0~CS5 Sandbox

PODの数は、上記のように現時点では17個のようです。待機系も同じ数だけあるので、
サーバー台数は 100台 × 17POD × 2(本番系、待機系) = 3400台 くらいだと推測されます。
サーバー台数はGoogleと比べるとかなり少なく、サーバーリソースを効率的に利用していることが分かります。

ちなみに、上記の「ユーザの地域」は、あくまでPODが管理するユーザの地域であって、「データセンターの場所」ではありません。例えば、日本のユーザはAP0のPODに割り当てられますが、現在日本にSalesforceのデータセンターはありません。

先日の「Cloudforce 2010 Japan」で発表されましたが、Salesforceは、2010年年末には東京データセンターを完成させ、2011年中に稼働開始予定のようです。日本では、データを国内に置きたいという要望が根強いですからねえ。これで提案時の大きな障害が1つ解消され、嬉しい限りです。

2010年8月 5日 (木)

カスタム表示ラベル

Salesforceにはカスタム表示ラベルという、テキスト値を定義できる機能があります↓

20100805_1

定義したテキスト値は、ApexやVisualforceから利用可能なので、エラーメッセージや文字列などの定数を外出ししたい場合に便利です。

Apexからの利用方法

System.Label.<ラベル名>

Visualforceからの利用方法

$Label.<ラベル名>

組織でトランスレーションワークベンチを有効にすると、カスタム表示ラベルは利用言語に合わせて翻訳されるので、多言語アプリケーションを作成する時も便利です。

2010年7月16日 (金)

連結オブジェクト

データモデルを検討していると、多対多の関係にしたい場合がでてきます。

多対多の関係の例

「学生と講座」
・学生は複数の講座を受講する
・講座は複数の学生が受講する

リレーショナルデータベースでは、多対多の関係を表せないので、
連結テーブルを間に挟んで、「1対多」と「多対1」の関係にします。

学生 ―1対多― 受講 ―多対1― 講座

上記のデータモデルにすることで、学生が受講している各講座の成績などを受講テーブルで管理できるようになります。

さて、これをSalesforceで実現するにはどうするかというと、
RDBと同じように連結テーブルならぬ連結オブジェクト
多対多の関係にしたいオブジェクトの間に挟みます。

このときに重要なのは、連結オブジェクトから親オブジェクトへのリレーションは主従関係で結ぶということ。

上記の例で言うと、「受講 ⇒ 学生」「受講 ⇒ 講座」と2つの主従関係を結びます。
片方でも参照関係で結んでしまうと、連結オブジェクトになりませんので、注意してください。

20100716_1

前回の記事で、主従関係は2つまでしか結べないという制限をご紹介しましたが、この制限内で多対多のリレーションを実現することができます。

連結オブジェクトのデータモデルにすると、
通常は子オブジェクトの項目しか表示できない関連リストに、
連結先のオブジェクトの項目を表示できて、とても便利です。

上記の例で言うと、学生オブジェクトの受講関連リストに、受講オブジェクトの項目(受講番号、評価)だけでなく、講座オブジェクトの項目(講座名、区分、分類、担当、単位数)を表示できます(↓の画像を参照のこと)。

この機能によって、まさに多対多の関係を実現できていることが分かるかと思います。

20100716_2

もちろん同様に連結先からも連結元のオブジェクトの項目を表示できます。
上記の例で言うと、講座オブジェクトの受講関連リストに学生オブジェクトの項目(学生名、性別、生年月日、入学日)を表示できます(↓の画像を参照のこと)。

20100716_3

最後に、連結オブジェクトの注意点ですが、
連結オブジェクトを主とした主従関係は結べないようになっています。

なので、連結オブジェクトで子オブジェクトの積み上げ集計項目を作ったりはできません。この制限が無くなれば、より便利になるんですけどね。

2010年7月 2日 (金)

参照関係と主従関係

リレーションには、参照関係主従関係があります。

データモデルの検討の際に、親オブジェクトが必須か否かを吟味して、
どちらかを選ぶことになりますが、両者の特性の違いは重要なので、表にまとめてみました。

参照関係 主従関係
親オブジェクトの必須 必須でない 必須
段階制限 何段階でも可能 最大3段階まで可能(親-子-孫-曾孫)
1つの子オブジェクトからリレーションを結べる親オブジェクトの数の制限 いくつでも参照関係を結ぶことが可能 2つまで可能
親オブジェクトの削除に対する挙動 子オブジェクトは削除されない 子オブジェクトは削除される
積み上げ集計 不可 可能
標準オブジェクトを子オブジェクトとするリレーション 可能 不可
カスタムオブジェクトを子オブジェクトとするリレーション 可能 可能
ユーザオブジェクトを親オブジェクトとするリレーション 可能 不可

※ 3段階で主従関係を結んでいる場合、親オブジェクトの削除により、子、孫、曾孫オブジェクトも削除される。

主従関係は、積み上げ集計やカスケード削除ができて便利ですが、最大3段階までしかリレーションを結べなかったり、標準オブジェクトを子オブジェクトとするリレーションを結べなかったりと、参照関係より制限が厳しくなっています

データモデルで主従関係を利用する場合には、この表を参考にしてみてください。

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter