Syntaxe du jeu de mappages

Un jeu de mappages se compose d’un identifiant, d’un nom, d’un schéma d’entrée, d’un schéma de sortie et d’une liste des mappages associés.

Le fichier JSON suivant est un exemple de jeu de mappages type :

{
    "id": "cbb0da769faa48fcb29e026a924ba29d",
    "name": "Demo Mapping Set",
    "inputSchema": {
        "id": "a167ff2947ff447ebd8bcf7ef6756232",
        "version": 0
    },
    "outputSchema": {
        "schemaRef": {
            "id": "https://ns.adobe.com/{TENANT_ID}/schemas/6dd1768be928c36d58ad4897219bb52d491671f966084bc0",
            "contentType": "application/vnd.adobe.xed-full+json;version=1"
        }
    },
    "mappings": [
        {
            "sourceType": "ATTRIBUTE",
            "source": "Id",
            "destination": "_id",
            "name": "Id",
            "description": "Identifier field"
        },
        {
            "sourceType": "ATTRIBUTE",
            "source": "FirstName",
            "destination": "person.name.firstName"
        },
        {
            "sourceType": "ATTRIBUTE",
            "source": "LastName",
            "destination": "person.name.lastName"
        }
    ]
}
PropriétéDescription
idIdentifiant unique du jeu de mappages.
nameNom du jeu de mappages.
inputSchemaSchéma XDM pour les données entrantes.
outputSchemaLe schéma XDM des données d’entrée sera transformé pour être conforme.
mappingsTableau de mappages champ à champ du schéma source au schéma de destination.
sourceType

Pour chaque mappage répertorié, son attribut sourceType indique le type de source à mapper. Peut être l’une des valeurs suivantes : ATTRIBUTE, STATIC ou EXPRESSION :

  • ATTRIBUTE est utilisé pour toute valeur trouvée dans le chemin d’accès source.
  • STATIC est utilisé pour les valeurs injectées dans le chemin d’accès de destination. Cette valeur reste constante et n’est pas affectée par le schéma source.
  • EXPRESSION est utilisé pour une expression qui sera résolue au moment de l’exécution. Vous trouverez une liste des expressions disponibles dans le guide des fonctions de mappage.
sourcePour chaque mappage répertorié, l’attribut source indique le champ que vous souhaitez mapper. Vous trouverez plus d’informations sur la configuration de votre source dans la présentation des sources.
destinationPour chaque mappage répertorié, l’attribut destination indique le champ, ou le chemin d’accès au champ, où sera placée la valeur extraite du champ source. Vous trouverez plus d’informations sur la configuration de vos destinations dans la présentation des destinations.
mappings.name(Facultatif) Nom du mappage.
mappings.description(Facultatif) Description du mappage.

Configuration des sources de mappage

Dans un mappage, la valeur source peut être un champ, une expression ou une valeur statique. En fonction du type de source donné, la valeur peut être extraite de différentes manières.

Champ dans les données en colonnes

Lors du mappage d’un champ dans les données en colonnes, comme un fichier CSV, utilisez le type de source ATTRIBUTE. Si le champ contient . dans son nom, utilisez \ pour ignorer la valeur. Voici un exemple de ce mappage :

Exemple de fichier CSV :

Full.Name, Email
John Smith, js@example.com

Exemple de mappage

{
    "source": "Full.Name",
    "destination": "pi.name",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "pi": {
        "name": "John Smith"
    }
}

Champ dans les données imbriquées

Lors du mappage d’un champ dans des données imbriquées, comme un fichier JSON, utilisez le type de source ATTRIBUTE. Si le champ contient . dans son nom, utilisez \ pour ignorer la valeur. Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "customerInfo": {
        "name": "John Smith",
        "email": "js@example.com"
    }
}

Exemple de mappage

{
    "source": "customerInfo.name",
    "destination": "pi.name",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "pi": {
        "name": "John Smith"
    }
}

Champ dans un tableau

Lors du mappage d’un champ dans un tableau, vous pouvez récupérer une valeur spécifique à l’aide d’un index. Pour ce faire, utilisez le type de source ATTRIBUTE et l’index de la valeur que vous souhaitez mapper. Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

Exemple de mappage

{
    "source": "customerInfo.emails[0].email",
    "destination": "pi.email",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "pi": {
        "email": "js@example.com"
    }
}

Tableau à tableau ou objet à objet

En utilisant le type de source ATTRIBUTE, vous pouvez également mapper directement un tableau à un tableau ou un objet à un objet. Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

Exemple de mappage

{
    "source": "customerInfo.emails",
    "destination": "pi.emailList",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "pi": {
        "emailList": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

Opérations itératives sur les tableaux

En utilisant le type de source ATTRIBUTE, vous pouvez lire en boucle itérative les tableaux et les mapper à un schéma cible à l’aide d’un index de caractères génériques ([*]). Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

Exemple de mappage

{
    "source": "customerInfo.emails[*].name",
    "destination": "pi[*].names",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "pi": [
        {
            "names": {
                "name": "John Smith"
            }
        },
        {
            "names": {
                "name": "Jane Smith"
            }
        }
    ]
}

Valeur constante

Si vous souhaitez mapper une valeur constante ou une valeur statique, utilisez le type de source STATIC. Lors de l’utilisation du type de source STATIC, la valeur source représente la valeur codée en dur que vous souhaitez affecter à destination. Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "name": "John Smith",
    "email": "js@example.com"
}

Exemple de mappage

{
    "source": "CUSTOMER",
    "destination": "userType",
    "sourceType": "STATIC"
}

Données transformées

{
    "userType:": "CUSTOMER"
}

Expressions

Si vous souhaitez mapper une expression, utilisez le type de source EXPRESSION. Vous trouverez une liste des fonctions acceptées dans le guide des fonctions de mappage. Lors de l’utilisation du type de source EXPRESSION, source représente la fonction que vous souhaitez résoudre. Voici un exemple de ce mappage :

Exemple de fichier JSON

{
    "firstName": "John",
    "lastName": "Smith",
    "email": "js@example.com"
}

Exemple de mappage

{
    "source": "concat(upper(lastName), upper(firstName), now())",
    "destination": "pi.created",
    "sourceType": "EXPRESSION"
}

Données transformées

{
    "pi": {
        "created": "SMITHJOHNFri Sep 25 15:17:31 PDT 2020"
    }
}

Configuration des destinations de mappage

Dans un mappage, destination est l’emplacement où la valeur extraite de source sera insérée.

Champ au niveau racine

Lorsque vous souhaitez mapper la valeur source au niveau racine de vos données transformées, suivez l’exemple ci-dessous :

Exemple de fichier JSON

{
    "customerInfo": {
        "name": "John Smith",
        "email": "js@example.com"
    }
}

Exemple de mappage

{
    "source": "customerInfo.name",
    "destination": "name",
    "sourceType": "ATTRIBUTE"
}

Données transformées

{
    "name": "John Smith"
}