Skip to main content

Code doesn't update record in another database


Forum|alt.badge.img+2

 

// Ottieni i parametri di input let config = input.config(); let recordCRM_id = config.recordCRM_id let ruolo = config.ruolo; let pagamenti = config.pagamenti; let minorenne = config.minorenne; // -nocheck let baseID = 'IDBASE'; // ID della base LabOratorium let tableID = 'IDTABLE'; // ID della tabella in cui si trova il record da aggiornare let recordID = recordCRM_id; // ID del record da aggiornare let personalAccessToken = 'TOKEN'; // Il tuo Personal Access Token di Airtable // Funzione per calcolare la formula function calculateFormula(ruolo, pagamenti, minorenne) { let result = ""; if (ruolo) { result += "Loreto24_" + ruolo; } if (ruolo && pagamenti.includes("Acconto")) { result += ", Loreto24_Acconto"; } else if (pagamenti.includes("Acconto")) { result += "Loreto24_Acconto"; } if ((ruolo || pagamenti.includes("Acconto")) && minorenne === "SI") { result += ", Loreto24_Minorenne"; } else if (minorenne === "SI") { result += "Loreto24_Minorenne"; } if ((ruolo || pagamenti.includes("Acconto") || minorenne === "SI") && pagamenti.includes("Saldo")) { result += ", Loreto24_Saldo"; } else if (pagamenti.includes("Saldo")) { result += "Loreto24_Saldo"; } if (pagamenti.includes("Tutto")) { result += ", Loreto24_Tutto"; } return result; } // Funzione per ottenere i valori attuali del campo "Liste" nel record async function getCurrentListValues() { let url = `https://api.airtable.com/v0/${baseID}/${tableID}/${recordID}`; let response = await fetch(url, { method: 'GET', headers: { 'Authorization': `Bearer ${personalAccessToken}`, }, }); let data = await response.json(); return data.fields.Liste || []; } // Calcola il risultato della formula let formulaResult = calculateFormula(ruolo, pagamenti, minorenne); // Ottieni i valori attuali del campo "Liste" nel record let currentListValues = await getCurrentListValues(); // Filtra i valori esistenti escludendo quelli che contengono "Loreto24" let filteredListValues = currentListValues.filter(value => !value.includes("Loreto24")); // Aggiungi i nuovi valori calcolati dalla formula ai valori filtrati let updatedListValues = [...filteredListValues, formulaResult]; // Esegui la richiesta PATCH per aggiornare il record in Airtable con i nuovi valori del campo "Liste" let url = `https://api.airtable.com/v0/${baseID}/${tableID}/${recordID}`; let response = await fetch(url, { method: 'PATCH', headers: { 'Authorization': `Bearer ${personalAccessToken}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ "fields": { "Liste": updatedListValues } }) }); // Controlla lo status della risposta if (response.ok) { console.log(`Record ${recordID} updated successfully with updated List values.`); } else { console.error(`Error updating record ${recordID}: ${response.statusText}`); }

 

why I have this error: "Error updating record rechDqKKlD7FDp0tO: Unprocessable Entity"???

Field Liste is a linked field to another table.

0 replies

Be the first to reply!

Reply