Autres tâches

Voici quelques rubriques sur diverses autres tâches du concepteur de flux visuel, notamment l'authentification utilisateur, la numérotation automatique, les groupes de ressources, la création de formulaires d'entrée, la création de paramètres personnalisés, ainsi que l'importation et l'exportation de flux.

Autorisation utilisateur

A certains moments d'un flux, vous pouvez imposer l'autorisation de l'utilisateur.

Pour ce faire, procédez comme suit :

  1. Sur les états dans lesquels vous souhaitez appliquer l'autorisation, définissez la propriété Exige l'autorisation sur True. Cette propriété se trouve dans l'onglet Général de l'inspecteur de propriétés de l'état.

    Si un utilisateur qui atteint un tel état n'a pas encore autorisé, l'autorisation utilisant l'état OAuth est appelée, puis le flux appelle l'état qui a requis l'autorisation.

  2. Créez un composant d'autorisation et mettez-le en correspondance avec l'événement de transition standard Autoriser l'utilisateur du flux :
    1. Sélectionnez le flux, puis l'onglet Flux du flux.
    2. Cliquez deux fois sur la mosaïque Evénements du flux pour le développer.
    3. Placez le pointeur de la souris sur la mosaïque Autoriser l'utilisateur, cliquez sur le bouton Points de suspension (...) qui apparaît et sélectionnez Ajouter un état.
    4. Dans la catégorie Sécurité du sélecteur de modèle, sélectionnez un composant, indiquez le nom de l'état, puis cliquez sur Insérer.

      Pour plus d'informations sur chacun des modèles disponibles, reportez-vous à Modèles de sécurité.

    5. Dans l'inspecteur de propriétés du composant, configurez les propriétés du composant, y compris ses actions de transition.

Numérotation automatique des éléments de réponse

Vous pouvez utiliser la fonction de numérotation automatique pour préfixer les boutons et les options de liste avec des chiffres dans vos réponses.

Lorsque les utilisateurs ne peuvent pas utiliser le toucher, ils peuvent toujours déclencher les actions de postback du bouton en saisissant un nombre. Cette fonctionnalité est particulièrement utile pour les canaux de texte.

Vous configurez la numérotation automatique au niveau de la brique.

Pour configurer la numérotation automatique, procédez comme suit :

  1. Dans la barre de navigation gauche du brique, sélectionnez Icône Paramètres.
  2. Sélectionnez l'onglet Configuration.
  3. Définissez la valeur Activer la numérotation automatique sur les actions de postback dans les flux de tâches.

    Si vous souhaitez activer la numérotation automatique pour tous les canaux, définissez la valeur sur true.

    Si vous souhaitez activer la numérotation automatique uniquement pour certains canaux, fournissez une expression pour déterminer les canaux qui obtiendront la numérotation automatique. Par exemple, pour activer la numérotation automatique uniquement pour les canaux Twilio, vous devez entrer :

    ${(system.channelType=='twilio')?then('true','false')}

Limitation du nombre d'invites utilisateur

Vous pouvez vous assurer que les utilisateurs ne restent pas bloqués sur une étape d'un flux de dialogue en configurant ce composant pour limiter le nombre de fois où il répète une invite à l'utilisateur.

La propriété maxPrompts limite le nombre de fois où les composants de réponse commune peuvent envoyer une invite à l'utilisateur lorsqu'ils ne correspondent à aucune valeur d'entrée définie pour l'entité ou le type d'entrée référencé par la propriété variable. Vous pouvez utiliser cette propriété pour empêcher votre dialogue de tourner en rond lorsque les utilisateurs saisissent de façon répétée des valeurs non valides. Vous pouvez définir le nombre maximal d'invite à l'aide d'un entier. Le dialogue passe à l'état suivant si l'utilisateur saisit une valeur valide avant d'atteindre cette limite. Sinon, le dialogue passe à l'état défini par l'action cancel.

Groupes de ressources et concepteur visuel de flux

Vous pouvez utiliser des groupes de ressources pour stocker les chaînes visibles par l'utilisateur que vous ajoutez à votre flux de dialogue.

Vous référencez les clés de message de groupe de ressources via la variable rb. Une référence à un simple message de regroupement de ressources prend l'une des deux formes suivantes :

  • ${skill.system.rb.RB_ENTRY_NAME}
  • ${rb.RB_ENTRY_NAME}
