

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# TransactGetItems
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-transact-get-items"></a>

Le document de mappage des demandes vous permet de `TransactGetItems` demander au résolveur AWS AppSync DynamoDB d'envoyer une `TransactGetItems` demande à DynamoDB pour récupérer plusieurs éléments, éventuellement sur plusieurs tables. Pour ce modèle de requête, vous devez spécifier les valeurs suivantes :
+ Nom de la table de chaque élément de requête dans lequel extraire l'élément
+ La clé de chaque élément de requête à récupérer à partir de chaque table

Les limites `TransactGetItems` DynamoDB s'appliquent et **aucune expression de condition** ne peut être fournie.

Le document de mappage `TransactGetItems` a la structure suivante :

```
{
    "version": "2018-05-29",
    "operation": "TransactGetItems",
    "transactItems": [
       ## First request item
       {
           "table": "table1",
           "key": {
               "foo": ... typed value,
               "bar": ... typed value
           },
           "projection" : {
                ...
           }
       },
       ## Second request item
       {
           "table": "table2",
           "key": {
               "foo": ... typed value,
               "bar": ... typed value
           },
           "projection" : {
                ...
           }
       }
    ]
}
```

Les champs sont définis comme suit :

## TransactGetItems champs
<a name="TransactGetItems-list"></a>

### TransactGetItems liste des champs
<a name="TransactGetItems-list-col"></a>

** `version` **  
Version de la définition du modèle. Seule la clause `2018-05-29` est prise en charge. Cette valeur est obligatoire.

** `operation` **  
L'opération DynamoDB à effectuer. Pour que vous puissiez effectuer l'opération DynamoDB `TransactGetItems`, ce champ doit être défini sur `TransactGetItems`. Cette valeur est obligatoire.

** `transactItems` **  
Les éléments de requête à inclure. La valeur est un tableau d'éléments de requête. Au moins un élément de requête doit être fourni. Cette valeur `transactItems` est obligatoire.    
** `table` **  
La table DynamoDB à partir de laquelle récupérer l'élément. La valeur est une chaîne du nom de la table. Cette valeur `table` est obligatoire.  
** `key` **  
La clé DynamoDB représentant la clé primaire de l'élément à récupérer. Les éléments DynamoDB peuvent avoir une seule clé de hachage ou une clé de hachage et une clé de tri, selon la structure de la table. Pour plus d'informations sur la façon de spécifier une « valeur saisie », voir [Système de types (mappage des demandes).](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md)  
**`projection`**  
Projection utilisée pour spécifier les attributs à renvoyer par l'opération DynamoDB. Pour plus d'informations sur les projections, voir [Projections](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-projections). Ce champ est facultatif.

Objets à mémoriser :
+ Si une transaction réussit, l'ordre des éléments récupérés dans le bloc `items` sera le même que celui des éléments de la requête.
+ Les transactions sont effectuées d'une all-or-nothing manière ou d'une autre. Si un élément de requête provoque une erreur, la transaction entière ne sera pas effectuée et les détails de l'erreur seront retournés.
+ Un élément de requête qui ne peut pas être récupéré n'est pas une erreur. Au lieu de cela, un élément *null* apparaît dans le bloc *éléments* dans la position correspondante.
+ Si l'erreur d'une transaction est *TransactionCanceledException*survenue, le `cancellationReasons` bloc sera rempli. L'ordre des motifs d'annulation dans le bloc `cancellationReasons` sera le même que l'ordre des éléments de demande.
+  `TransactGetItems`est limité à 100 articles demandés.

Pour l'exemple de modèle de mappage de requête suivant :

```
{
    "version": "2018-05-29",
    "operation": "TransactGetItems",
    "transactItems": [
       ## First request item
       {
           "table": "posts",
           "key": {
               "post_id": {
                 "S": "p1"
               }
           }
       },
       ## Second request item
       {
           "table": "authors",
           "key": {
               "author_id": {
                 "S": a1
               }
           }
       }
    ]
}
```

Si la transaction réussit et que seul le premier élément demandé est extrait, le résultat d'appel disponible dans `$ctx.result` est le suivant :

```
{
    "items": [
       {
           // Attributes of the first requested item
           "post_id": "p1",
           "post_title": "title",
           "post_description": "description"
       },
       // Could not retrieve the second requested item
       null,
    ],
    "cancellationReasons": null
}
```

Si la transaction échoue en raison *TransactionCanceledException*du premier élément de demande, le résultat de l'invocation disponible `$ctx.result` est le suivant :

```
{
    "items": null,
    "cancellationReasons": [
       {
           "type":"Sample error type",
           "message":"Sample error message"
       },
       {
           "type":"None",
           "message":"None"
       }
    ]
}
```

`$ctx.error` contient des détails sur l'erreur. Les **éléments** clés et **cancellationReasons** sont nécessairement présents dans `$ctx.result`.

Pour un exemple plus complet, suivez le didacticiel sur les transactions DynamoDB AppSync avec ici Tutoriel [: résolveurs de transactions DynamoDB](tutorial-dynamodb-transact.md#aws-appsync-tutorial-dynamodb-transact).