

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à.

# Specificazione dello stato dell'output utilizzando ResultPath in Step Functions
<a name="input-output-resultpath"></a>

**Gestione dello stato e trasformazione dei dati**  
Questa pagina fa riferimento a. JSONPath Step Functions ha recentemente aggiunto variabili e JSONata per gestire lo stato e trasformare i dati.  
Scopri come [passare dati con variabili](workflow-variables.md) e [trasformare dati con JSONata](transforming-data.md).

L'output di uno stato può essere una copia dell'input, il risultato generato (ad esempio, l'output ottenuto da una funzione Lambda di uno stato `Task`) o una combinazione dell'input e del risultato. Utilizza `ResultPath` per controllare quale di queste combinazioni verrà passata all'output dello stato. 

I tipi di stato seguenti possono generare un risultato e includere `ResultPath:`
+ [Passare lo stato del workflow](state-pass.md)
+ [Stato del flusso di lavoro delle attività](state-task.md)
+ [Stato del flusso di lavoro parallelo](state-parallel.md)
+ [Stato del flusso di lavoro della mappa](state-map.md)

Utilizza `ResultPath` per combinare il risultato di un task con l'input del task o selezionare una di queste opzioni. Il percorso specificato in `ResultPath` controlla le informazioni passate all'output. 

**Nota**  
 `ResultPath`si limita all'utilizzo [di percorsi di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths), il che limita l'ambito, quindi il percorso deve identificare solo un singolo nodo in JSON. Consultare [Percorsi di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) nella sezione [Amazon States Language](concepts-amazon-states-language.md).

## Si usa ResultPath per sostituire l'input con il risultato dell'attività
<a name="input-output-resultpath-default"></a>

Se non si specifica a`ResultPath`, il comportamento predefinito è lo stesso di`"ResultPath": "$"`. Lo stato sostituirà l'intero input di stato con il risultato dell'attività.

```
# 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!"
```

**Nota**  
`ResultPath` viene utilizzato per includere il contenuto del risultato con l'input prima di passarlo all'output. Tuttavia, se `ResultPath` non è specificato, l'azione predefinita consiste nel sostituire l'intero input.

## Scarta il risultato e mantieni l'input originale
<a name="input-output-resultpath-null"></a>

Se lo `ResultPath` impostate su`null`, lo stato passerà l'**input originale** all'output. Il payload di input dello stato verrà copiato direttamente nell'output, indipendentemente dal risultato dell'attività. 

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

## ResultPath Da utilizzare per includere il risultato nell'input
<a name="input-output-resultpath-append"></a>

Se specificate un percorso per ResultPath, l'output dello stato combinerà l'input dello stato e il risultato dell'attività:

```
# 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!"
}
```

È anche possibile inserire il risultato in un nodo figlio dell'input. Impostare `ResultPath` come segue.

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

Dato il seguente input: 

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

Il risultato dell'attività verrebbe inserito come elemento `strings` secondario del nodo nell'input.

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

L'output dello stato includerà ora il testo JSON di input originale con il risultato come nodo figlio.

## Si usa ResultPath per aggiornare un nodo nell'input con il risultato
<a name="input-output-resultpath-amend"></a>

Se si specifica un nodo esistente per ResultPath, il risultato dell'attività sostituirà quel nodo esistente:

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

## ResultPath Da utilizzare per includere sia l'errore che l'input in un `Catch`
<a name="input-output-resultpath-catch"></a>

In alcuni casi, può essere opportuno conservare l'input originale con l'errore. Per includere l'errore con l'input originale, anziché sostituirlo, utilizza `ResultPath` in un'istruzione `Catch`. 

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

Se rileva un errore, l'istruzione `Catch` precedente include il risultato in un nodo `error` all'interno dell'input dello stato. Ad esempio, con l'input seguente:

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

l'output dello stato in caso di rilevamento di un errore sarà il seguente.

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

Per ulteriori informazioni sulla gestione degli errori, consulta i seguenti argomenti:
+ [Gestione degli errori nei flussi di lavoro di Step Functions](concepts-error-handling.md)
+ [Gestione delle condizioni di errore in una macchina a stati Step Functions](tutorial-handling-error-conditions.md)