kintoneレコードで年齢が毎日更新されるwin7用バッチファイルを作ってみた。
kintoneが生年月日から年齢を計算出来ないので、javascriptで出来るようにしてみた。で、レコード入力時や表示する時には自動計算してくれるようになった。
が、30歳以上・以下みたいな検索をしたい場合は、これだと出来ない(あくまで入力補助や表示だけなので、レコードの年齢は自動更新されない)
こういう仕様をみると、kintone=「CSVの入力フォーム&そのWebサーバを簡単に作れるだけ」っていう現実をひしひしと感じるな・・・。
嘆いていもしょうがないので、年齢を自動更新してくれるバッチファイルを作ってみた。
kintone コマンドラインツールの使い方
実行速度を調べるためにダミーデータをmysqlで作ってみる。
参照URL: https://www.softel.co.jp/blogs/tech/archives/4730
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
CREATE TABLE kintone ( id INT PRIMARY KEY AUTO_INCREMENT, birthday DATE ); -- レコードを倍々ゲームで増やす。 INSERT INTO kintone () VALUES (); -- 最初に1レコード INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 2 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 4 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 8 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 16 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 32 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 64 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 128 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 256 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 512 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 1024 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 2048 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 4096 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 8192 INSERT INTO kintone (id) SELECT 0 FROM kintone; -- 16384 -- ランダムで適当な誕生日に更新 UPDATE kintone SET birthday = '1980-01-01' + INTERVAL RAND() * 3650 DAY, |
CSV(SJIS)エクスポートして、適当に作ったkintoneアプリに読み込ませる。
batファイルで年齢計算してみたら、所要時間は以下の通り。
1024レコード=約42秒
8192レコード=約300秒
数千~数万件程度なら、起動時のスタートアップに入れたり、タスクスケジューラに入れて、それなりに実用的かな?
※kintone公式のコマンドラインツールは、GO言語のソースを見てみると100件レコード単位で処理しているっぽいので500件単位に修正して、自分でコンパイルしたら早くなるかも…。