Help

Fusionner plusieurs pièces jointe grâce à un script dans airtable

Topic Labels: Automations
297 0
cancel
Showing results for 
Search instead for 
Did you mean: 
SebSKY
4 - Data Explorer
4 - Data Explorer

Bonjour, 

Je suis en train d'essayer de créer une table pour créer une note de frais. Je voudrais à l'aide d'un script "fusionner" plusieurs enregistrement en fonction du mail d'une personne. C'est à dire que j'aurais plusieurs champs comme "Nom", "Prénom", "Description des frais","Montant" et "Facture". J'arrive à fusionner tous les enregistrement pour créer une seule ligne et toutes les données se séparent avec un "/" . Toutefois, le champs "Facture" qui est de type "pièce jointe" et possède une pdf ou un image n'arrive pas à regrouper toutes les factures. 

Voici le script utilisé actuellement: 

// Nom de la table source
const sourceTableName = "Facture de frais";
const table = base.getTable(sourceTableName);

// Sélectionner les enregistrements
let records = await table.selectRecordsAsync();

// Objet pour stocker les données groupées
const groupedData = {};

// Parcourir les enregistrements
for (const record of records.records) {
const email = record.getCellValue("Mail"); // Assurez-vous que "Mail" est le nom correct du champ

// Clé unique pour grouper les données
if (!groupedData[email]) {
groupedData[email] = {
"Mail": email,
"Facture": [], // Initialiser le tableau de factures
};
}

// Grouper les factures
const facture = record.getCellValue("Facture"); // Assurez-vous que "Facture" est le nom correct du champ
if (facture) {
groupedData[email]["Facture"].push(...facture); // Ajouter les factures au tableau
}
}

// Créer de nouveaux enregistrements à partir des données groupées
const newRecords = Object.values(groupedData).map(data => ({
fields: data,
}));

// Créer les nouveaux enregistrements dans la table de destination
// Assurez-vous que la table de destination existe et a les champs appropriés
const destinationTableName = "Facture de frais";
const destinationTable = base.getTable(destinationTableName);
await destinationTable.createRecordsAsync(newRecords);

0 Replies 0