Revert 関数
適用先: キャンバス アプリ
データ ソース の レコード を更新し、エラーをクリアします。
内容
Revert 関数は、データ ソース全体またはそのデータ ソース内の 1 つのレコードを更新します。 他のユーザーが加えた変更が表示されます。
元に戻されたレコードについて、Revert は Errors 関数から返されたすべてのエラーを テーブル からクリアします。
Patch またはその他のデータ操作の後に Errors 関数で競合がレポートされた場合は、競合するバージョンのあるレコードを Revert で元に戻したうえで、変更を再適用してください。
Revert には、戻り値はありません。 動作の数式 内でのみ使用できます。
構文
Revert( DataSource [, Record ] )
- DataSource – 必須。 元に戻す対象のデータ ソース。
- Record - オプション。 元に戻す対象のレコード。 レコードを指定しない場合、データ ソース全体が元に戻されます。
例
この例では、IceCream という名前のデータ ソースを元に戻します。このデータ ソースは次のテーブルのデータから始まります。
別のデバイスのユーザーが、Strawberry レコードの Quantity プロパティを 400 に変更します。 この変更を知らないまま、自分がほぼ同時に同じレコードの同じプロパティを 500 に変更したとします。
Patch 関数を使用して、レコードを更新します。
Patch( IceCream, LookUp( IceCream, Flavor = "Strawberry" ), { Quantity: 500 } )
Errors テーブルを確認すると、エラーが表示されています。
レコード | 列 | メッセージ | エラー |
---|---|---|---|
{ ID: 1, Flavor: "Strawberry", Quantity: 300 } | blank | 「変更しようとしているレコードは別のユーザーにより変更されています。 レコードを元に戻してからやり直してください。」 | ErrorKind.Conflict |
Error 列に基づき、Reload ボタンの OnSelect プロパティは、次の数式に設定されます。
Revert( IceCream, LookUp( IceCream, Flavor = "Strawberry" ) )
Reload ボタンを選択すると、Errors テーブルが 空 になり、Strawberry の新しい値が読み込まれます。
この既に行われた変更の上から変更を再適用すると、競合が解決されるので、変更が成功します。