Configurazione delle origini di mappatura

In una mappatura, source può essere un campo, un'espressione o un valore statico. In base al tipo di origine fornito, il valore può essere estratto in vari modi.

Campo nei dati a colonne

Quando si esegue il mapping di un campo in dati a colonne, ad esempio un file CSV, utilizzare il tipo di origine ATTRIBUTE. Se il campo contiene . nel nome, utilizzare \ per eseguire l'escape del valore. Di seguito è riportato un esempio di questa mappatura:

File CSV di esempio:

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

Mappatura di esempio

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

Dati trasformati

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

Campo nei dati nidificati

Quando si esegue il mapping di un campo in dati nidificati, ad esempio un file JSON, utilizzare il tipo di origine ATTRIBUTE. Se il campo contiene . nel nome, utilizzare \ per eseguire l'escape del valore. Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Campo all’interno di un array

Quando mappi un campo all’interno di un array, puoi recuperare un valore specifico utilizzando un indice. A tale scopo, utilizzare il tipo di origine ATTRIBUTE e l'indice del valore da mappare. Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Matrice per matrice o oggetto per oggetto

Utilizzando il tipo di origine ATTRIBUTE, è inoltre possibile mappare direttamente un array a un array o un oggetto a un oggetto. Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Operazioni iterative sugli array

Utilizzando il tipo di origine ATTRIBUTE, è possibile eseguire un ciclo iterativo tra le matrici e mapparle su uno schema di destinazione utilizzando un indice con caratteri jolly ([*]). Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Valore costante

Se si desidera mappare una costante o un valore statico, utilizzare il tipo di origine STATIC. Quando si utilizza il tipo di origine STATIC, source rappresenta il valore hardcoded da assegnare a destination. Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

{
    "userType:": "CUSTOMER"
}

Espressioni

Se si desidera mappare un'espressione, utilizzare il tipo di origine EXPRESSION. Un elenco delle funzioni accettate è disponibile nella guida delle funzioni di mappatura. Quando si utilizza il tipo di origine EXPRESSION, source rappresenta la funzione da risolvere. Di seguito è riportato un esempio di questa mappatura:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Configurazione delle destinazioni di mappatura

In una mappatura, destination è la posizione in cui verrà inserito il valore estratto da source.

Campo a livello di radice

Per mappare il valore source al livello principale dei dati trasformati, attenersi all'esempio seguente:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

{
    "name": "John Smith"
}

Campo nidificato

Per mappare il valore source a un campo nidificato nei dati trasformati, attenersi all'esempio seguente:

File JSON di esempio

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

Mappatura di esempio

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

Dati trasformati

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

Campo in un indice di array specifico

Per mappare il valore source a un indice specifico di un array nei dati trasformati, attenersi all'esempio seguente:

File JSON di esempio

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

Mappatura di esempio

{
    "source": "customerInfo.name",
    "destination": "piList[0]",
    "sourceType": "ATTRIBUTE"
}

Dati trasformati

{
    "piList": ["John Smith"]
}

Funzionamento iterativo dell'array

Se si desidera eseguire un ciclo iterativo tra matrici e mappare i valori alla destinazione, è possibile utilizzare un indice con caratteri jolly ([*]). Di seguito è riportato un esempio:

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

Mappatura di esempio

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

Dati trasformati

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