Package | mx.data |
Classe | public class DataService |
Héritage | DataService ![]() ![]() |
Sous-classes | DataService |
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Pour créer une instance DataService, il est nécessaire de spécifier la destination souhaitée. Les destinations sont généralement configurées à partir du fichier services-config.xml, mais elles peuvent également être configurées dynamiquement lors de la configuration de l’exécution, comme dans le cas du développement géré par les modèles.
Deux ensembles de méthodes différents permettent d’extraire des données à partir de la destination distante spécifiée. Le premier ensemble est destiné aux objets gérés de collection. Le deuxième ensemble de méthodes est destiné aux objets gérés uniques.
Pour les objets gérés de la collection, utilisez la méthode DataService.fill()
. Cette méthode remplit un objet ArrayCollection en utilisant des objets qui sont gérés par ce service.
Pour obtenir des objets gérés uniques, utilisez les méthodes DataService.getItem()
et DataService.createItem()
.
Lorsqu’un objet ArrayCollection rempli précédemment n’est plus nécessaire ou que les éléments de cette collection ne doivent plus recevoir ou créer de mises à jour, appelez la méthode DataService.releaseCollection()
.
Lorsqu’un élément extrait précédemment à l’aide de la méthode DataService.getItem()
ou DataService.createItem()
n’est plus nécessaire ou ne doit plus recevoir ou créer de mises à jour, appelez la méthode DataService.releaseItem()
. Les méthodes DataService.createItem()
et DataService.getItem()
renvoient une instance ItemReference que vous pouvez utiliser pour libérer une instance spécifique d’un objet géré unique. Contrairement à la méthode DataService.releaseItem()
, l’appel de la méthode ItemReference.releaseItem()
libère une instance spécifique d’un objet géré unique. La méthode DataService.releaseItem()
libère le premier objet géré unique qu’elle trouve, dont l’identité correspond à une identité spécifiée. Ce comportement est adéquat, à condition que le nombre d’appels des méthodes DataService.getItem()
et DataService.createItem()
corresponde au nombre d’appels de la méthode DataService.releaseItem.
Une connexion à la destination distante est créée automatiquement la première fois que vous appelez une méthode nécessitant une connexion. Par exemple, lorsque vous appelez la méthode DataService.fill()
ou DataService.commit()
alors que certaines mises à jour ne sont pas validées, l’instance DataService tente d’établir une connexion vers la destination distante. Pour contraindre une instance DataService à se déconnecter, appelez la méthode DataService.disconnect()
. Vous pouvez faire appel à la méthode DataService.disconnect()
pour nettoyer les ressources de la destination distante qui ne sont plus nécessaires. D’autres services pouvant utiliser la même connexion physique, le fait d’appeler la méthode DataService.disconnect()
peut mettre fin à la connexion.
La propriété connected
, qui peut être liée, indique l’état actuel de la connexion DataService associée.
Si une destination distante a déclaré des contraintes de sécurité pour une opération, vous devez fournir des informations d’identification en appelant la méthode DataService.setCredentials()
. L’appel de la méthode DataService.setCredentials()
est renvoyé sous forme de commande de connexion sur la destination distante. Pour modifier les informations d’identification ou invalider la session active, appelez la méthode DataService.logout()
qui libère toutes les données locales gérées. L’appel de la méthode DataService.logout()
équivaut à l’appel de la méthode DataService.release()
.
Chaque instance DataService est dotée d’une propriété dataStore
qui renvoie un objet de type mx.data.DataStore
. Cet objet stocke les modifications non validées d’une ou de plusieurs instances DataService. Par défaut, une instance DataService partage la même instance DataStore avec d’autres instances DataService si elles possèdent des propriétés d’association gérées et partagent le même ensemble de canaux. Lors du partage d’une instance DataStore, le fait d’appeler la méthode commit()
sur une instance DataService valide les modifications de toutes les instances DataService qui font appel à l’instance DataStore partagée. L’ordre des opérations est ainsi préservé, dans le cas où il existe des dépendances entre les modifications des instances DataService associées.
Les instances DataService et DataStore distribuent les événements de résultat et d’erreur pour toutes les opérations nécessitant un appel distant.
Remarque : si vous créez deux instances DataService qui font référence à la même destination, ces deux instances partagent la même collection d’objets gérés et distribuent le même ensemble d’événements. Par exemple, si vous ajoutez un écouteur d’événement à une instance DataService pour une destination et que vous utilisez une instance différente pour initier une opération, la première instance DataService reçoit quand même ces événements. Chaque opération initiée sur une instance DataService renvoie une instance AsyncToken. Vous pouvez ajouter un répondeur d’événement à cette instance AsyncToken pour recevoir un événement de résultat propre à cette opération. Cette approche produit en général un code plus optimisé que lorsque vous ajoutez un gestionnaire d’événement de résultat ou d’erreur au niveau global pour une destination donnée.
Vous pouvez utiliser la liaison de données sur les propriétés de n’importe quel objet géré par une instance DataService. L’instance DataService distribue également un événement « message » lorsqu’une opération distante se produit pour un objet géré. Par exemple, lorsqu’un processus distant met à jour un élément géré localement, un message est envoyé à toutes les instances DataService qui continuent à gérer cet élément. Ce message est distribué sous forme d’événement MessageEvent.MESSAGE
.
Un événement de conflit est distribué lorsqu’un conflit est détecté, soit au niveau de la destination distante suite à une modification validée par l’instance DataService, soit en raison d’une modification transférée qui entre en conflit avec une modification locale non validée. Vous pouvez gérer les événements de conflit en écoutant DataConflictEvent.CONFLICT
. Utilisez la liaison de données pour mettre à jour des contrôles de l’interface utilisateur en les liant à la propriété DataService.conflicts.resolved
.
La classe DataService prend en charge les modes suivants de configuration de la synchronisation des données :
-
autoCommit
: lorsque la valeur est true, chaque modification est envoyée immédiatement à la destination distante une fois qu’elle est détectée. Lorsque la valeur estfalse
, vous devez appeler explicitement la méthodecommit()
. Utilisez la propriétéDataService.commitRequired
qui peut être liée pour déterminer s’il existe des modifications non validées. -
autoSyncEnabled
: cette propriété s’applique à tous les appelsfill
,getItem
oucreateItem
réalisés et détermine si des instances gérées écoutent ou non les modifications apportées à ces objets par d’autres clients, ainsi que les modifications réalisées à l’aide de l’API push du serveur de transaction DataService sur la destination distante. -
autoMerge
: détermine si les modifications issues d’une destination distante sont appliquées immédiatement ou mises en file d’attente jusqu’à ce que la méthodeDataService.merge()
soit appelée.
Utilisez la méthode DataService.revertChanges()
pour rétablir les modifications apportées à un élément ou à tous les éléments. Lorsqu’une erreur se produit dans le cadre d’une opération réalisée sur une destination distante, les modifications validées sont replacées dans la file d’attente des modifications non validées, de sorte que les données restent synchronisées avec les données sur la destination distante. Si les modifications provoquent une erreur, appelez la méthode DataService.revertChanges()
dans le cadre du gestionnaire d’erreur, afin de rétablir les modifications.
La classe mx.data.mxml.DataService est une sous-classe MXML de la classe mx.data.DataService permettant de définir des liaisons avec les propriétés d’une instance DataService.
Syntaxe 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." />
Eléments de l’API associés
mx.data.Conflicts
mx.data.Conflict
mx.data.ItemReference
mx.data.IManaged
mx.data.utils.Managed
mx.data.IChangeObject
Propriété | Défini par | ||
---|---|---|---|
![]() | constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object |
Méthode | Défini par | ||
---|---|---|---|
![]() |
Indique si la propriété spécifiée d’un objet est définie. | Object | |
![]() |
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | |
![]() |
Indique si la propriété spécifiée existe et est énumérable. | Object | |
![]() |
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | |
![]() |
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | |
![]() |
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | |
![]() |
Renvoie la valeur primitive de l’objet spécifié. | Object |
Tue Jun 12 2018, 09:30 AM Z