日々精進

新しく学んだことを書き留めていきます

カスタムオブジェクトの1レコード当たりのストレージ消費量は常に2KB

普通のRDBならテーブルのカラム構成によって1レコード当たりの容量が違うが、 Salesforceではカラムの数や設定に関わらず、カスタムオブジェクトは1レコード当たり2KBと決まっている。 勿論、実際に消費するHDDの領域は違うんだろうけど、Salesforceの使用出来るストレージ容量は常に2KB消費される。 標準オブジェクトはオブジェクト毎に決まっている。 これかなり意外だったなぁ。

参考:

help.salesforce.com

カスタムオブジェクトの標準項目

カスタムオブジェクトには標準項目がいくつかつくが、カスタムオブジェクトページに表示されないものがいくつかある。 以下がそれ。

  • Id 物理キー(サロゲートキー)を保持する項目
  • LastModifiedDate 最終更新日時

参考: help.salesforce.com

help.salesforce.com

Javaで列挙型に任意の文字列を使う

以下のようにprivateコンストラクタを定義して、コンストラクタにEnumに持たせたいデータを渡す。

public enum Channel {
    EMPLOYEE("employee"),
    AGENT("agent"),
    CUSTOMER("customer"),
    ;

    private final String text;

    private Channel(final String text) {
        this.text = text;
    }

    /**
     * チャネル種別の文字列表現
     * @return
     */
    public String getString() {
        return this.text;
    }

    /**
     * 文字列をEnumに変換する
     * @param id
     * @return
     */
    public static Channel getChannel(final String id) {
        Channel[] types = Channel.values();
        for (Channel type : types) {
            if (type.getString().equals(id)) {
                return type;
            }
        }
        return null;
    }
}

参考:

qiita.com

Salesforce Migration Toolを実行すると「Invalid username, password, security token; or user locked out」エラー

原因はログイン先URLを間違えていることだった。 ログイン先の組織がsandboxの場合は build.propertiesの sf.serverurl = https://login.salesforce.com を sf.serverurl = https://test.salesforce.com にしないといけない。 もっとわかりやすいエラーメッセージにしてよ。。

参考:

Invalid username, password, security token; or user locked out with SOAP API - Salesforce Developer Community

Salesforceのカスタムオブジェクトにインデックスを追加するのは結構ハードルが高い

カスタムオブジェクトの項目は以下の項目であれば自動的にインデックスが作成されるがそれ以外にインデックスを 付けようとするとサポートに連絡して付けて貰わないといけない。

プライマリ キー(Id、Name、および、Owner 項目)
外部キー(参照 または 主従関係項目)
Audit dates(SystemModStamp など)
外部 ID または ユニーク にマークされたカスタム項目

なかなか面倒だな。。

参考: リリースノート

help.salesforce.com

Salesforceの各種制限のリファレンス

SalesforceにはApexのガバナ制限以外にも、色んな制限がある。 以下の資料にまとめがあるので適宜参照する必要がある。

http://resources.docs.salesforce.com/206/19/ja-jp/sfdc/pdf/salesforce_app_limits_cheatsheet.pdf

制限の値などはちょくちょく変わるので最新版をさがすこと。 ガバナ制限で検索して一番上に出てきたので2年前の資料だった。。危ない。