kintone: 削除した項目(フィールド)は戻らない

プロローグ

kintone の 2020年5月版アップデートで「削除してしまったアプリ/スペースを復旧する機能」(以下、「復旧機能」)が追加されました。全国の kintone ファンはこのアナウンスに大いに沸いたことでしょう。私も「とうとう来たか!」と思いました! これでkintoneも安心して使える、と安堵したものです。5月10日の定期メンテナンスで復旧機能が実装され、すぐさまプロジェクト・アスノートさんが「消したアプリが復活する!」と題してライブ配信しています。私も2、3日遅れで視聴しましたが、とてもわかりやすく復旧機能を紹介くださっています。

ところがひとつ気付いてしまいました。「フィールド(アプリの各項目のこと)を消してしまうと、それって復旧しないんじゃないか」って。kintoneヘルプを見ると「アプリを復旧しても元に戻らない内容」という項があります。そのスクリーンショットが次の画像です。アプリを復旧しても元に戻らない内容

元に戻らない内容は、主に3点あります。
(1)「アプリの設定内容の一部」として、アプリコードなどが挙げられています。でも、これらはkintoneアプリ内のデータではなく、設定内容です。データが元に戻らないわけではありません。設定は消えても再度設定すればよいだけです。
(2)「送信済みの通知」も元に戻らないそうです。でも、通知は70日経つと消える運命にあるわけですし、通知済みなわけですし、ちょっと困ることもあるかもしれませんが、大きい損失ではありません。
(3)「アプリを削除する前に変更/削除した内容」も元に戻らないと書いてあります。これはどういう意味なのでしょう? 落ち着いて考えられるよう、図にすると次のようになります。

図1「アプリを削除する前に変更/削除した内容」とは

図1をみるとわかるように、吹き出しで書いたタイミングでの「変更や削除」は元に戻らないということですね。言い換えると、「アプリを削除する直前の状態」だけが復旧できるとも言えます。ですので、アプリのフィールドを削除しちゃうと、それは「アプリ削除」より前の「削除」に該当しますので元に戻らないだろうなと予想できます。

検証:実際にフィールドを削除してみた

テスト用に「受注・売上管理」アプリを作成し(図2)、その中の「受注金額」フィールドを削除してみました。この状態で、アプリを削除 → 復旧させた後に「受注金額」フィールドは削除されたままなのかどうか。結論を先に言うならば、アプリを復旧させても受注金額フィールドは復活はせず、削除されたままの状態となりました。

図2 受注・売上管理アプリ:赤く色づけした「受注金額」フィールドを削除してみた。

受注金額フィールドの削除の手順は以下の通りです。まず、フォームの編集画面にて、受注金額フィールドの「歯車」アイコン→「削除」をクリックします(図3)。

図3 受注金額フィールドを削除しようとしている様子

すると、フォーム編集画面から受注金額フィールドが消えます。しかし、これは画面から見えなくなっただけで、アプリにはまだ受注金額フィールドは残っています。本当にアプリから受注金額フィールドが削除されるのは、図4と図5の操作を行った後になります。図4では「アプリを更新」ボタン(画面右上)をクリックし、図5の確認画面で「OK」ボタンをクリックしています。

図4 編集内容をアプリに反映させるには「アプリを更新」をクリックする
図5 アプリへの変更内容を本当にアプリに反映してよいか、確認します

受注・売上管理アプリの一覧画面を見ますと、図6のとおり、受注金額フィールドは無くなっています。つまり、これまで保存してあった受注金額のデータは全て消えてしまったということです。これはテスト用のアプリのため、消えたデータは10件だけです。何か別の資料を参照して、10件くらいなら手入力して元に戻すこともできます。しかし、消えた件数が1000件とか10000件とか数が増えると手入力で元に戻すのは大変な作業となってしまいます。

図6 矢印位置にあった「受注金額」フィールドが消えた様子

ここで、受注・売上管理アプリそのものを削除し、更に復旧もしてみましたが、復旧できるのは図6の状態でした。図2には戻りませんでした。つまり、図1のところで説明したように、削除したアプリは、その直前の状態になら復旧できるということです。

削除したフィールドを復活するには

でも備えがあれば、フィールドを間違って削除してしまったとしても復活できます。備えには2つ方法があります。ひとつは、別会社が提供しているデータのバックアップサービスを使うことです。例えば、トヨクモ株式会社が提供している kBackup がそれです。手間はかかりますが、kintoneアプリからデータを定期的に書き出しておくという方法もあります。以下では後者の方法を紹介します。

まず、一覧画面の左上で「(すべて)」の一覧を表示します。次に、右上の「・・・」アイコン →「ファイルに書き出す」の順にクリックします(図7)。これで、アプリのデータが CSV 形式で手元のPCに保存されます。この操作を定期的に各アプリで行うという方法です。

図7 データをCSV形式で書き出す

次に、誤って受注金額フィールドを削除してしまった場合、CSVファイルからどのようにしたらデータを復旧できるかを説明します。まず、フォームの編集画面で、受注金額フィールドを設置し直します。次に、図7の画面で「ファイルから読み込む」の方をクリックします。すると、図8のように、CSVファイルの中身とアプリの各フィールドとの対応関係を設定する画面となります。

ここでは「レコード番号」をキーとして受注金額を復活させようとしていますが(上の赤矢印)、kintoneではレコード番号は変わる場合があるため、できるだけレコード番号には依存せずに済むようにした方がいいでしょう。つまり、アプリごとにキーとなるようなフィールド(アプリ全体を通して一意となるようなフィールド:連番とかID番号とか)を用意しておき、それをキーとして復活させる方が安心です。そして、アプリの受注金額フィールドとCSVファイルの受注金額列とを対応させた上で(下の赤矢印)、画面一番上の「読み込む」ボタンをクリックします。

図8 CSVファイルをアプリに読み込む

図9は、受注金額フィールドの値(金額)が復旧した様子です。各レコード(データ1件のこと。一覧画面では1行にあたる)と、受注金額が正しく対応しています(フィールド削除前の図2と丹念に比較しないといけませんが)。

図9 CSVファイルをアプリに読み込んだ様子。赤く色づけしたフィールドが復活した。

まとめ

kintoneに導入された、削除したアプリの復旧機能は素晴らしいものです。これで安心してkintoneを使うことができます。しかし、フィールドを削除してしまいますと、そのフィールドに保存してあったデータは失われてしまいます。フィールドの誤消去に備えるには、kBackup などのバックアップサービスを使うか、kintoneの「ファイルに書き出す」機能でCSVファイルでバックアップを取っておく必要があります。

kBackupは有料ですし、CSVファイルを書き出すのは手間がかかります。どちらの方法も採用できないような場合は、「削除に関する操作は、2人以上で確認しながら行う」などの運用面でのカバーが必要でしょう。お金もかけず、手間もかけず、運用面も考慮せずに安全に運用するのは不可能です。データを失ったときの損失と、その備えにかける費用や手間とどちらが大切なのかを考えて、どういう体制を取るのがよいか決定するとよいと思います。