kintoneとExment



6月から勤めている会社で今は取り敢えずITの仕事しています。そこであるデータベースを作ることになりました。データは20数年分あるのですが、その入力がExcelでされていて、入力チェックがほとんど入っていません。そのためデータの揺れが非常に大きいまま、最終的にはkintoneのアプリの中に収録されています。それでまず入力はBPM(Business Process Management)のツールである、Questetra BPM Suiteを使うように変えました。Questetraは入力欄を正規表現で規制出来るので、非常に強力な入力チェックが簡単に実装出来ます。またXML形式のリストデータを参照してそこから選んでデータを入れることも出来ます。そしてQuestetraには、最初からkintone連携というのが用意してあったので、最初はこれを使って自動的にkintoneのアプリにデータを書込めばいいかと思っていました。ところが、kintoneにはコースが2つあり、今の会社で使っているのは安い方で、これには外部連携機能がありません。外部連携機能を使うためには、高い方のコースに全アカウント切り替えないといけません。それでそこまでしてkintoneを使う価値があるかどうか調べました。その結果、「kintoneって一体何の役に立つの?」という疑問が湧いて止みませんでした。

kintoneの問題点はというと、
(1)データベースのツールのように宣伝していますが、リレーショナルデータベースではまったくありません。従ってデータが増えれば増えるほど管理が面倒になり、スピードも低下します。主キーの設定とかリレーションの設定も当然ありません。トランザクション処理(一連の複数のデータベース操作処理のこと)も出来ません。
(2)普通何かのマスターテーブルを参照してデータを入れる、というのはデータベースの基本中の基本ですが、kintoneだとこれが「ルックアップ」ということになっています。しかし、ルックアップは別のアプリのデータを一度コピーしてそれを参照するだけのものであり、元のアプリのデータが変更されても、それはコピーした側のアプリには自動的に反映されません。
(3)データの容量も1アカウント当たり5GBしかありません。
(4)見た目のカスタマイズも機能が限定されていて、データの一覧が見にくいです。今の会社では皆結局CSVをエクスポートして、Excelで見ています。
(5)入力の制限に正規表現がサポートされていません。

kintoneを作っているのはサイボウズですが、ここの開発のトップのH氏は元ジャストシステムの方で、私と同じ頃在籍されています。しかしその方が所属していたのはJOSSというグループウェアのチームです。なのでサイボウズのガルーンというグループウェア(今の会社で使っています)は笑ってしまうくらいJOSSとそっくりです。でもガルーン自体はそんなに悪くありません。しかし、kintoneは「なんちゃってデータベース」ツールであり、私に言わせれば「ゴミデータ作成ツール」です。

それでどうしたかと言うと、結局kintoneを止めて、前の会社で使った経験のあるExmentに変えました。これは前の会社であるデータベースを操作するアプリを開発するのに、ある開発会社から提案されたもので、これを使うことで開発費を半分に抑えることが出来ました。また、ExmentはMySQLを使うWebアプリの開発ツールであり、当然ちゃんとしたリレーショナルデータベースのアプリが簡単に作れます。今実際にExmentでデータベースアプリを作り始めましたが、生産性は非常に良いです。kintoneのコース変更は止めて、そのお金でAWSのEC2サービスでAmazon Linux 2023を動かし、その上でExmentを動かしています。前の会社ではExmentのインストールはその開発会社にやってもらいましたが、今回は自分でやりました。サーバーのその他の設定も含めて3日もかからず構築出来ました。大事なことを言い忘れましたが、Exmentはオープンソースのツールであり、一つの会社で一つのサイトを使い、また開発元にカスタマイズを要求しない限りは無償です。カスタマイズはプラグインを開発することで無償のまま可能です。私としてはkintoneよりもExmentを強くお勧めします。自分で開発するのが敷居が高ければ、NTTデータCCSという会社が構築サービスをやっています