Autres tâches

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

Autorisation d'utilisateur

À certains moments d'un flux, vous pouvez appliquer l'autorisation de l'utilisateur.

Pour ce faire, procédez comme suit :

  1. Dans les états où vous voulez imposer une autorisation, réglez la propriété Requires Authorization (Exige une autorisation) à True. Cette propriété se trouve dans l'onglet Général de l'inspecteur des propriétés de l'État.

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

  2. Créez un composant d'autorisation et mappez-le à l'événement de transition standard Autoriser l'utilisateur du flux :
    1. Sélectionnez le flux, puis sélectionnez l'onglet Flux du flux.
    2. Cliquez deux fois sur la vignette Événements pour développer le flux.
    3. Pointez la vignette Autoriser l'utilisateur, cliquez sur le bouton (...) qui s'affiche et sélectionnez Ajouter un état.
    4. Dans la catégorie Sécurité du sélecteur de modèle, sélectionnez un composant, indiquez un nom pour l'état, puis cliquez sur Insérer.

      Voir Modèles de sécurité pour plus de détails sur chacun des modèles disponibles.

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

Éléments de réponse de numérotation automatique

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

Lorsque les utilisateurs ne peuvent pas effectuer d'action tactile, ils peuvent déclencher les actions de republication en entrant un nombre. Cette fonctionnalité est particulièrement utile pour les canaux de texte.

Vous configurez la numérotation automatique au niveau de la compétence.

Pour configurer la numérotation automatique :

  1. Dans la navigation gauche de la compétence, sélectionnez Icône Settings (Paramètres).
  2. Sélectionnez l'onglet Configuration.
  3. Définissez la valeur Activer la numérotation automatique pour les actions de republication dans les flux de tâches.

    Si vous voulez activer la numérotation automatique pour tous les canaux, réglez la valeur à true (Vrai).

    Si vous voulez activer la numérotation automatique uniquement pour certains canaux, fournissez une expression pour déterminer quels canaux recevront 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 d'utilisateur

Vous pouvez vous assurer que les utilisateurs ne sont pas coincés dans une étape d'un flux de dialogue en configurant ce composant afin de limiter le nombre de répétitions d'une invite pour l'utilisateur.

La propriété maxPrompts limite le nombre de fois où les composants de réponse commune peuvent demander à l'utilisateur de ne pas faire correspondre la valeur d'entrée à une des valeurs définies 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 que votre boîte de dialogue tourne en rond lorsque les utilisateurs entrent de façon répétitive des valeurs non valides. Vous pouvez définir le nombre maximum d'invites avec un nombre entier . La boîte de dialogue passe à l'état suivant si l'utilisateur entre une valeur valide avant d'atteindre cette limite. Sinon, la boîte de dialogue passe à l'état défini par l'action cancel.

Ensembles de ressources et concepteur de flux visuel

Vous pouvez utiliser des ensembles 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 d'ensemble de ressources au moyen de la variable rb. Une référence à un message d'ensemble de ressources simple prend l'un des deux formulaires suivants :

  • ${skill.system.rb.RB_ENTRY_NAME}
  • ${rb.RB_ENTRY_NAME}
Pour plus d'informations sur les ensembles de ressources, notamment sur la création des entrées d'ensemble de ressources elles-mêmes et l'utilisation de formats de message complexes, voir Ensembles de ressources pour les compétences.

Conseil :

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

Modifier une entrée d'ensemble de ressources

  1. Dans la compétence, cliquez sur Icône Ensembles de ressources pour ouvrir l'ensemble de ressources.
  2. Sélectionnez l'onglet Configuration.
  3. À l'aide du champ Filtre, naviguez jusqu'à l'entrée à mettre à jour.
  4. Pointez la valeur de la clé et sélectionnez l'icône Modifier qui s'affiche.
  5. Dans le champ Texte, entrez le message mis à jour.
  6. Cliquez sur Mettre à jour l'entrée.

Messages de formulaire d'entrée d'utilisateur

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

Parfois, un formulaire d'entrée est le moyen le plus rapide et le moins sujet aux erreurs de collecte des informations utilisateur. Plutôt que de soumettre les utilisateurs à une série de questions, votre compétence peut guider les utilisateurs à fournir une entrée valide en leur envoyant des formulaires contenant des éléments d'entrée tels que des champs d'entrée de texte, des sélecteurs d'heure et de date et des commutateurs.
Une description de editable-form-example.png suit
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. Sélectionnez ensuite Créer un formulaire d'entrée.
  2. Pour créer la disposition, 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 de métadonnées Modifier les formulaires

