オープンソースWebDBのプリザンター(pleasanter)ブログ

オープンソースのWebDBのプリザンター(pleasanter)のブログとサービス情報サイトです

株式会社リーデックスのオープンソースWebDB「プリザンター」ブログです。

レコードのデータに対して強制的に履歴を残す(新バージョンとして保存する)には?

こんにちは。
リーデックス小川です。

先日、昔の仲間と新年会を行いました。十数年前に一緒のチームで働いていた元社員4名です。年に1回しか会わないので話題は尽きないのですが、最後の方は、一緒に仕事をした時のふりかえりになります。あの時は楽しかったね、こうしていればよかった、あれは俺の責任だ・・・、など、ポジティブな話もネガティブな話も今だから素直に腹を割って話せるのがなんだかうれしい気持ちになりました。いまから十数年後、今の仲間とこんな話ができるような関係を築いていきたいと思います。

さて、今回はレコードのデータに対して強制的に履歴を残す方法について書いてみたいと思います。

 

レコードのデータの履歴(バージョン)について

プリザンターでは、レコードごとに履歴を持つことができます。編集画面の上部にあるタブ「変更履歴の一覧」に今までの変更履歴が表示されます。

f:id:h-ogawa-reedex-co-jp:20200121213012p:plain

 

過去の履歴に戻すことも可能です。戻したいバージョンにチェックし、「復元」ボタンをクリックすると、選んだバージョンが最新バージョンとして保存され、データが復元されます。元のバージョンは削除されません。バージョンの削除も同様に行うことが可能です。削除したいバージョンにチェックし、「変更履歴を削除」ボタンをクリックします。

 

新バージョンで保存するには?

さて、データの履歴どのように行われるかなのですが、編集画面のタブ「全般」タブの下部にある「新バージョンとして保存」のチェックボックスにチェックが入っていると履歴が保存されます。

f:id:h-ogawa-reedex-co-jp:20200121213252p:plain

 

プリザンターの仕様で、このチェックボックスに強制的にチェック、つまり、必ず履歴が保存されるパターンがあります。それは、「他のユーザが更新」「更新日時が機能以前」の場合です。それ以外の場合は、任意で選択して履歴を残すかを決めることができます。

更新 履歴の保存
他のユーザが更新 自動保存
更新日時が昨日以前 自動保存
それ以外 任意で選択

 

常に新バージョンとして保存するには?

さて、この履歴ですが、変更者が任意に設定するのではなく強制的に履歴を残したい場合があります。やり方は2つあります。1つはJavaScriptで行う方法、もう一つはプリザンターの機能を利用する方法です。

強制的に新バージョンとして保存するやり方~その1

1つ目は、スクリプトにより実現する方法です。具体的なやり方については、下記FAQを参考いただければと思います。ここではソースコードを抜粋しご紹介します。

$p.events.on_editor_load = function () {
    ForceVersionUp();
};
//レコードの保存後 チェックが外される使用のため、チェックを付け直す
$p.events.after_set_Update = function () {
    ForceVersionUp();
};

function ForceVersionUp() {
    var verup = $("#VerUp");
    if (verup[0]) {
        verup.prop('checked'true);
    }
};

公式FAQ:https://pleasanter.net/fs/publishes/334841/edit

 

上記を設定することで、強制的にチェックを入れることが可能になります。なお、チェックを外させないためにはもう一工夫必要となります。また、少し趣旨とはずれますが、この方法だと、チェックする条件を柔軟に変更することが可能です。

 

強制的に新バージョンとして保存するやり方~その2

2つ目のやり方は、管理画面のエディタより設定する方法です。
管理画面の「エディタ」画面のページ下部にある「自動バージョンアップ」を「常時」に設定します。 「常時」に設定することで、強制的に履歴を残すことが可能です。

f:id:h-ogawa-reedex-co-jp:20200121213925p:plain

 

そのほかの選択肢として「規定」「無効」を選択することができます。それぞれの詳細は下記表を参考にしてください。

選択 説明
規定 デフォルトの機能
常時 更新日、更新者が同一でも強制的に新バージョンとして保存する(「新バージョンとして保存」は変更できません)。
無効 更新日、更新者が異なる場合でも強制的に新バージョンとして保存されない。チェックを入れることで新バージョンとして保存することは可能。

公式マニュアル: https://pleasanter.net/fs/publishes/667147/edit 

 

まとめ

今回は、レコードのデータに対して強制的に履歴を残す方法について記載いたしました。間違えて変更してしまったときや、何を変更してしまったかを確認するときに履歴があると対応できます。上記の方法を元に、運用に適した履歴の残し方について検討してみてはいかがでしょうか?

それでは、今回はこの辺で。
最後までご覧いただき、ありがとうございました。