

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

O objeto de `TransactGetItems` solicitação permite que você peça à função do AWS AppSync DynamoDB que faça uma `TransactGetItems` solicitação ao DynamoDB para recuperar vários itens, potencialmente em várias tabelas. Para esse objeto de solicitação, você deve especificar o seguinte:
+ O nome da tabela de cada item de solicitação de onde recuperar o item
+ A chave de cada item de solicitação a ser recuperado de cada tabela

Os limites `TransactGetItems` do DynamoDB se aplicam e **nenhuma expressão de condição** pode ser fornecida.

O objeto de solicitação `TransactGetItems` tem a seguinte estrutura:

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

Os campos são definidos da seguinte forma:

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

### TransactGetItems lista de campos
<a name="js-TransactGetItems-list-col"></a>

** `operation` **  
A operação do DynamoDB para execução. Para executar a operação `TransactGetItems` do DynamoDB, ela deve ser definida como `TransactGetItems`. Este valor é obrigatório.

** `transactItems` **  
Os itens de solicitação a serem incluídos. O valor é uma matriz de itens de solicitação. Pelo menos um item de solicitação deve ser fornecido. Este valor `transactItems` é obrigatório.    
** `table` **  
A tabela do DynamoDB da qual recuperar o item. O valor é uma string do nome da tabela. Este valor `table` é obrigatório.  
** `key` **  
A chave do DynamoDB representando a chave primária do item a ser recuperado. Os itens do DynamoDB podem ter uma única chave de hash ou uma chave de hash e uma chave de classificação, dependendo da estrutura da tabela. Para obter mais informações sobre como especificar um "valor digitado", consulte [Sistema de tipo (Mapeamento de solicitação)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request).  
**`projection`**  
Uma projeção usada para especificar os atributos a serem retornados da operação do DynamoDB. Para obter mais informações sobre projeções, consulte [Projeções](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-projections). Esse campo é opcional.

Informações importantes:
+ Se uma transação for bem-sucedida, a ordem dos itens recuperados no bloco `items` será a mesma que a ordem dos itens solicitados.
+ As transações são realizadas de all-or-nothing alguma forma. Se algum item de solicitação causar um erro, não será executada a transação inteira e os detalhes do erro serão retornados.
+ Um item de solicitação que não pode ser recuperado não é um erro. Em vez disso, um elemento *nulo* aparece no bloco de *itens* na posição correspondente.
+ Se o erro de uma transação for *TransactionCanceledException*, o `cancellationReasons` bloco será preenchido. A ordem dos motivos de cancelamento no bloco `cancellationReasons` será a mesma que a ordem de itens solicitados.
+  `TransactGetItems` está limitado a 100 itens de solicitação.

Veja a seguir um exemplo de manipulador de solicitação de função:

```
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 a transação for bem-sucedida e somente o primeiro item solicitado for recuperado, o resultado de invocação disponível em `ctx.result` será o seguinte:

```
{
    "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 a transação falhar devido à *TransactionCanceledException*causa do primeiro item da solicitação, o resultado da invocação `ctx.result` disponível em será o seguinte:

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

O `ctx.error` contém detalhes sobre o erro. A presença dos **itens** de chaves e **cancelationReasons** está garantida em `ctx.result`.