Voici quelques points à noter concernant le modèle pour le type de réponse editForm :
  • Les propriétés fournies pour items, actions et channelCustomProperties sont toutes propres aux objets editFormMessagePayload. Ces données utiles contiennent, entre autres, des descriptions de la disposition globale du message de formulaire d'entrée reçu par l'utilisateur, des champs de formulaire (en lecture seule et modifiables) et des personnalisations propres au canal pour le rendu de l'interface utilisateur propre à 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 nommée submittedFields qui contient l'entrée utilisateur. Il s'agit d'une variable de mappage générée lorsque vous ajoutez un état inputForm au flux de dialogue.
    Note

    Selon vos besoins, vous pouvez référencer des variables individuelles ou une variable d'entité composite à la place de la variable submittedFields.
  • items:
    • Bien que le modèle fournisse des propriétés pour les champs modifiables (champs à sélection unique et à sélection multiple, sélecteurs de date et d'heure, champ d'entrée de numéro et commutateur à bascule), vous pouvez également ajouter des éléments pour le texte et lier des éléments en lecture seule.
    • Les champs modifiables partagent un jeu 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 le formulaire en entier. 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 entrée dans un autre champ, ou lorsqu'un jeu de valeurs pour un champ restreint l'entrée autorisée dans un autre champ.
      Note

      Microsoft Teams ne prend pas en charge autoSubmit.
    • La propriété facultative clientErrorMessage définit le message d'erreur propre au champ qui s'affiche lorsqu'il y a une validation côté client limitée ou lorsque la validation côté client échoue. Par exemple, pour les messages envoyés par 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.
      Note

      Cette propriété est principalement destinée aux cartes adaptatives Microsoft Teams, qui vous limitent à 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 au moyen de FormSubmissionMessagePayload.
  • channelCustomProperties - Pour prendre en charge une expérience en mode multiple, où l'utilisateur peut utiliser des combinaisons de texte et de voix pour remplir les champs du 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 du formulaire d'entrée courant au lieu d'ajouter un nouveau formulaire d'entrée à la conversation.

Champs de formulaire d'entrée

Élément Exemple Exemple de code : Variable de mappage (submittedFields) Peut être modifié?
Liste à sélection unique Permet aux utilisateurs de rechercher et de sélectionner un article dans une liste prédéfinie. Vous pouvez définir ce composant comme une liste d'options que les utilisateurs peuvent interroger 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 à choix multiples Liste qui prend en charge plusieurs sélections. Vous pouvez définir 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 d'entrer une valeur de temps dans un intervalle spécifié. 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électionneur de date Champ avec un 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 d'entrer 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 d'entrer 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 groupe 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 Texte inséré en lecture seule

      - displayType: text
        alignment: left
        value: Read our expenses policy.
Non - Lecture seule
Lien Un lien inséré

      - displayType: link
        alignment: left
        value: "http:www.oracle.com"
Non - Lecture seule
Action Un des types d'action (lien, bouton ou icône). Dans l'extrait de code suivant, un lien d'action est affiché lorsque la valeur de la variable selectedOrder est associée à la valeur de la rangée 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 compétence, vous pouvez définir les paramètres du client à référencer à partir des flux de dialogue.

