[salesforce]テストコード内からレコード作成時に自動採番項目がカウントアップされてクリアできない問題

By |12月 6, 2010|salesforce, |


タイトルのとおりですが、自動採番項目があるオブジェクトに対してテストコード内からレコードを作成すると、その作成レコード分の採番がカウントアップされたままでクリアされない、という問題が起こります。

例えば、

[php]
static testMethod void autonumbertest(){
Autonumber__c an = new Autonumber__c();
insert an;
}
[/php]

こんな風にレコード作成をするテストコードがあり、このコードを実行するとそのSFDC組織のそのオブジェクトの自動採番がカウントアップされてしまいます。これだとデプロイ時やテストコード実行の度にカウントアップされてしまうので、例えば、自動採番項目の数字を業務において問い合わせ件数とか顧客数とかの数字として扱っていると、問題がおきてしまいます。

この問題を回避するためには、SFDCの担当やサポートに連絡すると、テストコードからレコード作成時の自動採番がクリアされるように設定してくれるそうです。

2010/12/8訂正
サポートでは対応できないそうです。

参考:
Auto Numbers should not increment with Run Tests
Allow autonumber fields to be re-seeded