Pour plus d'informations sur les groupes de ressources, notamment sur la création des entrées de groupe de ressources elles-mêmes et l'utilisation de formats de message complexes, reportez-vous à la section Groupes de ressources pour les briques.

Conseil :

La saisie semi-automatique vous aide à sélectionner les groupes de ressources référencés dans les expressions Apache FreeMarker.

Modification d'une entrée de groupe de ressources

  1. Dans la brique, cliquez sur Icône Groupes de ressources pour ouvrir le bundle de ressources.
  2. Sélectionnez l'onglet Configuration.
  3. A l'aide du champ Filtre, accédez à l'entrée à mettre à jour.
  4. Placez le pointeur de la souris sur la valeur de la clé et sélectionnez l'icône Modification qui apparaît.
  5. Dans le champ Texte, saisissez le message mis à jour.
  6. Cliquez sur Mettre à jour l'entrée.

Messages du formulaire d'entrée utilisateur

Dans les flux de dialogue, vous pouvez également créer des formulaires d'entrée.

Parfois, un formulaire de saisie est le moyen le plus rapide et le moins sujet aux erreurs de collecter des informations utilisateur. Plutôt que de soumettre les utilisateurs à une série de questions, votre brique peut les aider à fournir des entrées valides en leur envoyant des formulaires contenant des éléments d'entrée tels que des champs de saisie de texte, des sélecteurs d'heure et de date et des commutateurs.
Description de l'image editable-form-example.png
Description de l'illustration editable-form-example.png

Partout où le flux de conversation appelle un message contenant un formulaire d'entrée, vous pouvez en insérer un en ajoutant un état inputForm :
  1. Dans la boîte de dialogue Ajouter un état, sélectionnez Messagerie utilisateur > Créer des tables et des formulaires. Choisissez ensuite Créer un formulaire d'entrée.
  2. Pour créer la présentation, les actions et les champs modifiables et en lecture seule du formulaire, cliquez d'abord sur Edit Response Items, puis modifiez le modèle de métadonnées ResponseItems. Dans ce cas, le modèle concerne l'élément de réponse editForm.
    responseItems:
      - type: editForm
        title: Input Form
        formColumns: 2
        items:
          - autoSubmit: false
            displayType: textInput
            defaultValue: "${(submittedFields.value.myText)!''}"
            multiLine: false
            minLength: 5
            name: myText
            label: Text
            placeholder: Enter free text
            clientErrorMessage: Field is required and must be between 5 and 50 characters
            required: true
            maxLength: 50
          - validationRegularExpression: "^[a-zA-Z\\s]*$"
            autoSubmit: false
            displayType: textInput
            defaultValue: "${(submittedFields.value.myTextArea)!''}"
            multiLine: true
            name: myTextArea
            label: Text Area
            placeholder: Enter free text
            clientErrorMessage: Numbers are not allowed
          - autoSubmit: false
            displayType: datePicker
            minDate: "1970-01-01"
            defaultValue: "${(submittedFields.value.myDate)!''}"
            name: myDate
            maxDate: "${.now?iso_utc[0..9]}"
            label: Date
            placeholder: Pick a date in the past
            clientErrorMessage: Date is required and must be in the past.
            required: true
          - autoSubmit: false
            maxTime: "12:00"
            displayType: timePicker
            minTime: "00:00"
            defaultValue: "${(submittedFields.value.myTime)!''}"
            name: myTime
            label: Time
            placeholder: Pick a time in the morning
            clientErrorMessage: Time must be in the morning.
            required: false
          - autoSubmit: false
            displayType: numberInput
            minValue: 5
            maxValue: 500
            defaultValue: "${(submittedFields.value.myNumber)!''}"
            name: myNumber
            label: Number
            placeholder: Enter a number between 5 and 500
            clientErrorMessage: Number is required and must be between 5 and 500.
            required: true
          - autoSubmit: false
            displayType: singleSelect
            defaultValue: "${(submittedFields.value.mySingleSelect)!''}"
            name: mySingleSelect
            options:
              - label: Label 1
                value: Value 1
              - label: Label 2
                value: Value 2
              - label: Label 3
                value: Value 3
            layoutStyle: list
            label: Single Select
            clientErrorMessage: Field is required
            required: true
          - autoSubmit: false
            displayType: multiSelect
            defaultValue: "${(submittedFields.value.myMultiSelect?join(','))!''}"
            name: myMultiSelect
            options:
              - label: Label 1
                value: Value 1
              - label: Label 2
                value: Value 2
              - label: Label 3
                value: Value 3
            layoutStyle: list
            label: Multi Select
            clientErrorMessage: Field is required
            required: true
          - displayType: toggle
            defaultValue: "${(submittedFields.value.myToggle)!'true'}"
            name: myToggle
            labelOn: "Yes"
            label: Toggle
            valueOff: "false"
            labelOff: "No"
            valueOn: "true"
        actions:
          - label: Submit
            type: submitForm
        channelCustomProperties:
          - channel: "${system.channelType}"
            properties:
              replaceMessage: "${system.message.messagePayload.type == 'formSubmission'}"

