最新時刻の取得

recordが一つ多いようです。kintone.app.record.get()でrecordを宣言している場合は

record['record']['テスト時刻']['value'] = time;

で問題ありませんが、kintone.app.record.get().recordで宣言しているので、

record['テスト時刻']['value'] = time;

以上のようになります。

また、kintone.app.record.get().recordで宣言しているのであれば、レコードへの登録は

kintone.app.record.set({ record: record });

になります。

 

const recordData = kintone.app.record.get();
const record = recordData.record;

record['テスト時刻']['value'] = time;

kintone.app.record.set(recordData);

と宣言を分けた方が分かりやすいかもしれません。

 

以下解説ですが、取り敢えずそういう形と覚えるだけでも良いと思います。

 

kintone.app.record.get()で取得するものは

{
record: {
*フィールドコード*: {
value: 'フィールドの値'
}
}
}

という連想配列になっています。そのため、kintone.app.record.get()をrecordに代入すると、

record = {
record: {
*フィールドコード*: {
value: 'フィールドの値'
}
}
};

となります。そのためフィールドコードの値にアクセスするには「record.record.フィールドコード.value」と記載する必要があります(1つ目のrecordは変数、2つ目のrecordは変数内のオブジェクトのrecord)。

また、kintone.app.record.set()でレコードへ反映させるためには

{
record: {
*フィールドコード*: {
value: 'フィールドの値'
}
}
}

という形である必要があります。

宣言を分けた方が良いと言ったのは、

let recordData = kintone.app.record.get();
let record = recordData.record;

とすることで

recordData = {
record: {
*フィールドコード*: {
value: 'フィールドの値'
}
}
}

record = {
*フィールドコード*: {
value: 'フィールドの値'
}
}

となり、フィールドコードの値を変えたい場合はrecord.フィールドコード.valueでアクセスでき、レコードへ反映させたい場合はrecordDataで可能だからという理由によります。