PowerApps の Revert 関数Revert function in PowerApps

データ ソースレコードを更新し、エラーをクリアします。Refreshes and clears errors for the records of a data source.

説明Description

Revert 関数は、データ ソース全体またはそのデータ ソース内の 1 つのレコードを更新します。The Revert function refreshes an entire data source or a single record in that data source. 他のユーザーが加えた変更が表示されます。You'll see changes that other users made.

元に戻されたレコードについては、RevertErrors 関数から返されたすべてのエラーをテーブルからクリアします。For the records reverted, Revert also clears any errors from the table that the Errors function returned.

Patch またはその他のデータ操作の後に Errors 関数で競合がレポートされた場合は、競合するバージョンのあるレコードを Revert で元に戻したうえで、変更を再適用してください。If the Errors function reports a conflict after a Patch or other data operation, Revert the record to start with the conflicting version and reapply the change.

Revert には、戻り値はありません。Revert has no return value. 動作の数式内でのみ使用できます。You can use it only in a behavior formula.

構文Syntax

Revert( DataSource [, Record ] )Revert( DataSource [, Record ] )

  • DataSource – 必須。DataSource – Required. 元に戻す対象のデータ ソース。The data source that you want to revert.
  • Record - 省略可能。Record - Optional. 元に戻す対象のレコード。The record that you want to revert. レコードを指定しない場合、データ ソース全体が元に戻されます。If you don't specify a record, the entire data source is reverted.

Example

この例では、IceCream という名前のデータ ソースを元に戻します。このデータ ソースは次のテーブルのデータから始まります。In this example, you'll revert the data source named IceCream, which starts with the data in this table:

別のデバイスのユーザーが、Strawberry レコードの Quantity プロパティを 400 に変更します。A user on another device changes the Quantity property of the Strawberry record to 400. この変更を知らないまま、自分がほぼ同時に同じレコードの同じプロパティを 500 に変更したとします。At about the same time, you change the same property of the same record to 500, not knowing about the other change.

Patch 関数を使用して、レコードを更新します。You use the Patch function to update the record:
Patch( IceCream, First( Filter( IceCream, Flavor = "Strawberry" ) ), { Quantity: 500 } )Patch( IceCream, First( Filter( IceCream, Flavor = "Strawberry" ) ), { Quantity: 500 } )

Errors テーブルを確認すると、エラーが表示されています。You check the Errors table and find an error:

レコードRecord Column メッセージMessage エラーError
{ ID: 1, Flavor: "Strawberry", Quantity: 300 }{ ID: 1, Flavor: "Strawberry", Quantity: 300 } "空白"blank "変更しようとしているレコードは別のユーザーにより変更されています。レコードを元に戻してからやり直してください。""The record you are trying to modify has been modified by another user. Please revert the record and try again." ErrorKind.ConflictErrorKind.Conflict

Error 列に基づいて、Reload ボタンの OnSelect プロパティは、次の数式に設定されます。Based on the Error column, you have a Reload button for which the OnSelect property to set to this formula:
Revert( IceCream, First( Filter( IceCream, Flavor = "Strawberry" ) ) )Revert( IceCream, First( Filter( IceCream, Flavor = "Strawberry" ) ) )

Reload ボタンを選択すると、Errors テーブルがになり、Strawberry の新しい値が読み込まれます。After you select the Reload button, the Errors table is empty, and the new value for Strawberry has been loaded:

この既に行われた変更の上から変更を再適用すると、競合が解決されるので、変更が成功します。You reapply your change on top of the previous change, and your change succeed because the conflict has been resolved.