

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

# Menentukan output status menggunakan Step ResultPath Functions
<a name="input-output-resultpath"></a>

**Mengelola status dan mengubah data**  
Halaman ini mengacu pada JSONPath. Step Functions baru-baru ini menambahkan variabel dan JSONata untuk mengelola status dan mengubah data.  
Pelajari tentang [Melewati data dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

Output dari suatu status dapat menjadi salinan inputnya, hasilnya menghasilkan (misalnya, output dari fungsi Lambda status `Task`), atau kombinasi dari input dan hasilnya. Gunakan `ResultPath` untuk kombinasi mana dari ini yang diteruskan ke output status. 

Tipe negara berikut dapat menghasilkan hasil dan dapat mencakup `ResultPath:`
+ [Lulus status alur kerja](state-pass.md)
+ [Status alur kerja tugas](state-task.md)
+ [Status alur kerja paralel](state-parallel.md)
+ [Memetakan status alur kerja](state-map.md)

Gunakan `ResultPath` untuk menggabungkan hasil tugas dengan input tugas, atau untuk memilih salah satu dari ini. Jalan yang Anda berikan untuk `ResultPath` mengontrol informasi apa yang diteruskan ke output. 

**catatan**  
 `ResultPath`terbatas untuk menggunakan [jalur referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths), yang membatasi ruang lingkup sehingga jalur harus mengidentifikasi hanya satu simpul di JSON. Lihat [Jalur Referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths) di [Bahasa Status Amazon](concepts-amazon-states-language.md).

## Gunakan ResultPath untuk mengganti input dengan hasil tugas
<a name="input-output-resultpath-default"></a>

Jika Anda tidak menentukan`ResultPath`, perilaku defaultnya sama dengan`"ResultPath": "$"`. Negara akan mengganti seluruh input status dengan hasil dari tugas.

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$"

# Task result
"Hello, Step Functions!"

# State Output
"Hello, Step Functions!"
```

**catatan**  
`ResultPath` digunakan untuk memasukkan konten dari hasil dengan input, sebelum meneruskannya ke output. Tapi, jika `ResultPath` tidak ditentukan, tindakan defaultnya adalah mengganti seluruh input.

## Buang hasilnya dan simpan input asli
<a name="input-output-resultpath-null"></a>

Jika Anda mengatur `ResultPath` ke`null`, status akan meneruskan **input asli** ke output. Muatan masukan negara akan disalin langsung ke output, tanpa memperhatikan hasil tugas. 

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": null

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
```

## Gunakan ResultPath untuk memasukkan hasil dengan input
<a name="input-output-resultpath-append"></a>

Jika Anda menentukan jalur untuk ResultPath, output status akan menggabungkan input status dan hasil tugas:

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$.taskresult"

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions",
 "taskresult" : "Hello, Step Functions!"
}
```

Anda juga dapat memasukkan hasilnya ke simpul anak dari input. Atur `ResultPath` ke hal berikut.

```
"ResultPath": "$.strings.lambdaresult"
```

Diberikan masukan berikut: 

```
{
  "comment": "An input comment.",
  "strings": {
    "string1": "foo",
    "string2": "bar",
    "string3": "baz"
  },
  "who": "AWS Step Functions"
}
```

Hasil tugas akan dimasukkan sebagai anak dari `strings` node di input.

```
{
  "comment": "An input comment.",
  "strings": {
    "string1": "foo",
    "string2": "bar",
    "string3": "baz",
    "lambdaresult": "Hello, Step Functions!"
  },
  "who": "AWS Step Functions"
}
```

Output status sekarang termasuk input asli JSON dengan hasil sebagai simpul anak.

## Gunakan ResultPath untuk memperbarui node di input dengan hasilnya
<a name="input-output-resultpath-amend"></a>

Jika Anda menentukan node yang ada untuk ResultPath, hasil tugas akan menggantikan node yang ada:

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$.comment"

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "Hello, Step Functions!",
 "details": "Default example",
 "who" : "Step Functions"
}
```

## Gunakan ResultPath untuk memasukkan kesalahan dan masukan dalam `Catch`
<a name="input-output-resultpath-catch"></a>

Dalam beberapa kasus, Anda mungkin ingin mempertahankan input asli dengan kesalahan. Gunakan `ResultPath` dalam `Catch` untuk memasukkan kesalahan dengan input asli, bukan menggantikannya. 

```
"Catch": [{ 
  "ErrorEquals": ["States.ALL"], 
  "Next": "NextTask", 
  "ResultPath": "$.error" 
}]
```

Jika pernyataan `Catch` sebelumnya menangkap kesalahan, pernyataan itu mencakup hasil dalam simpul `error` dalam input status. Sebagai contoh, dengan input berikut:

```
{"foo": "bar"}
```

Output status saat menangkap kesalahan adalah sebagai berikut.

```
{
  "foo": "bar",
  "error": {
    "Error": "{{Error here}}"
  }
}
```

Untuk informasi selengkapnya tentang penanganan kesalahan, lihat hal berikut:
+ [Menangani kesalahan dalam alur kerja Step Functions](concepts-error-handling.md)
+ [Menangani kondisi kesalahan di mesin status Step Functions](tutorial-handling-error-conditions.md)