

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Objek `TransactGetItems` permintaan memungkinkan Anda memberi tahu fungsi AWS AppSync DynamoDB untuk membuat `TransactGetItems` permintaan ke DynamoDB untuk mengambil beberapa item, berpotensi di beberapa tabel. Untuk objek permintaan ini, Anda harus menentukan yang berikut:
+ Nama tabel dari setiap item permintaan tempat untuk mengambil item dari
+ Kunci dari setiap item permintaan untuk diambil dari setiap tabel

Batas `TransactGetItems` DynamoDB berlaku **dan tidak ada ekspresi kondisi** yang dapat diberikan.

Objek `TransactGetItems` permintaan memiliki struktur berikut:

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

Bidang didefinisikan sebagai berikut:

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

### TransactGetItems daftar bidang
<a name="js-TransactGetItems-list-col"></a>

** `operation` **  
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi `TransactGetItems` DynamoDB, ini harus diatur ke. `TransactGetItems` Nilai ini diperlukan.

** `transactItems` **  
Item permintaan untuk disertakan. Nilainya adalah array item permintaan. Setidaknya satu item permintaan harus disediakan. `transactItems`Nilai ini diperlukan.    
** `table` **  
Tabel DynamoDB untuk mengambil item dari. Nilainya adalah string dari nama tabel. `table`Nilai ini diperlukan.  
** `key` **  
Kunci DynamoDB mewakili kunci utama item yang akan diambil. Item DynamoDB mungkin memiliki kunci hash tunggal, atau kunci hash dan kunci sortir, tergantung pada struktur tabel. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Mengetik [sistem (pemetaan permintaan)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request).  
**`projection`**  
Proyeksi yang digunakan untuk menentukan atribut yang akan dikembalikan dari operasi DynamoDB. Untuk informasi selengkapnya tentang proyeksi, lihat [Proyeksi](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-projections). Bidang ini bersifat opsional.

Hal-hal yang perlu diingat:
+ Jika transaksi berhasil, urutan item yang diambil di `items` blok akan sama dengan urutan item permintaan.
+ Transaksi dilakukan dengan all-or-nothing cara tertentu. Jika ada item permintaan yang menyebabkan kesalahan, seluruh transaksi tidak akan dilakukan dan rincian kesalahan akan dikembalikan.
+ Item permintaan yang tidak dapat diambil bukanlah kesalahan. Sebagai gantinya, elemen *null* muncul di blok *item* di posisi yang sesuai.
+ Jika kesalahan transaksi adalah *TransactionCanceledException*, `cancellationReasons` blok akan diisi. Urutan alasan pembatalan di `cancellationReasons` blok akan sama dengan urutan item permintaan.
+  `TransactGetItems`terbatas pada 100 item permintaan.

Untuk contoh berikut fungsi request handler:

```
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 }),
      },
    ],
  };
}
```

Jika transaksi berhasil dan hanya item yang diminta pertama yang diambil, hasil pemanggilan yang tersedia adalah sebagai berikut: `ctx.result`

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

Jika transaksi gagal karena *TransactionCanceledException*disebabkan oleh item permintaan pertama, hasil pemanggilan yang tersedia `ctx.result` adalah sebagai berikut:

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

`ctx.error`Berisi rincian tentang kesalahan. **Item** kunci dan **CancellationReasons** dijamin akan hadir di. `ctx.result`