四捨五入や年齢計算が、標準機能でできたらいいのに
沖安隆氏(以下、沖):5分と時間がないので、さささっといきます、はい。
(スライドを指して)こういう、ちょっと煽り系のタイトルですけど。我々はいつから“標準機能”なんてものがあると錯覚していたんでしょうか?
私はアールスリーインスティテュートの沖と言います。アールスリーは大阪の会社なんですけど、私は愛媛に住んでいて、リモートワークで働いています。kintone Caféの運営もやらせていただいて、かつkintoneエバンジェリストという肩書をいただいているという、kintone大好きな人間です、はい。
もう30秒経ちましたね、やばい。
(会場笑)
沖:kintoneをやってると、昔からよくこう言われるんですよね。
「これ、できないの?」みたいに。四捨五入とか、年齢計算とか。元号も令和になりましたからね。「元号表示、どうしよう」って話がこれから出てくるわけですよ。じゃあ、いろいろやりましょうということで、こういうことをけっこうググると出てくると思うんですけど。
アプリの高度な設定の少数部の桁数と丸め方とか、YEN関数を使うとか。補正値で調整すると、レコード単位とかフィールド単位で細かく調整できるとか。こういうのはけっこう、ググると出てくると思います。
「実際にどうやったらどうなるの?」っていうのを、今回自動計算だけでちょっと試しにやってみたんですけど。
普通に整数単位で割り算すると、こういうふうに3つ出てくる。おまけがあったんで、余りもちょっと出してみたんですけど。こういう計算が、普通に自動計算だけでできます。どうしてかと言うと、kintoneって、計算過程で桁丸めが発生するわけですよ。
なので、パーセントで割ったりするときに、たまに0になって「あれ?」っていうことがあると思うんですけど、こういったことを逆に使うと、このようにできます。
同じように、年齢計算もです。何歳何ヶ月か、計算ができるといいですよね。そういえば、DATE_FORMAT関数があるじゃないか。関数があるから、できるんじゃないか。よし、やってみよう。こうなります。
(会場笑)
はい! ここはだーっと飛ばします。ではどうなるか。
(誕生日が2018年の)5月30日だとして、今日が31日だとすると、1年経ちましたよね。これを6月にずらしたらどうなるのか。(画面を6月に切り替えて)26日だったらこうですよね。30日だったら……お、変わらない。データがまだ変わっていません。これ、1年1ヶ月に変わるはずでした。データがちょっと変わっていないかも知れないです(笑)……というふうになってます(動画では修正済み)。
JavaScriptでカスタマイズすれば、10倍速く処理できる
沖:それで、元号ですよね。どうすんのと。みなさん、ご存知ですか? プロセス管理は、値の比較ができるんです。
あれをうまく使うと、ステータス名が元号に変わります。
沖:4月の30日、平成最後ですね。その次に申請すると、平成になります。なるほどね。じゃあ5月の1日ですね、令和になりました。令和はどうなるのかというと、これを押してみて申請すると、令和に変わるわけです。このようにステータスを使うことで、元号を切り替えることができる。何に使うかは聞かないでくださいね。
(会場笑)
沖:こういうふうにですね、各種設定でいろいろとできますよね。でも、すぐに「できますね」とはなりません。今日の本題は、ここからです。
実はですね、JavaScriptでカスタマイズしたほうが10倍に……個人差はありますけど、10倍速いです。絶対、圧倒的に速いです。
四捨五入なんか、ばんばんばんと終わります。各1行です。
年齢計算、こうやればばーっと終わります。あっという間です。あんな長い計算式、いりません。
日付の元号表示も、本当は1行で済むんですが、残念ながら、ブラウザ非対応なんです。今だと平成になっちゃうんですけど、こういうことをすればすぐ出ちゃう。こっちのほうが早いじゃないか、と。 (※ブラウザのバージョンアップにより令和表示に対応済)
目的に合わせたリソース配分が最上のハックになる
沖:でも、みなさん、JavaScriptを今から覚えます? 勉強どうします? すごく時間がかかるじゃないですか。気軽に(やりますと)言えないじゃないですか?
……と、なりがちなので、ちょっとおすすめなのが、実はCustomineというものがございまして。
これ、私の100倍速いです。どういうことかと言うと、やることをマウスで選ぶから、今やったことが全部できます。どういうこと? こういうことです。
フィールドの切り捨てだとか、四捨五入だとかって、やることがもう用意されています。選ぶだけです。曜日とか年齢とか、全部用意されています。選ぶだけです。何も悩まない。しかも全部日本語で書いてます。JavaScriptを覚える必要がございません。
つまりですね、仕組みで改善です。みなさん、自転車で移動するときに、「遅いよね、じゃあみんな、筋トレやれよ。足を鍛えてスピード上げればいいじゃないか」って思わないですよね。でも、「kintoneじゃできないんすよ」「じゃあJavaScriptでやれよ」ってなぜか言うんです。おかしい、違うと。
自転車じゃなくて、バイクとか車とか、もろもろの違ったツールを使って、もう根本的に仕組みから解決しましょうと。つまり、目的に合わせて、ヒト・モノ・カネの適切なリソース配分をするのが、実はハックです。
私、昔は自営業やっていまして。けっこうヒト・モノ・カネの配分とかですね、それにサービス残業もすごくやらせていましたので、よくわかるんですけど、そこを配分することが、実は業務改善の核。それで変わるんです。
そして、kintoneを使ったすべてが標準機能です。何を使ってもOKです。kintoneというプラットフォームを使えば、JavaScriptをやろうと、関数使おうと、なにやろうといいんです。なので、柔軟に機能を選択していきましょう。はい。以上です、ありがとうございました。
(会場拍手)