Scrydon

Accéder aux données connectées

Techniques d'accès et de manipulation des données provenant des blocs connectés

Une fois les blocs connectés, vous pouvez accéder aux données des blocs sources dans les blocs de destination en utilisant des balises de connexion et diverses techniques d'accès aux données.

Accès basique aux données

La manière la plus simple d'accéder aux données est d'utiliser des références directes via les balises de connexion :

Propriété simple
Propriété imbriquée
Élément de tableau
Chemin complexe

Techniques avancées d'accès aux données

Accès aux tableaux

Vous pouvez accéder aux éléments d'un tableau en utilisant la notation entre crochets :

// Accéder au premier élément d'un tableau
<block.items[0]>

// Accéder à une propriété spécifique d'un élément de tableau
<block.items[2].name>

// Accéder au dernier élément d'un tableau (dans les blocs Fonction)
const items = input.block.items;
const lastItem = items[items.length - 1];

Accès aux propriétés d'objet

Accédez aux propriétés d'un objet en utilisant la notation pointée :

// Accéder à une propriété simple
<block.content>

// Accéder à une propriété imbriquée
<block.data.user.profile.name>

// Accéder à une propriété avec des caractères spéciaux (dans les blocs Fonction)
const data = input.block.data;
const specialProp = data['property-with-dashes'];

Références dynamiques

Les références de connexion sont évaluées au moment de l'exécution, permettant un flux de données dynamique dans votre workflow :

// Dans un bloc Fonction, vous pouvez accéder aux données connectées
const userName = input.userBlock.name;
const orderTotal = input.apiBlock.body.order.total;

// Traiter les données
const discount = orderTotal > 100 ? 0.1 : 0;
const finalPrice = orderTotal * (1 - discount);

// Retourner le résultat
return {
  userName,
  originalTotal: orderTotal,
  discount: discount * 100 + '%',
  finalPrice
};

Transformation des données

Utilisation des blocs Fonction

Les blocs Fonction sont le moyen le plus puissant de transformer les données entre les connexions :

// Exemple : Transformer les données d'une réponse API
const apiResponse = input.apiBlock.data;
const transformedData = {
  users: apiResponse.results.map(user => ({
    id: user.id,
    fullName: `${user.firstName} ${user.lastName}`,
    email: user.email.toLowerCase(),
    isActive: user.status === 'active'
  })),
  totalCount: apiResponse.count,
  timestamp: new Date().toISOString()
};

return transformedData;

Interpolation de chaînes

Vous pouvez combiner des balises de connexion avec du texte statique :

Bonjour, <userBlock.name> ! Votre commande #<orderBlock.id> a été traitée.

Contenu conditionnel

Dans les blocs Fonction, vous pouvez créer du contenu conditionnel basé sur les données connectées :

const user = input.userBlock;
const orderTotal = input.orderBlock.total;

let message = `Merci pour votre commande, ${user.name} !`;

if (orderTotal > 100) {
  message += " Vous bénéficiez de la livraison gratuite !";
} else {
  message += ` Ajoutez ${(100 - orderTotal).toFixed(2)} € de plus pour bénéficier de la livraison gratuite.`;
}

return { message };

Gestion des données manquantes

Il est important de gérer les cas où les données connectées pourraient être absentes ou nulles :

Validez toujours les données connectées avant de les utiliser, en particulier lorsque vous accédez à des propriétés imbriquées ou à des éléments de tableau.

Valeurs par défaut

Dans les blocs Fonction, vous pouvez fournir des valeurs par défaut pour les données manquantes :

const userName = input.userBlock?.name || 'Guest'
const items = input.orderBlock?.items || []
const total = input.orderBlock?.total ?? 0

Vérifications conditionnelles

Vérifiez si les données existent avant d'accéder aux propriétés imbriquées :

let userEmail = 'No email provided'
if (input.userBlock && input.userBlock.contact && input.userBlock.contact.email) {
  userEmail = input.userBlock.contact.email
}

Chaînage optionnel

Dans les blocs Fonction, utilisez le chaînage optionnel pour accéder aux propriétés imbriquées en toute sécurité :

const userCity = input.userBlock?.address?.city
const firstItemName = input.orderBlock?.items?.[0]?.name

Débogage des données de connexion

Pour résoudre les problèmes de connexion, ces techniques peuvent être utiles :

  1. Journaliser les données : Dans les blocs Fonction, utilisez console.log() pour inspecter les données connectées
  2. Retourner des objets complets : Retournez l'objet d'entrée complet pour voir toutes les données disponibles
  3. Vérifier les types : Vérifiez les types de données des valeurs connectées
  4. Valider les chemins : Assurez-vous d'utiliser le bon chemin pour accéder aux données imbriquées
// Exemple de fonction de débogage
function debugConnections() {
  console.log('All inputs:', input)
  console.log('User data type:', typeof input.userBlock)
  console.log('Order items:', input.orderBlock?.items)

  return {
    debug: true,
    allInputs: input,
    userExists: !!input.userBlock,
    orderItemCount: input.orderBlock?.items?.length || 0,
  }
}
Sur cette page

Sur cette page