指定ログインユーザー以外の日時フィールド自動取得について

以下のアクションについてプログラムコードを書きましたが、

うまく表示されませんでした。

エラー情報も表示されず、どこが不具合を起こしているのかわかりません。

よろしければ、以下のコードから間違いをご指摘いただいた後、

解決策を教えていただきたいです。

 

 

背景・実現したいこと

 指定のログインユーザー以外がレコードを追加した場合、またはレコードを編集した場合は、

本日の日付が日付フィールドに自動で入力されるようにしたいです。

 

エラー情報 (開発者ツールのコンソール)

 なし

 

利用したソースコード

kintone.events.on(['app.record.create.show', 'app.record.edit.show'], event => {

    //返却案内送付日の必須項目値の入力(管理者以外)

    sendingDateOfReturnGuide(event);

    return event;

  });

  //管理課のユーザのフラグ判断

  function getViewInfo(groups) {

    let view_info = false;

   

    groups.forEach(value => {

        if(value.code === '00064') {

            view_info = true;

        }

    });

    return view_info;

}

async function sendingDateOfReturnGuide(event) {

    const record = event.record;

    //「返却案内日」の日付を作成

    const now = new Date();

    const year = now.getFullYear();

    const month = ('00' + (now.getMonth() + 1)).slice(-2);

    const day = ('00' + now.getDate()).slice(-2);

    const date = `${year}-${month}-${day}`;

    //ログインユーザのグループ情報の取得

    const resp = await kintone.api('/v1/user/groups', 'GET', {

        code: kintone.getLoginUser().code

    });

    const blDisplayFlag = getViewInfo(resp.groups);

   

  if(blDisplayFlag === false && !record.返却案内送付日.value) {

        record.返却案内送付日.value = date;

    }

   

}

どうぞよろしくお願いいたします。

kintone.events.on(['app.record.create.show', 'app.record.edit.show'], event => {
  //返却案内送付日の必須項目値の入力(管理者以外)
    sendingDateOfReturnGuide(event);

kintone.events.on(['app.record.create.show', 'app.record.edit.show'], async event => {
    //返却案内送付日の必須項目値の入力(管理者以外)
  await sendingDateOfReturnGuide(event);

もしくは

kintone.events.on(['app.record.create.show', 'app.record.edit.show'], event => {
    //返却案内送付日の必須項目値の入力(管理者以外)
  return sendingDateOfReturnGuide(event).then((event) => {
return event;
});

 

sendingDateOfReturnGuideという関数がasync/awaitで書かれていますが、kintoneのイベント宣言に対してPromiseを返す必要があります(sendingDateOfReturnGuide関数はasync宣言されPromiseを返す関数になっているので、関数内でPromiseを返す必要はありません)。

この辺りはPromiseをよく理解しないといけませんが、個人的にはこれくらいの処理であればわざわざ関数を分けずにイベントハンドラ内に全て記述してしまっても良いと思います。

mls-hashimoto

いつも大変お世話になっております。

ご指摘いただきました内容にて実装を行った所、希望通りの動きになりました!

本当にありがとうございます。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。