お世話になっております。
編集ログの記録を、Virtual Columnへ自動で残す方法をご存知ないでしょうか?
その際、FORMULAに計算結果が入ったColumnがあり、その計算式の元となるColumnが変動したときに、当該Columnと計算式結果のColumnのどちらも修正が入ったと記録を残したいです。
(例)
売上Column(100) - 仕入Column(80) = 利益Column(20)の時、売上が110へ変動した時、「◯月◯日◯時◯分に、売上が100から110編集され、利益が20から30へ修正された」などの記録を残したいです。
解決方法をご存知の方、何卒ご教授のほど宜しくお願いいたします。
例えば、話を整理するためにかんたんなケースを想定します。
TABLEには1行しかありません。この行のカラムが更新された場合、そのカラムの名称を問わず常にログを保存するのであれば、WORKFLOWのIF CONDITIONになにも設定せずにUPDATEのEVENTで常に発火させれば、繰り返し、カラムの場所を問わずWORKFLOWのは発火します。
Add NEW ROWとしているアクションですが、追加するROWのIDがすでにログにあるIDであれば、そのログの内容をすべて上書きします。
上書きせずに別のログとして別のROWとして保存したい?というご要望でしょうか?その場合、ログのIDをSOURCEのテーブルと別に設定することで重複がさけられ、ROWの変更があるたびに新たにログのROWを新規追加し保存してくれます。
Tsuji様
先般は、上記のご回答有難うございました。
上記、無事に実装はできたのですが、指定カラムだけでなく、指定テーブル下(テーブル内の全てのカラム)で編集があった場合にログを残す方法はございませんでしょうか?
もしご存知でしたら、ご教授頂けますと誠に幸いです。
作業を進められる中で、ご不明な点が出て参りましたらお知らせください。
上記、ご回答頂戴し有難うございます。
承知いたしました。試してみます。
ログは一つのROWに対し、複数発生するものとなりますから1対多の関係が出てきます。また、VIRTUAL COLUMNでは常に計算式が再計算され続けるため、STATICに値を保持・保存する目的での利用はできません。 ログを残す一般的な方法、アプローチとしましては、ログ用のTABLEを独立して作成。指定のカラムが変更されることをトリガーに、こちらのログ用のテーブルに行を追加していくという仕組みです。Actionを構築する際、アップシートによる最近のリリースで[_THISROW_AFTER]と[_THISROW_BEFORE]という関数がアクション内で利用できるようになったため、新たにログを記録するアクション内で設定するADD NEW ROW TO ANOTHER TABLEの設定で、その行内にある指定のカラムの変更前後の値を新たな行としてログテーブルに送ることで、入力・編集前後の記録を保持することができるはずです。