Modèle Modifier les métadonnées des formulaires

Voici quelques points à noter concernant le modèle pour le type de réponse editForm :
  • Les propriétés fournies pour les objets items, actions et channelCustomProperties sont toutes propres aux objets editFormMessagePayload. Entre autres, cette charge utile contient des descriptions de la présentation globale du message de formulaire d'entrée reçu par l'utilisateur, des champs de formulaire (lecture seule et modifiable) et des personnalisations propres au canal pour le rendu de l'interface utilisateur spécifique à la plate-forme et le comportement de soumission de formulaire.
  • Pour chaque élément et dans le noeud actions, le modèle référence une variable de niveau flux appelée submittedFields qui contient l'entrée utilisateur. Il s'agit d'une variable de correspondance générée lorsque vous ajoutez un état inputForm au flux de dialogue.
    Remarque

    Selon vos besoins, vous pouvez référencer des variables individuelles ou une variable de conteneur composite à la place de la variable submittedFields.
  • items:
    • Alors que le modèle fournit des propriétés pour les champs modifiables (champs à sélection unique et à sélection multiple, sélecteurs de date et d'heure, champ de saisie numérique et bascule), vous pouvez également ajouter des éléments pour le texte et lier des éléments en lecture seule.
    • Les champs modifiables partagent un ensemble de propriétés communes, y compris la propriété autoSubmit. Il s'agit d'une propriété facultative, mais son activation (autoSubmit: true) permet au formulaire de soumettre une valeur de champ avant que l'utilisateur n'ait réellement soumis l'intégralité du formulaire. Vous pouvez utiliser cette propriété pour les champs interdépendants de votre formulaire. Par exemple, vous pouvez définir cette propriété lorsque l'affichage d'un champ dépend d'une valeur saisie dans un autre champ ou lorsqu'une valeur définie pour un champ restreint l'entrée autorisée dans un autre champ.
      Remarque

      Microsoft Teams ne prend pas en charge autoSubmit.
    • La propriété facultative clientErrorMessage définit le message d'erreur spécifique au champ qui s'affiche en cas de validation côté client limitée ou en cas d'échec de la validation côté client. Par exemple, pour les messages envoyés via le canal Slack, cette propriété n'est prise en charge que lorsque le formulaire se trouve dans la page de conversation. Il ne s'affiche pas lorsque le message de formulaire se trouve dans une boîte de dialogue modale.
      Remarque

      Cette propriété est principalement destinée aux cartes adaptatives Microsoft Teams, ce qui vous limite à utiliser un seul message pour toutes les erreurs de niveau champ.
  • actions : dans ce noeud, le modèle décrit les actions de soumission de formulaire qui soumettent l'entrée utilisateur via FormSubmissionMessagePayload.
  • channelCustomProperties : pour prendre en charge une expérience multimode, dans laquelle l'utilisateur peut utiliser des combinaisons de texte et de voix pour remplir les champs de formulaire avant de soumettre le formulaire, le modèle inclut la configuration de propriété replaceMessage qui indique au canal client de mettre à jour le message de formulaire d'entrée en cours au lieu d'ajouter un nouveau formulaire d'entrée à la conversation.

Champs de formulaire de saisie

Elément Exemple Exemple de code : Variable de mapping (submittedFields) Modifiable ?
Liste à sélection unique Permet aux utilisateurs de rechercher et de sélectionner un élément dans une liste prédéfinie. Vous pouvez définir ce composant comme une liste d'options que les utilisateurs peuvent rechercher et sélectionner.

 - displayType: singleSelect
        defaultValue: "${(submittedFields.value.Type)!''}"
        name: Type
        options:
          - iteratorVariable: option
            iteratorExpression: "${expenseType.type.enumValues?split(',')}"
            label: "${option}"
            value: "${option}"
        layoutStyle: list
        label: Expense Type
        placeholder: Select expense type
        clientErrorMessage: Expense type is required
        required: true
Oui
Liste de sélection multiple Liste prenant en charge plusieurs sélections. Vous pouvez définir le style de ce composant comme une liste de sélection que les utilisateurs peuvent filtrer et sélectionner, ou comme un ensemble de cases à cocher.

 - displayType: multiSelect
        defaultValue: "${(submittedFields.value.Attendees?join(','))!''}"
        name: Attendees
        options:
          - iteratorVariable: option
            iteratorExpression: "${attendee.type.enumValues?split(',')}"
            label: "${option}"
            value: "${option}"
        layoutStyle: list
        label: Attendees
        placeholder: Select attendees
Oui
Sélecteur d'heure Permet à l'utilisateur de saisir une valeur de temps comprise dans une plage spécifiée. Les propriétés maxTime et minTime du composant valident l'entrée utilisateur.

      - displayType: timePicker
        defaultValue: "${(submittedFields.value.Time.value?time.xs?string['hh:mm a'])!''}"
        maxTime: "23:00"
        minTime: "13:00"
        name: Time
        label: Expense Time
        placeholder: What time was the expense?
        clientErrorMessage: This time is outside the limits.
        required: true
Oui
Sélecteur de date Champ avec calendrier déroulant qui permet aux utilisateurs de sélectionner un jour, un mois et une année. Les propriétés maxDate et minDate du composant valident l'entrée utilisateur.

 - displayType: datePicker
        defaultValue: "${(submittedFields.value.Date)!''}"
        name: Date
        maxDate: "${.now?iso_utc[0..9]}"
        label: Expense Date
        placeholder: Pick a date in the past
        clientErrorMessage: Expense date is required and must be in the past.
        required: true
Oui
Entrée numérique Permet à l'utilisateur de saisir une valeur numérique. Les propriétés minValue et maxValue valident l'entrée utilisateur.

     - displayType: numberInput
        minValue: 5
        serverErrorMessage: "${(amountError.value)!''}"
        maxValue: 500
        defaultValue: "${(submittedFields.value.Amount)!''}"
        name: Amount
        label: Amount
        placeholder: Enter expense amount
        clientErrorMessage: Amount is required and must be between 5 and 500.
        required: true
Oui
Entrée de texte Permet à l'utilisateur de saisir une valeur de texte.

      - displayType: textInput
        multiLine: true
        defaultValue: "${(submittedFields.value.Description)!''}"
        minLength: 10
        name: Description
        label: Description
        placeholder: What is the expense justification?
        clientErrorMessage: "Description must be 10 characters minimum, 50 characters maximum."
        maxLength: 50
        required: true
      - displayType: textInput
        multiLine: true
        defaultValue: "${(submittedFields.value.Notes)!''}"
        minLength: 10
        name: Notes
        inputStyle: email
        label: Notes
        placeholder: Expense notes (optional)
        maxLength: 50
        required: false
Oui
Activer/désactiver Présente un commutateur à bascule (ou un groupement de boutons radio, selon le canal) pour deux options.

      - displayType: toggle
        defaultValue: "false"
        name: TipIncluded
        labelOn: Tip
        label: Tip Included?
        valueOff: "false"
        labelOff: No Tip
        valueOn: "true"
Oui
Texte Lire uniquement le texte en ligne

      - displayType: text
        alignment: left
        value: Read our expenses policy.
Non - Lecture seule
Lien Un lien en ligne

      - displayType: link
        alignment: left
        value: "http:www.oracle.com"
Non - Lecture seule
Action L'un des types d'action (lien, bouton ou icône). Dans le fragment de code suivant, un lien d'action est affiché lorsque la valeur de la variable selectedOrder est insérée avec la valeur de la ligne item.
- displayType: action
  action:
    displayType: link
    payload:
      variables:
        selectedOrder: "${item.SO_CUSTOMER_PO_NUMBER}"
        action: order
       label: "${item.SO_CUSTOMER_PO_NUMBER}"
       type: postback
       label: CUSTOMER PO NUMBER
Non - Lecture seule

Paramètres personnalisés

Dans votre brique, vous pouvez définir les paramètres client à référencer à partir des flux de dialogue.

Après avoir publié la brique, vous pouvez modifier les valeurs de ces paramètres (bien que vous ne puissiez pas modifier les autres détails des paramètres, ni ajouter ou supprimer des paramètres).

Les paramètres personnalisés sont présentés sous forme de variables skill.system.config à utiliser dans la définition de flux de dialogue. Par exemple, un paramètre personnalisé nommé faHostName est accessible avec l'expression suivante :

${skill.system.config.faHostName}

Pour pouvoir définir la valeur d'un paramètre d'une brique dans l'assistant numérique auquel vous ajoutez cette dernière, faites précéder le nom du paramètre de da. (sans oublier le point [.]). Par exemple, vous pouvez utiliser da.faHostName comme nom pour un paramètre de nom d'hôte.

Cette approche vous permet de définir des paramètres ayant le même nom dans plusieurs briques, d'ajouter toutes ces briques à un assistant numérique, puis de définir les valeurs des paramètres partagés à un seul endroit dans l'assistant numérique.

Pour accéder à un paramètre à partir d'un composant personnalisé, définissez un paramètre d'entrée dans le composant personnalisé, puis transmettez la valeur du paramètre de la brique à ce dernier.

Remarque

Vous ne pouvez pas définir les valeurs des paramètres personnalisés (ou toute autre variable commençant par skill.system.config) directement dans le flux de dialogue ou dans des composants personnalisés.

Création d'un paramètre personnalisé

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis sélectionnez votre brique.
  2. Dans la barre de navigation de gauche de la brique, cliquez sur icône Paramètres.
  3. Cliquez sur l'onglet Configuration.
  4. Cliquez sur Nouveau paramètre et remplissez les champs de la boîte de dialogue qui apparaît.

Paramètres sécurisés

Si votre brique dépend d'un paramètre dont la valeur ne doit pas être visible par d'autres personnes qui développent cette brique, ou des versions ou clones de cette brique, vous pouvez définir ce paramètre en tant que paramètre sécurisé. Ainsi, toute personne qui accède à la page Paramètres de la brique peut consulter le nom du paramètre, mais pas sa valeur.

Si vous exportez la brique, la valeur du paramètre n'est pas incluse dans l'export.

Pour créer un paramètre sécurisé, procédez comme suit :

  • Dans la boîte de dialogue Créer un paramètre, sélectionnez Sécurisé dans la liste déroulante Type.

Modification de la valeur d'un paramètre personnalisé dans une brique publiée

Une fois que vous avez publié une brique, vous ne pouvez plus ajouter ni supprimer des paramètres personnalisés, mais vous pouvez modifier leurs valeurs. Pour ce faire, procédez comme suit :

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis sélectionnez votre brique.

  2. Dans la barre de navigation de gauche de la brique, cliquez sur icône Paramètres.

  3. Sélectionnez l'onglet Configuration.
  4. Sélectionnez le paramètre, cliquez sur Modifier et saisissez la valeur mise à jour.

Remarque

Si vous avez ajouté une brique comportant un paramètre précédé de da. dans un assistant numérique et que vous voulez mettre à jour la valeur utilisée par ce dernier, vous devez le faire dans l'assistant numérique. Sinon, l'assistant numérique continuera d'utiliser la valeur que le paramètre avait au moment où il a été ajouté à celui-ci. La modification de la valeur dans la brique influe uniquement sur la brique si celle-ci est utilisée de façon autonome ou ajoutée ultérieurement à un autre assistant numérique.

Définition de la valeur d'un paramètre dans l'assistant numérique

Une fois qu'une brique a été publiée et ajoutée à un assistant numérique, vous pouvez définir la valeur de tout paramètre de brique présentant le préfixe da. (sans oublier le point [.]) dans l'assistant numérique.

Si un paramètre "da." portant le même nom est défini dans plusieurs briques de l'assistant numérique, la valeur de ce paramètre est partagée entre celles-ci.

Pour définir la valeur d'un paramètre dans un assistant numérique, procédez comme suit :

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, sélectionnez Développement > Assistants numériques, puis sélectionnez l'assistant numérique.
  2. Dans la barre de navigation de gauche de l'assistant numérique, cliquez sur Icône Briques.
  3. Sélectionnez l'une des briques qui utilisent le paramètre.
  4. Faites défiler la page jusqu'à la section Paramètres et entrez une valeur pour le paramètre.

    La valeur de paramètre mise à jour sera appliquée à toutes les briques utilisant ce paramètre.

Flux d'importation et d'exportation

Vous pouvez importer et exporter des flux de dialogue en mode visuel à l'aide des options Importer le flux et Exporter le flux sélectionné du menu Plus.



Flux d'exportation

Vous pouvez exporter un flux en le sélectionnant d'abord, puis en cliquant sur Plus > Exporter le flux sélectionné. Le flux de dialogue exporté est une représentation YAML de la boîte de dialogue. Ce document porte le nom de la brique et du flux et est ajouté à la fin avec -Flow (PizzaSkill-pizza.ans.proc.veggiePizza-Flow.yaml, par exemple). Sa syntaxe YAML est conforme au mode de dialogue visuel, et non au OBotML écrit pour les briques créées en mode YAML. Lorsque vous exportez un flux, vous exportez uniquement ce document. Il ne sera accompagné d'aucune des dépendances suivantes, même si elles sont référencées.
  • Service de sécurité référencé par les états des composants de sécurité.
  • Services pour divers états d'intégration de service
  • Services de traduction
  • Intentions, entités, groupes de ressources
  • Flux de tâches référencés
Une fois importé, le flux s'exécutera correctement si la brique contient déjà les artefacts référencés. Sinon, l'import génère des erreurs de validation.
Remarque

Vous pouvez exporter n'importe quel flux, à l'exception du flux principal.
Voici un exemple de représentation YAML du mode de dialogue visuel :
name: "WineryChats"
trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375"
type: "task"
version: "2.0"
interface:
  returnActions:
  - "done"
variables:
- name: "redWineCard"
  type: "map"
  system: false
defaultTransitions:
  actions:
    system.outOfOrderMessage: "outOfOrderMessageHandler"
    system.startTaskFlow: "buildRedWineMenu"
states:
  buildRedWineMenu:
    component: "System.SetVariable"
    properties:
      variable: "redWineCard"
      value: 
        Cabernet Sauvignon:
          image: "https://cdn.pixabay.com/photo/2016/05/24/16/16/wine-1412603__340.jpg"
          price: 35
          description: "Flavor of dark fruits like black cherry and blackberry along with a warm spice, vanilla and black pepper"
          title: "Cabernet Sauvignon"
...

Importer des flux

Vous pouvez importer un flux en cliquant sur Plus > Importer le flux, puis en accédant à un document YAML formaté pour le mode Boîte de dialogue visuelle et en le sélectionnant. Ces flux peuvent être les documents YAML générés lorsque vous exportez un flux de dialogue (c'est-à-dire ceux dont le nom est au format <skill name> - <flow name> -Flow.yaml ), ou les fichiers YAML situés dans le dossier dialogs d'un fichier ZIP exporté pour une brique créée en mode Boîte de dialogue visuelle. Vous ne pouvez pas importer un document OBotML directement. Vous devez d'abord migrer la brique.

Il existe des exceptions aux flux qui peuvent être importés.
  • Vous ne pouvez pas importer un flux principal (fichier System.MainFlow.yaml situé dans le dossier dialogs d'un fichier ZIP exporté pour une brique en mode Boîte de dialogue visuelle).
  • Vous ne pouvez pas importer un flux qui existe déjà dans la brique ou dans votre instance. Si le flux existe déjà, vous pouvez télécharger le document YAML en modifiant la valeur du noeud name.
    name: "WineryChats"
    trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375"
    type: "task"
    ...
    Toutefois, vous pouvez plutôt dupliquer le flux (Menu > Dupliquer le flux sélectionné) plutôt que de modifier le YAML.
Vous pouvez importer un flux même s'il fait référence à des artefacts tels que des entités, des intentions, des groupes de ressources ou des services back-end qui ne sont pas présents dans la brique. Toutefois, ces importations entraîneront des erreurs de validationIl s'agit d'une image de l'icône d'avertissement.. Pour obtenir la liste des erreurs de validation, cliquez sur Afficher les résultats de la validation dans les messages d'erreur qui s'affichent après l'import.
Image du message d'erreur de validation du flux d'import.