Ajouter des groupes et des champs dynamiques

Les générateurs peuvent utiliser des flux d'aide pour remplir les entrées et les sorties d'une carte de façon dynamique, soit lorsqu'une requête adressée à une API est nécessaire pour récupérer une liste de champs, soit lorsque la liste des champs disponibles change en fonction des options qu'un utilisateur sélectionne sur une carte.

Connector Builder permet deux types de champs dynamiques. Chacun nécessite une structure JSON légèrement différente, et la plateforme reconnaîtra le type prévu en fonction de cette structure lorsque le flux d'aide sera sélectionné.

Champs dynamiques avec propriétés du groupe statiques

Dans cette version des champs dynamiques, un flux d'aide renvoie une liste de champs et de propriétés de champ. Le nom du groupe et l'option d'extensibilité (propriétés du groupe) sont ajoutés statiquement aux fenêtres modales E/S.

Champs dynamiques avec propriétés du groupe dynamiques

Dans cette version des champs dynamiques, un flux d'aide renvoie le nom du groupe et l'option d'extensibilité (propriétés du groupe), ainsi qu'une liste de champs et de propriétés de champ. Utilisez cette option lorsque le nom du groupe ou l'option d'extensibilité peut changer en fonction des options qu'un utilisateur sélectionne sur une carte.

Pour utiliser les champs dynamiques

  1. Cliquez sur Ajouter des entrées sur la carte Action du connecteur ou sur Ajouter des sorties sur la carte Sorties de retour d'un flux d'action.
  2. Cliquez sur Ajouter un groupe et sélectionnez Groupe d'entrée dynamique ou Groupe de sortie dynamique.
  3. Cliquez sur Choisir le flux pour sélectionner le flux d'aide qui crée la liste de champs ou les champs et les propriétés du groupe.

Champs dynamiques avec propriétés du groupe statiques

Connector Builder s'attend à un ensemble de clés prédéfini lorsqu'il utilise des champs dynamiques :

Clé Définition Valeurs Type Obligatoire
name

La clé pour votre champ. Si aucune valeur displayname n'est fournie, c'est ce que verra l'utilisateur de la carte.

Toute valeur textuelle Texte Oui
displayname L'étiquette du champ. Toute valeur de chaîne Texte Non
required

Si l'utilisateur de la carte devra ou non fournir une valeur.

*uniquement disponible pour les entrées .

  • True

  • False

True/False Non
type

Le type de données du champ.

  • Texte

  • Nombre

  • True/False

  • Date et heure

  • Objet

  • Option

Texte Oui
defaultValue

Une valeur d'amorçage pour l'entrée. Si cette valeur n'est pas spécifiée, les utilisateurs verront les valeurs par défaut de la plateforme en fonction du type de champ.

  • Texte

  • Nombre

  • True/False

  • Date et heure

  • Objet

  • Option

  • Texte

  • Nombre

  • True/False

Non
available Une liste de types de champ que l'utilisateur de la carte peut sélectionner
  • Texte

  • Nombre

  • True/False

  • Date et heure

  • Objet

  • Flux

  • Dossier

Liste de textes Non
collection Représentée dans le produit comme une « liste de » ou un tableau.
  • True

  • False

  • Soit

True/False Non
choices Une liste d'options disponibles pour la liste déroulante. Notez que cela exige que le type soit Option.

Toute valeur textuelle

Liste (tableau) Non
attributes Si le champ est de type Object, les clés de cet objet peuvent être définies à l'aide de la clé d'attributs.

Liste d'objets

Liste (tableau) Non

Voici un exemple d'objet JSON qui renvoie quatre champs : un champ Text, un champ Number, une List of Objects avec trois clés définies, ainsi qu'un champ Option (liste déroulante) contenant trois choix. Notez que la structure des champs dynamiques avec des propriétés du groupe statiques est un tableau (liste) d'objets :

[
    {
        "name":"field-1",
        "displayname":"Field 1",
        "type":"Text",
        "defaultValue":"Hello world!",
        "collection":false,
        "required":true
    },
    {
        "name":"field-2",
        "displayname":"Field 2",
        "type":"Number",
        "collection":false,
        "Required":false,
        "available":[
            "Text",
            "Number"
        ]
    },
    {
        "name":"field-3",
        "displayname":"Field 3",
        "type":"Object",
        "collection":true,
        "required":true,
        "attributes":[
            {
                "name":"key1",
                "displayname":"Key 1",
                "collection":true,
                "type":"Text"
            },
            {
                "name":"key2",
                "displayname":"Key 2",
                "collection":false,
                "type":"Number"
            },
            {
                "name":"key3",
                "displayname":"Key 3",
                "collection":false,
                "type":"True/False"
            }
        ]
    },
    {
        "name":"field-4",
        "displayname":"Field 4",
        "type":"Option",
        "collection":false,
        "required":true,
        "choices":[
            "Choice 1",
            "Choice 2",
            "Choice 3"
        ]
    }
]

Champs dynamiques avec propriétés du groupe dynamiques

Connector Builder s'attend à trois clés supplémentaires lors de l'utilisation de champs dynamiques avec des propriétés du groupe dynamiques.

Clé Définition Valeurs Type Obligatoire
name

Le nom du groupe utilisé pour catégoriser les entrées sur la carte du connecteur.

Toute valeur de chaîne Chaîne Oui
fields La liste des champs à afficher aux utilisateurs finaux Liste d'objets Liste (tableau) Oui
extensible Définir la valeur sur true permet à l'utilisateur de la carte d'ajouter des champs supplémentaires à une carte qui peut être traitée dans une action de connecteur.
  • true

  • false

Booléen Non

Voici un exemple de tableau JSON qui renvoie des propriétés de groupe dynamiques et quatre champs : un champ Text, un champ Number, une List of Objects avec quatre clés définies, ainsi qu'un champ Option (liste déroulante) contenant trois choix. Notez que la structure du fichier JSON des champs dynamiques avec les propriétés du groupe dynamiques est un objet contenant trois attributs de niveau supérieur :

{
    "name":"Group Name",
    "extensible":false,
    "fields":[
        {
            "name":"field-1",
            "displayname":"Field 1",
            "type":"Text",
            "defaultValue":"Hello world!",
            "collection":false,
            "required":true
        },
        {
            "name":"field-2",
            "displayname":"Field 2",
            "type":"Number",
            "collection":false,
            "Required":false,
            "available":[
                "Text",
                "Number"
            ]
        },
        {
            "name":"field-3",
            "displayname":"Field 3",
            "type":"Object",
            "collection":true,
            "required":true,
            "attributes":[
                {
                    "name":"key1",
                    "displayname":"Key 1",
                    "collection":true,
                    "type":"Text"
                },
                {
                    "name":"key2",
                    "displayname":"Key 2",
                    "collection":false,
                    "type":"Number"
                },
                {
                    "name":"key3",
                    "displayname":"Key 3",
                    "collection":false,
                    "type":"True/False"
                },
                {
                    "name":"key4",
                    "displayname":"Key 4",
                    "collection":false,
                    "type":"Object",
                    "attributes": [
                    {
                       "name":"key4subkey1",
                        "displayname":"Subkey 1",
                        "collection":false,
                        "type":"Text"
                        }
                   ]
                },
            ]
        },
        {
            "name":"field-4",
            "displayname":"Field 4",
            "type":"Option",
            "collection":false,
            "required":true,
            "choices":[
                "Choice 1",
                "Choice 2",
                "Choice 3"
            ]
        }
    ]
}