はじめに
分類Aに選択式、分類Bにテキスト形式、分類Cに自動採番で「分類C = [分類B]_[NNNN]」としています。さらに、分類Dに自動採番で「分類D = [分類A][分類C]_[NNNN]」と設定されているようです。ややこしいですね。今回はこの設定の上でサーバスクリプトを動かし、分類Dの表記を変更したいというご要望でした。実施していきます。
サンプルコード
try {
//クラスDの値([分類A][分類C]_[NNNN])を取得
let beforeStr = model.ClassD;
//クラスDの値の先頭1文字を取得
let firstStr = beforeStr.substr(1, 1);
//クラスDの値のうち「-」の次の文字から最後までを結合
let afterStr = firstStr + beforeStr.substr(beforeStr.indexOf('-') + 1, beforeStr.length);
//文字列結合した最終的な表記をクラスDに出力
model.ClassD = afterStr;
//更新処理
model.UpdateOnExit = true;
} catch (e) {
context.Log(e.stack);
}
さいごに
文字列の特定個所を切り取り、値を取得する箇所はとても困りました。お客様の環境では分類Aや分類Bは任意の文字列長になるため、臨機応変に文字列が切り取られるためにコーディングしました。
beforeStr.indexOf('-') + 1
上記のソースコードが該当箇所です。ネットで調べれば出てくるので調べてみてください。