キンコミ kintone user community

みんなの投稿

2023/07/24 21:33

始めまして。
kintoneもJavaScriptも超初心者です。
現在、案件管理のアプリと、その案件に対しての進捗などを記載するを活動管理のアプリを使用しています。
別アプリでの管理となっている為、活動のみを更新すると案件管理と更新日時のズレが出てきてしまいます。
そこで、活動管理を更新した日時で案件管理の日時を更新したいと思い試行錯誤しているのですが、上手くいきません。
やりたい事としては、
①活動管理アプリを更新する
②活動管理アプリ内の【P-No】を基に、案件管理アプリの【Prospect番号】を検索
③②で一致したレコードがあった場合、活動管理の更新日時で案件管理アプリの更新日時を上書きする
になります。
見よう見まねで以下のようなコードを記載しているのですが、記載のミスやアドバイス等ありましたら、ご教授頂けますでしょうか。
※案件管理=プロスペクトです

(() => {
'use strict';

kintone.events.on('app.record.detail.show', (event) => {

// 「プロスペクト」のアプリのIDに書き換えてください
const APP_ID = 57;

// 「レコード番号」を取得
const applicationNumber = kintone.app.record.getId();

// フィールドコードを変数に格納
const updatedate = '更新日時';
const prospectno = 'P-No';

// 「プロスペクトアプリ」から「プロスペクト番号」が同じレコードを取得
const params = {
  'app': APP_ID,
  'query': `Prospect番号 = ${P-No}`
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params).then((resp) => {

  const UpdatedateRecords = resp.records;

  // 同じレコードが存在しないときにエラーを表示
   if (UpdatedateRecords.length === 0) {
     window.alert('「エラーが発生しました');
     return event;
   }

  // 更新日時を更新する
  kintone.api(kintone.api.url("/k/v1/record", true), "PUT", {
 app: APP_ID,
 id: record.UpdatedateRecords.value,
 record: { レコード更新日時: { value: record.更新日時.value } },

});

return event;
}).catch((error) => {
// エラー表示をする
window.alert(エラーが起こりました。エラーメッセージ:${error.message});
return event;
});
})();

2件のコメント (新着順)

アプリ間のデータコピーをしてくれるプラグインや、
関連レコードを一覧画面に表示してくれるプラグインなどもありますし、
JavaScriptの知識がなくてもカスタマイズが出来るCUTOMINEなど、
kintoneは関連サービスが充実していますので、
初心者であれば、そういった外部サービスに頼るのも有だと思います。
なにせ、JavaScriptの知識がない人にはメンテナンスが不可&負荷になるので、
分かりやすい内容でカスタマイズされた方がよろしいです。

わからないですが、更新日時を直接更新しようとしなくても何かフィールドが変わればそれで更新日時が更新されるのではないですか?どうなんでしょう。
もしくは関連レコード一覧で活動管理アプリの更新一時を表示してみる等方法もあるかもですね。

どちらにせよ、JavaScriptのコードに関する質問はキンコミよりもcybozu developer networkの方が具体的な回答が返ってくる可能性が高いと思います。


北風
2023/07/25 08:05

ありがとうございます。
関連レコード一覧だと一覧表示に表示出来なかった為、そちらは除外して考えていました。
他のフィールドを更新すれば、更新日時も更新されるかもしれないは全く考え付きませんでした。例えばバージョンのような他のフィールドを作成しておいてそこを更新すれば自動的に日時にも更新されるかもしれないですね!
自分の勉強の為にも、ご提示いただいたcybozu developer networkで確認しつつご教授頂いた方法を試してみようと思います。