パッケージ | mx.data |
クラス | public class DataService |
継承 | DataService ![]() ![]() |
サブクラス | DataService |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
DataService インスタンスは、適切な宛先を指定して作成されます。通常、宛先は services-config.xml ファイルから設定されますが、モデル主導の開発の場合と同様に、ランタイム用の設定で動的に設定することもできます。
指定したリモート宛先からデータを取得するメソッドは 2 種類あります。1 つはコレクション管理対象オブジェクト用のものです。もう 1 つは Single Managed Object(SMO)用のものです。
コレクション管理対象オブジェクトの場合、DataService.fill()
メソッドを使用します。このメソッドを使用すると、このサービスによって管理されるオブジェクトを使用して ArrayCollection の内容が設定されます。
Single Managed Object(SMO)を取得するには、DataService.getItem()
メソッドおよび DataService.createItem()
メソッドを使用します。
内容設定済みの ArrayCollection が不要になったとき、またはそのコレクション内のアイテムに対する更新の受信および作成が不要になったときは、DataService.releaseCollection()
メソッドを呼び出します。
DataService.getItem()
または DataService.createItem()
を使用して前に取得したアイテムが不要になった場合、または更新を受信または作成しない場合、DataService.releaseItem()
メソッドを呼び出します。DataService.createItem()
メソッドと DataService.getItem()
メソッドは ItemReference インスタンスを返します。ItemReference は Single Managed Object(SMO)の特定のインスタンスを解放するときに使用します。DataService.releaseItem()
メソッドとは異なり、ItemReference.releaseItem()
メソッドを呼び出すと Single Managed Object(SMO)の特定のインスタンスが解放されます。DataService.releaseItem()
メソッドは、指定した ID と一致する ID で検出された最初の Single Managed Object(SMO)を解放します。これは、DataService.getItem()
メソッドおよび DataService.createItem()
メソッドの呼び出しの数が DataService.releaseItem()
メソッドの呼び出しの数と一致している限り問題ありません。
接続を必要とするメソッドが初めて呼び出されると、リモート宛先への接続が自動的に作成されます。例えば、未コミットの更新があるときに DataService.fill()
メソッドまたは DataService.commit()
メソッドを呼び出すと、DataService インスタンスはリモート宛先への接続を確立しようとします。DataService インスタンスの接続を強制的に解除するには、DataService.disconnect()
メソッドを呼び出します。不要になったリモート宛先リソースをクリーンアップするには、DataService.disconnect()
メソッドを使用できます。他のサービスで同じ物理接続が使用されている可能性があるため、DataService.disconnect()
メソッドを呼び出すと接続が終了する場合があります。
バインド可能な connected
プロパティは、関連付けられている DataService 接続の現在の状態を示します。
リモート宛先が操作のセキュリティ制約を宣言した場合、DataService.setCredentials()
メソッドを呼び出して資格情報を提供する必要があります。DataService.setCredentials()
メソッドを呼び出すと、リモート宛先ではログインコマンドになります。資格情報を変更するか、現在のセッションを無効にするには、DataService.logout()
メソッドを呼び出します。これにより、すべてのローカルで管理されているデータが解放されます。DataService.logout()
メソッドの呼び出しは DataService.release()
メソッドの呼び出しと同等です。
各 DataService インスタンスには mx.data.DataStore
型のオブジェクトを返す dataStore
プロパティがあります。このオブジェクトには、1 つ以上の DataService インスタンスに関する未コミットの変更が格納されています。デフォルトでは、DataService インスタンスは、管理対象の関連付けプロパティを持ち、同じチャネルセットを共有している他のデータサービスと同じ DataStore を共有します。DataStore インスタンスを共有しているときに、1 つの DataService インスタンス上で commit()
メソッドを呼び出すと、共有 DataStore インスタンスを使用しているすべての DataService インスタンスが変更されます。関連付けられている DataService インスタンスに加えられた変更の間に依存関係がある場合、操作の順序は維持されます。
DataService インスタンスと DataStore インスタンスは、リモート呼び出しを必要とするすべての操作の結果およびフォルトイベントを送出します。
メモ:同じ宛先をポイントする 2 つの DataService インスタンスを作成した場合、どちらのインスタンスも同じ管理対象オブジェクトのコレクションを共有し、同じイベントを送出します。例えば、1 つの DataService インスタンスに宛先としてイベントリスナーを追加し、別のインスタンスを使用して操作を開始した場合、最初の DataService インスタンスは引き続きそれらのイベントを受け取ります。DataService インスタンスに対して操作を開始するたびに、AsyncToken インスタンスが返されます。その AsyncToken トークンにイベントの応答側を追加すると、その操作に固有の結果イベントを受信できます。一般に、この方法を使用すると、特定の宛先に対して結果またはフォルトイベントハンドラーをグローバルに追加するよりもコードが簡潔になります。
DataService インスタンスの管理対象オブジェクトのすべてのプロパティでデータバインディングを使用できます。管理対象オブジェクトに対してリモート操作が発生すると、DataService インスタンスは「メッセージ」イベントも送出します。例えば、リモートプロセスでローカルで管理されているアイテムを更新すると、そのアイテムを管理しているすべての DataService インスタンスに対してメッセージがプッシュされます。このメッセージは、MessageEvent.MESSAGE
イベントとして送出されます。
リモート宛先で DataService インスタンスがコミットする変更に対する応答として、またはローカルの未コミットの変更と競合するプッシュされた変更によって、競合イベントは送出されます。DataConflictEvent.CONFLICT
をリスニングすることで競合イベントを処理できます。DataService.conflicts.resolved
プロパティにバインディングすることで、データバインディングを使用してユーザーインターフェイスコントロールを更新します。
DataService クラスは、次のデータ同期設定モードをサポートしています。
-
autoCommit
- true の場合、変更が検出されるたびに、各変更が直ちにリモート宛先へ送信されます。これがfalse
の場合、commit()
メソッドを明示的に呼び出す必要があります。未コミットの変更があるかどうかを判断するには、バインド可能なDataService.commitRequired
プロパティを使用します。 -
autoSyncEnabled
- これはfill()
、getItem()
、createItem()
の各メソッドの呼び出しに適用され、他のクライアントによってこれらのオブジェクトに加えられた変更、またはリモート宛先で DataServiceTransaction サーバープッシュ API を使用して加えられた変更を、管理対象インスタンスでリスニングするかどうかを決定します。 -
autoMerge
- リモート宛先から受信した変更を直ちに適用するか、DataService.merge()
メソッドの呼び出しが行われるまで待機するかを制御します。
特定のアイテムまたはすべてのアイテムに対する変更を元に戻すには、DataService.revertChanges()
メソッドを使用します。リモート宛先の操作でエラーが発生すると、リモート宛先のデータとの同期を維持するために、コミット済みの変更が未コミットのキューに戻されます。変更がエラーになった場合、通常は、フォルトハンドラーの一部として DataService.revertChanges()
メソッドを呼び出して変更を取り消します。
mx.data.mxml.DataService クラスは MXML 固有の mx.data.DataService クラスのサブクラスであり、これを使用すると DataService インスタンスのプロパティへのバインドが可能になります。
MXML シンタックス
The <mx:DataService> element accepts the following attributes:
<mx:DataService Properties autoCommit="true" autoMerge="true" autoSaveCache="false" autoSyncEnabled="true" conflictDetector="No default." dataStore="No default." destination="No default." pageSize="No default." id="No default." Events conflict="No default." fault="No default." message="No default." propertyChange="No default." result="No default." />
関連する API エレメント
mx.data.Conflicts
mx.data.Conflict
mx.data.ItemReference
mx.data.IManaged
mx.data.utils.Managed
mx.data.IChangeObject
プロパティ | 定義元 | ||
---|---|---|---|
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object |
メソッド | 定義元 | ||
---|---|---|---|
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() |
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object |
Tue Jun 12 2018, 10:34 AM Z