キンコミ kintone user community

みんなの投稿

2023/07/22 11:19

初めまして、最近会社にkintoneを導入しようと準備をしております。

「日付」というフィールドにある日付と今日現在の日付を比較して何日経過したかをという日数を「数字」というフィールドに一覧表示時や詳細画面表示時に表示させたいのですが、下記のようなJavascriptを書いてみたのですが動いてくれません。何か簡単なことで引っかかっているのではないかと思うのですが、どなたかご指導いただけませんでしょうか。



(function() {
'use strict';

const ary_events = ['app.record.create.show',
 'app.record.edit.show',
 'app.record.index.edit.show',
 'app.record.index.show'
];

kintone.events.on(ary_events, function(event) {
    const record = event.record;
    const now = new Date();
    // レコードが一覧表示されている場合
    if (event.type === 'app.record.index.show') {
        record.forEach(function(record) {
            const dateA = record.日付_0.value;
            const diff = now - dateA;
            alert(diff);
            const diffDays = Math.floor(diff / (1000 * 60 * 60 * 24));
            record.数値_1.value = diffDays;
        }
    } else { // レコードが作成または編集表示されている場合
        const dateA = record.日付_0.value;
        const diff = now - dateA;
        const diffDays = Math.floor(diff / (1000 * 60 * 60 * 24));
        record.数値_1.value = diffDays;
    }
    return event;
});

})();

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

たつま0さん

ご希望の回答とはズレますが、本仕様をJSカスタマイズ以外の方法で実装されるのも検討されてはいかがでしょうか。

過去、類似する案件でディスカッションしたことがありますので紹介します。
https://kincom.cybozu.co.jp/chats/7vap4q53n6rkms2z

標準機能でも、当日日付(今日)の更新を手動、運用でカバーするのであればできそうです。

自動化が必須であれば、上記のようにGASを利用する方法や、プラグインやRPAを使う方法もあるかもしれません。
またkintoneで公式サポートしているcli-kinoneというコマンドラインツールで更新する方法なども考えられます。
https://cybozu.dev/ja/kintone/sdk/backup/cli-kintone/

いかがでしょうか。
JSカスタマイズは色々できて便利ですが、属人化しやすかったり、
kintoneの「ファイルから読み込む」では発火しないなどの注意点もありますので、
それらを踏まえて、色々な方法を検討されてはいかがかと思います。
もちろん結果JSもありです。^^

参考になれば幸いです。


たつま0
2023/07/26 08:34

返信遅くなり申し訳ございません!過去のスレッド参照させていただきました、なるほど各レコードに本日日付を持たせるのでなくて共通の本日日付を作成してそことの差分を自動計算させるんですね!!言われてみれば簡単ですが目からウロコでした。

ありがとうございます!!

ユーザー画像
ユーザー画像
退会したユーザー
2023/07/22 14:53

forEachメソッドの閉じ括弧「)」が抜けてますね。

コードをカラーリングしてくれるテキストエディタをお使いでしょうか。参考までですが、私の使っているVisual Studio Codeだと添付ファイルのようにカラーリングしてくれます。15行目のforEachメソッドの開始括弧が赤く表示されていたり、22行目の波括弧に赤波線が付いていたりするのですぐにコーディングミスがわかります。


ユーザー画像
ユーザー画像
退会したユーザー
2023/07/22 15:27

追加:イベントオブジェクトからレコードを取得するプロパティ名は、イベントの種類によって異なるのではないでしょうか(record と records というように)。
https://cybozu.dev/ja/kintone/docs/js-api/events/idx/index-show-event/
https://cybozu.dev/ja/kintone/docs/js-api/events/edit/edit-show-event/

たつま0
2023/07/22 15:57
  • 退会したユーザー 退会したユーザー

ご返信ありがとうございます!凡ミスお恥ずかしい、ご指摘感謝です!一覧画面と編集画面でsのあるなしが違うのですね、こちらも気づいていませんでした。しっかりと確認するようにします。ありがとうございます!

じゅりっぺ
2023/07/22 14:15

こんにちは!

JavaScriptの話題は技術的なお話ですので
↓こちらでしたほうが回答がつくと思います〜👀
https://community.cybozu.dev/


たつま0
2023/07/22 15:56

ご返信ありがとうございます!こちらのページ存じ上げませんでした、確認させて頂きます!