##はじめに
モバイル端末からWebアプリにアクセスするとき、電波の関係で一時的にオフラインになる場合があります。そんなとき、編集しかけのデータが消えてしまうと困りますね。
BOPFには、ドラフトを自動的に保存してくれる機能があります。
##ドラフト機能の仕組み
ドラフト機能を有効にすると、ドラフトデータを保存するためのテーブルが別に登録されます。保存前のデータはドラフト用のテーブルに保存され、保存したデータだけが正式なデータ用のテーブルに格納されます。
##ドラフト機能を有効化
CDSビューに以下2つのアノテーションを追加します。
draftEnabled: true
writeDraftPersistence: 'ドラフト用テーブル名'
CDSビューを有効化すると、ドラフト用のテーブルが自動で登録されます。
赤枠で囲った項目が、元のテーブルと比べて追加された項目です。
##ドラフト機能を確認
###ドラフト作成時
####フロントエンド
アプリを実行すると、2つの項目が追加されています。
一つの行を選択して編集してみます。
すると、Draft savedというステータスが表示されました。
保存せずに前の画面に戻ると、ドラフト状態のレコードが表示されます。
Show Active Items Onlyを押すと、編集前のレコードが表示されます。
####バックエンド
ドラフト用のテーブルにデータが格納されています。
Keyという項目で正式なテーブルとひもづいていることがわかります。
正式なテーブルのデータはまだ変更されていません。
###保存時
####フロントエンド
ドラフトデータを保存します。
####バックエンド
ドラフトテーブルのレコードが消えました。
正式なテーブルに変更が反映されました。