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"
}
}
]
}