新規投稿
フォローする

レコードの一括更新について

いつもお世話になります。

至急対応が必要な案件がございまして、ご教授いただけますと幸いです。

現在、文字列フィールドにに特定の文字が入ると数値フィールドに特定の値が入る

という下記JSを作成しましてレコードの作成、編集、保存時には

問題なく編集が走るのですが

1000近くあるレコードを一括で更新する必要があるのですが

レコード詳細まで行ってからの編集時でないと、値が反映されません。

ちなみに、プラグインで一覧からレコードが一括更新できるものはあるのですが

それでは更新はできませんでした。

宜しくお願い致します!

(function() {
"use strict";

var events = [
"app.record.create.show", "app.record.edit.show", "app.record.index.edit.show",
"app.record.create.change.商品名", "app.record.edit.change.商品名", "app.record.index.edit.change.商品名"
];
kintone.events.on(events, function(event) {
var record = event.record;
record['UNROOF単価']['disabled'] = true;
if (record['商品名'].value === 'スリムキーケース')
record['UNROOF単価'].value = 3950;
else if (record['商品名'].value === 'シンプルラウンド長財布(バイカラー)')
record['UNROOF単価'].value = 8400;
else if (record['商品名'].value === 'シンプルラウンド長財布')
record['UNROOF単価'].value = 8400;
else if (record['商品名'].value === 'スリム長財布(カード収納13段)')
record['UNROOF単価'].value = 8400;
else if (record['商品名'].value === 'シンプル名刺入れ')
record['UNROOF単価'].value = 4450;
else if (record['商品名'].value === 'ENISHI 2つ折り財布')
record['UNROOF単価'].value = 12500;
else if (record['商品名'].value === 'ENISHI ラウンド長財布')
record['UNROOF単価'].value = 14000;
else
record['UNROOF単価'].value = '';
return event;
});

0

1件のコメント

Avatar
猪股直規

この処理が動くタイミングが「レコードを開いたとき」か、「商品名を変更」したときのみのようですね。
一括更新をするプラグインなどはただ空更新しているだけの場合もあるので、この条件に一致せず動かないのではないでしょうか。

全レコードを取得し、この処理を実行することで対応できると思います。
全レコード取得するプログラムはサンプルがありますね。
https://developer.cybozu.io/hc/ja/articles/203702800-全レコードの取得方法

こちらは全レコードを空更新しているので、空更新するところで作られたプログラムを実行するなど、参考にしてみてください。
https://qiita.com/iNaoki04/items/3cf8655ad58f2c9a1308#comment-8f8a909f9dd34a4f41bc

猪股直規により編集されました
1
サインインしてコメントを残してください。