いつも有識者の方々には助けられております。
試行錯誤しているのですが、初心者の私では解決できず、どなたかお力添えいただければと思い投稿させていただきます。
⓵やりたいこと
・テーブル行を更新日時(変更日時)の降順に並び替え。
・先頭の行の特定フィールドの項目を、テーブル外にコピー。
⓶困っていること
対象のテーブル内のルックアップフィールドのみが並び替えがされない。
kintoneの仕様であるような書き込みがあったので、回避策として
・ルックアップフィールドを文字列フィールドに退避
→並び替え
→並び変わった文字列フィールドをルックアップフィールドに戻す
というようにすればうまくいくのではと思い試していますが、
文字列フィールドへのコピーと、文字列フィールドの並び替えはうまくいくのですが、
・文字列→ルックアップフィールドに戻す
の部分がうまくいきません。
(function(){
‘use strict’;
kintone.events.on([‘app.record.edit.submit’,‘app.record.create.submit’],
///在籍確認最新:コピー先、ステータス履歴:コピー元のテーブル名、在籍状態:コピー元のフィールド名
function (event){
// 変更日時順にソートする(変更日時降順に並び替える)
var record = event.record;
for (var i = 0; i < record.ステータス履歴.value.length; i++) {
record.ステータス履歴.value[i].value.受入れ機関コピー_ステータス.value = record.ステータス履歴.value[i].value.受入れ機関_ステータス.value;
}
record.ステータス履歴.value.sort(function(a, b) {
//aの方の変更日時が大きい時、a が先にくるようにする
if (a.value.変更日時.value > b.value.変更日時.value) return -1;
//aの方の変更日時が小さい時、b が先にくるようにする
if (a.value.変更日時.value < b.value.変更日時.value) return 1;
return 0;
});
for (var i = 0; i < record.ステータス履歴.value.length; i++) {
record.ステータス履歴.value[i].value.受入れ機関_ステータス.value = record.ステータス履歴.value[i].value.受入れ機関コピー_ステータス.value;
record.ステータス履歴.value[i].value.受入れ機関_ステータス.lookup = true;
}
//同じテーブル内での別フィールドもテーブル外に転記したい場合は、下の一行をコピーしてフィールドコードを変更
record.在籍確認最新.value = record.ステータス履歴.value[0].value.在籍状態.value;
record.受入れ機関_最新.value = record.ステータス履歴.value[0].value.受入れ機関_ステータス.value;
console.log(event);
return event;
});
})();