新規投稿
フォローする

レコード番号を数値フィールドへ一時保存し、それをさらに別フィールドへコピーするためのコード

レコードを複製した際に、どのレコードから複製したかがわかるようにしたいと考えて、

下記フィールドを設けました。

フィールド名:フィールドコード

レコード番号:レコード番号、中間:中間、複製元レコード番号:複製元レコード番号

※中間、複製元レコードはいずれも「数値」

 

プログラムで実現したい内容としては下記の通りです。

1.①新規にレコードを作成した際に、保存する際にレコード番号を中間に保存

1.②①のレコードの編集を押した際に、中間の番号が複製元レコードに保存される。

※ただし、複製元レコード番号が空白になっている時だけ

 空白でないと、編集を押す度に中間のレコード番号が複製元レコード番号に保存されるため

2.1.②で保存されたレコードを複製して保存する際には、

 レコード番号が中間に保存されるだけで、複製元レコード番号は何も編集されない

 

ちなみに、このアプリはレコードの編集者が2人に分かれているので、

必ず2回以上編集があることを前提にしています。

 

そこで、下記コードを作成して読み込ませているのですが、

全然うまくいきません。

最初はレコード番号を中間に保存するという式も組み込んでいましたが、

新規でレコードを作成した際に、保存するまでレコード番号が空白になって、

エラーを起こすため、

計算式プラグインというものを使って、レコード番号→中間とコピーするようにしています。

結局は複製元レコード番号が空白の時だけ、

中間→複製元レコード番号をコピーするという内容になっています。

 

エラーとしては、何もコピーがされませんが、レコードの保存自体はできます。

F12を押してもエラーとして表示されませんでした。

原因がお分かりになる方がいれば、ぜひご教示いただけますと幸いです。

よろしくお願いいたします。

 

(function () {
"use strict";
kintone.events.on([
'app.record.create.submit',
'app.record.edit.submit',
'app.record.index.edit.submit'], function (event) {

var record = event.record;
if (record['複製元レコード番号']['value'] === ""){
record['複製元レコード番号']['value'] = record['中間']['value'];
}
return event;
});
})();
0

1件のコメント

Avatar
サクラエビ

kyodenさん

こんにちは。

複製元レコード番号が数値フィールドのため、空の場合はundefined が入ってしまっており、

if文を抜けているのではないかと思います。

こちらのような感じで判定処理をすることで、うまくいかないでしょうか?

 

0
サインインしてコメントを残してください。