一意の番号付けを強制する
重複する番号はまれですが、デフォルトでは、番号付けの一意性が強制されることはありません。
一意性を強制するために、次のことができます。
- 挿入のみの事前のビジネスルールを作成して、重複する値をチェックし、重複する値を次に使用可能な番号に置き換えます。
- テーブルで一意のインデックスを有効にします。
注:
一意のインデックスはデータの完全性を保証すると同時に、重複する番号を含む挿入を防ぎます。重複する番号により、データ入力時に予期しないエラーが発生する可能性があります。
ビジネスルールのサンプル
このサンプルスクリプトは、挿入のみの事前のビジネスルールの一部として使用し、重複する番号をチェックし、それらを次に使用可能な番号に置き換えます。次のスクリプトは、「テーブルのシステム番号の左側のパディングを構成する」で作成されたスクリプトを参照しています。
var curNum = current.number + '';
if(curNum) {
var recordClass = current.getRecordClassName();
var now_GR = new GlideRecord(recordClass);
now_GR.addQuery('number', curNum);
now_GR.setLimit(1);
now_GR.query();
if(now_GR.getRowCount() > 0) {
var newNum = getNextObjNumberPadded();
gs.addInfoMessage("The number " + current.number + " was already used by another " +
recordClass + ". The " + recordClass + " number has been changed to " + newNum);
current.number = newNum;
}
}