Après avoir publié la compétence, vous pouvez modifier les valeurs de ces paramètres (même si vous ne pouvez pas modifier d'autres détails de paramètre, ou ajouter ou supprimer des paramètres).

Les paramètres personnalisés sont affichés en tant que variables skill.system.config à utiliser dans la définition du flux de dialogue. Par exemple, un paramètre personnalisé nommé faHostName est accessible à l'aide de l'expression suivante :

${skill.system.config.faHostName}

Si vous souhaitez pouvoir définir la valeur d'un paramètre de compétence dans l'assistant numérique auquel vous ajoutez la compétence, faites précéder le nom du paramètre de da. (point (.) compris). Par exemple, vous pouvez utiliser da.faHostName comme nom de paramètre pour un nom d'hôte.

Grâce à cette approche, vous pouvez définir des paramètres avec les mêmes noms dans plusieurs compétences, ajouter toutes ces compétences à un assistant numérique, puis définir les valeurs des paramètres partagés à un seul endroit de 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-lui la valeur du paramètre de compétence.

Note

Vous ne pouvez pas définir les valeurs des paramètres personnalisés (ni aucune autre variable préfixée par skill.system.config) directement dans le flux de dialogue ou dans des composants personnalisés.

Créer un paramètre personnalisé

  1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral, sélectionnez Development > Skills (Développement > Compétences) et ouvrez votre compétence.
  2. Dans la barre de navigation gauche de la compétence, cliquez sur icône des paramètres.
  3. Cliquez sur l'onglet Configuration.
  4. Cliquez sur New Parameter (Nouveau paramètre) et remplissez les champs de la boîte de dialogue qui s'affiche.

Paramètres sécurisés

Si votre compétence repose sur un paramètre dont la valeur ne doit pas être visible à d'autres personnes qui développent cette compétence, ou des versions ou clones de celle-ci, vous pouvez désigner ce paramètre comme sécurisé. Quiconque navigue ensuite jusqu'à la page Parameters (Paramètres) dans la compétence peut voir le nom du paramètre, mais pas la valeur.

Si vous exportez la compétence, la valeur du paramètre n'est pas incluse.

Pour créer un paramètre sécurisé :

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

Modifier la valeur d'un paramètre personnalisé dans une compétence publiée

Une fois que vous avez publié une compétence, vous ne pouvez pas ajouter ou supprimer de paramètres personnalisés, mais vous pouvez modifier leur valeur. Pour ce faire :

  1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral, sélectionnez Development > Skills (Développement > Compétences) et ouvrez votre compétence.

  2. Dans la barre de navigation gauche de la compétence, cliquez sur icône des paramètres.

  3. Sélectionnez l'onglet Configuration.
  4. Sélectionnez le paramètre, cliquez sur Edit (Modifier), puis entrez la valeur mise à jour.

Note

Si vous avez ajouté une compétence comportant un paramètre qui est 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 qu'avait le paramètre lors de son ajout dans l'assistant numérique. La modification de la valeur de la compétence n'aura une incidence que sur la compétence si elle est utilisée de manière autonome ou si elle est ajoutée plus tard à un autre assistant numérique.

Définir la valeur d'un paramètre dans un assistant numérique

Une fois qu'une compétence a été publiée et ajoutée à un assistant numérique, vous pouvez définir la valeur de tous ses paramètres qui ont le préfixe da. (point (.) compris).

Si un paramètre "da." portant le même nom est défini dans plusieurs compétences de l'assistant numérique, sa valeur est la même partout.

Pour définir la valeur d'un paramètre dans un assistant numérique :

  1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral, sélectionnez Development > Digital Assistants (Développement > Assistants numériques), puis votre assistant numérique.
  2. Dans la barre de navigation gauche de l'assistant numérique, cliquez sur Icône Skills (Compétences).
  3. Sélectionnez l'une des compétences qui utilise le paramètre.
  4. Faites défiler la page vers le bas jusqu'à la section Settings (Paramètres) et entrez une valeur pour le paramètre.

    La valeur mise à jour sera appliquée à toutes les compétences qui utilisent 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 Flux d'importation et Exporter le flux sélectionné du menu Plus.



Exporter les flux

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 du dialogue. Ce document est nommé en fonction de la compétence et du flux et est ajouté à -Flow (PizzaSkill-pizza.ans.proc.veggiePizza-Flow.yaml, par exemple). Sa syntaxe YAML est conforme au mode de dialogue visuel, et non à OBotML écrit pour les compétences créées en mode YAML. Lorsque vous exportez un flux, vous exportez ce document uniquement. 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, ensembles de ressources
  • Flux de tâches référencés
Lors de l'importation, le flux s'exécutera correctement si la compétence comporte déjà les artefacts référencés. Sinon, l'importation générera des erreurs de validation.
Note

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"
...

Flux d'importation

Vous pouvez importer un flux en cliquant sur Plus > Flux d'importation, puis en parcourant et en sélectionnant un document YAML formaté pour le mode de dialogue visuel. Ces flux peuvent être les documents YAML générés lors de l'exportation d'un flux de dialogue (ceux dont le nom est formaté comme <skill name> - <flow name> -Flow.yaml ), ou il peut s'agir des fichiers YAML situés dans le dossier dialogs d'un fichier ZIP exporté pour une compétence créée à l'aide du mode de dialogue visuel. Vous ne pouvez pas importer un document OBotML directement. Vous devez d'abord migrer la compétence.

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 compétence en mode de dialogue visuel.
  • Vous ne pouvez pas importer un flux qui existe déjà dans la compétence ou dans votre instance. Si le flux existe déjà, vous pouvez 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 ensembles de ressources ou des services dorsaux qui ne sont pas présents dans la compétence. Toutefois, ces importations entraîneront des erreurs de validationCeci est une image de l'icône d'avertissement.. Pour obtenir la liste des erreurs de validation, cliquez sur Voir les conclusions de la validation dans les messages d'erreur qui s'affichent après l'importation.
Ceci est une image du message d'erreur de validation du flux d'importation.