

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

L'oggetto `TransactGetItems` request consente di indicare alla funzione AWS AppSync DynamoDB di effettuare una `TransactGetItems` richiesta a DynamoDB per recuperare più elementi, potenzialmente su più tabelle. Per questo oggetto di richiesta, è necessario specificare quanto segue:
+ Il nome della tabella di ogni elemento di richiesta da cui recuperare l'elemento
+ La chiave di ogni elemento di richiesta da recuperare da ogni tabella

Si applicano i limiti `TransactGetItems` di DynamoDB e non si può inserire **alcuna espressione di condizione**.

L'oggetto della `TransactGetItems` richiesta ha la seguente struttura:

```
type DynamoDBTransactGetItemsRequest = {
  operation: 'TransactGetItems';
  transactItems: { table: string; key: { [key: string]: any }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }[];
  };
};
```

I campi sono definiti come segue:

## TransactGetItems campi
<a name="js-TransactGetItems-list"></a>

### TransactGetItems elenco dei campi
<a name="js-TransactGetItems-list-col"></a>

** `operation` **  
L'operazione DynamoDB da eseguire. Per eseguire l'operazione `TransactGetItems` DynamoDB, il valore deve essere impostato su `TransactGetItems`. Questo valore è obbligatorio.

** `transactItems` **  
Gli elementi di richiesta da includere. Il valore è un array di elementi di richiesta. Deve essere fornito almeno un elemento di richiesta. Questo valore `transactItems` è obbligatorio.    
** `table` **  
La tabella DynamoDB da cui recuperare l'elemento. Il valore è una stringa del nome della tabella. Questo valore `table` è obbligatorio.  
** `key` **  
La chiave DynamoDB che rappresenta la chiave primaria dell'elemento da recuperare. Gli elementi DynamoDB possono avere una sola chiave hash o una chiave hash e una chiave di ordinamento, a seconda della struttura della tabella. Per ulteriori informazioni su come specificare un «valore digitato», consulta [Sistema di tipi (mappatura delle richieste](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request)).  
**`projection`**  
Una proiezione utilizzata per specificare gli attributi da restituire dall'operazione DynamoDB. [Per ulteriori informazioni sulle proiezioni, vedere Proiezioni.](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-projections) Questo campo è facoltativo.

Aspetti da ricordare:
+ Se una transazione ha esito positivo, l'ordine degli elementi recuperati nel blocco `items` sarà lo stesso dell'ordine degli elementi della richiesta.
+ Le transazioni vengono eseguite in qualche modo. all-or-nothing Se un elemento di richiesta causa un errore, l'intera transazione non viene eseguita e vengono restituiti i dettagli dell'errore.
+ Un elemento di richiesta che non può essere recuperato non è un errore. Invece, un elemento *null* appare nel blocco *elementi* nella posizione corrispondente.
+ Se l'errore di una transazione è *TransactionCanceledException*, il `cancellationReasons` blocco verrà popolato. L'ordine dei motivi di annullamento nel blocco `cancellationReasons` è lo stesso dell'ordine degli elementi della richiesta.
+  `TransactGetItems`è limitato a 100 articoli richiesti.

Per il seguente esempio di gestore di richieste di funzioni:

```
import { util } from '@aws-appsync/utils';

export function request(ctx) {
  const { authorId, postId } = ctx.args;
  return {
    operation: 'TransactGetItems',
    transactItems: [
      {
        table: 'posts',
        key: util.dynamodb.toMapValues({ postId }),
      },
      {
        table: 'authors',
        key: util.dynamodb.toMapValues({ authorId }),
      },
    ],
  };
}
```

Se la transazione ha esito positivo e viene recuperato solo il primo elemento richiesto, il risultato della chiamata disponibile `ctx.result` è il seguente:

```
{
    "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
}
```

Se la transazione fallisce a *TransactionCanceledException*causa del primo elemento della richiesta, il risultato della chiamata disponibile in `ctx.result` è il seguente:

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

Il messaggio `ctx.error` contiene dettagli relativi all'errore. La presenza delle chiavi **items** e **cancellationReasons** è garantita in `ctx.result`.