1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Force.comで参照項目無しの場合に指定するID文字列

Last updated at Posted at 2013-12-27

JavaScriptから参照項目のIDを引数に指定してApexのAPIで参照項目更新をする場合に、
参照なしにする場合になにを指定すれば良いかわからずにはまった。

参照無しを表す場合のIDは「000000000000000AAA」(「0」15桁+「AAA」)を指定すれば良いそうです。

SampleAPI.cls
/** 呼び出されるサーバ側コード(Apex) */
global class SampleAPI{
    /**
     * 引数で指定された値を参照項目IDとしてレコードを更新するAPI
     * @param id    参照項目を持つ子レコードのID
     * @param refId 参照項目のID(親レコードのID)
     */
    webService static void updateRefId(String id, String refId){
        // 更新対象レコードの取得
        ChildObj__c obj = [
            Select parentObjId__c
            From   ChildObj__c
            Where  Id = :id
        ];

        // 更新内容の設定
        obj.parentObjId = refId
        update obj;
    }
}
sample.js
/** 呼び出し元JavaScript */
sforce.connection.sessionId = "{!$Api.Session_ID}";

// 子レコードIDを現在のページのレコードID、参照項目IDを「参照なし」に指定
var result = sforce.apex.execute("SampleAPI", "updateRefId", {id:"{!Id}", refId:"000000000000000AAA"});

Apex内でIDを指定する場合(IDを引数で受け取らない場合)は、nullを指定するだけで「参照なし」になりました。

Sample.cls
SampleObj__c obj = new SampleObj__c();
obj.parentObjId = null;     // 参照なしに設定
insert obj
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?