# Map Items

Map Items transforme chaque élément d’une liste en un nouvel objet. Utilisez-le pour sélectionner des champs, les renommer, ajouter des valeurs calculées, convertir des types ou préparer des enregistrements pour une API, un fichier CSV, un e-mail ou une base de données.

## Quand l’utiliser

Utilisez Map Items lorsque l’entrée est une **liste** et que chaque élément doit respecter la même structure de sortie.

Entrée :

```json
[
  { "first_name": "Awa", "score": "85", "debug": true },
  { "first_name": "Moussa", "score": "42", "debug": false }
]
```

Sortie possible :

```json
[
  { "name": "Awa", "score": 85, "position": 1 },
  { "name": "Moussa", "score": 42, "position": 2 }
]
```

## Configuration

### Clé du contexte en entrée

Sélectionnez la liste à transformer, par exemple `{state.customers}`, `{input.items}` ou la sortie d’un nœud précédent. Le champ prend en charge l’autocomplétion.

### Conserver les champs d’origine

- **Désactivé :** chaque élément de sortie part d’un objet vide et contient uniquement les champs définis dans l’éditeur visuel.
- **Activé :** les champs d’origine sont conservés, puis les champs configurés sont ajoutés ou remplacés.

### Champs de sortie

Ajoutez les champs avec l’éditeur visuel. Chaque ligne contient :

- **Champ de sortie :** nom ou chemin imbriqué à créer, par exemple `name` ou `customer.email`.
- **Valeur :** définit une valeur fixe ou un modèle et permet de la convertir en Texte, Nombre, Booléen ou JSON.
- **Copier depuis :** copie une valeur existante en conservant son type d’origine.

Exemples :

- Copier `{item.first_name}` dans `name`.
- Utiliser `{item.score}` avec le type Nombre dans `score`.
- Utiliser le texte fixe `processed` dans `status`.

## Variables disponibles pour chaque élément

- `{item}` : élément complet actuellement transformé.
- `{item.first_name}` : champ de l’élément courant.
- `{item_index}` : position commençant à zéro : `0`, `1`, `2`, etc.
- `{item_number}` : position commençant à un : `1`, `2`, `3`, etc.

`{item_number}` est utile pour ajouter un numéro de ligne lisible, un ordre d’affichage ou une position. Son utilisation est facultative.

## Différence entre Map Items et Set Fields

- **Map Items** attend toujours une liste et sert à construire la même structure de sortie pour chaque élément.
- **Set Fields** accepte un objet ou une liste et sert principalement à enrichir, renommer ou supprimer des champs existants.

## Sortie d’exécution

La liste transformée est écrite dans `last_output` et `last_output_parsed`. Les nœuds suivants peuvent utiliser :

```text
{outputs.<node_id>.parsed}
```

Pour lire le premier élément transformé :

```text
{outputs.<node_id>.parsed.0}
```

## Exemple de workflow

Utilisez la carte de workflow ci-dessous pour créer un exemple fonctionnel. La liste de clients est déjà chargée par Set State ; exécutez-le puis consultez la sortie de Map Items.

---

*Source: https://agentbuilder.systalink.sn/docs/node-map-items — human documentation.*
*Other language: [/docs-md/en/node-map-items.md](/docs-md/en/node-map-items.md).*
*Machine-readable index: [/llms.txt](/llms.txt).*
