> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ajouter un bouton Delete pour supprimer des enregistrements

> Ajoutez un bouton Delete à un record type Appian en créant un ProcessModel de suppression, en l’associant comme action associée et, éventuellement, en le désactivant dans la Summary view.

Vous pouvez ajouter un bouton **Delete** qui permet aux utilisateurs de supprimer un enregistrement et ses pièces jointes dans un record type Appian.

<div id="create-a-processmodel">
  ## Créer un ProcessModel
</div>

<Steps>
  <Step title="Créer un nouveau ProcessModel">
    1. Ouvrez l’application ABBYYFlexiCapture dans Appian Designer et cliquez sur **New → ProcessModel**.
    2. Dans la boîte de dialogue qui s’ouvre, renseignez le champ **Name** et indiquez le chemin du dossier dans lequel le processus doit être enregistré.
    3. Cliquez sur **Create & Edit**.
  </Step>

  <Step title="Supprimer les nœuds inutilisés">
    Modifiez la configuration du processus en supprimant les nœuds suivants dans l’onglet **Process Modeler** :

    * **Start Event**
    * **End Event**
    * **XOR**
    * **Delete Folder**
    * **Delete Document**
    * **Delete from Data Store Entities**

    <Note>
      Vous pouvez également double-cliquer sur un nœud pour le modifier.
    </Note>
  </Step>

  <Step title="Créer une interface de confirmation">
    1. Revenez à **Appian Designer** pour ajouter une boîte de dialogue demandant à l’utilisateur de confirmer la suppression de l’enregistrement.
    2. Cliquez sur **New → Interface** et indiquez un nom pour l’interface.
    3. Cliquez sur **Create & Edit**.
  </Step>

  <Step title="Ajouter l’expression de confirmation">
    Dans l’éditeur de code qui s’ouvre, passez de **Design View** à **Expression View** et collez l’expression suivante :

    ```text theme={null}
    =a!formLayout(
        label: "Delete?",
        firstColumnContents: {
            a!paragraphField(
                labelPosition: "COLLAPSED",
                readOnly: true,
                value: "Submitting this form will delete your record and its attachments. The data will no longer exist or be visible in Tempo. After deletion, it is recommended to return to the records list, as this record will become unavailable."
            )
        },
        buttons: a!buttonLayout(
            primaryButtons: {
                a!buttonWidgetSubmit(
                    label: "Delete",
                    style: "PRIMARY"
                )
            },
            secondaryButtons: {
                a!buttonWidgetSubmit(
                    label: "Cancel",
                    style: "NORMAL",
                    value: true,
                    saveInto: ri!cancel,
                    skipValidation: true
                )
            }
        )
    )
    ```
  </Step>

  <Step title="Ajouter la variable d’entrée cancel">
    Dans la boîte de dialogue **Interface Input**, ajoutez une variable `cancel` de type **Boolean**.
  </Step>

  <Step title="Ajouter les variables du modèle de processus">
    1. Enregistrez l’interface et revenez à l’édition du modèle de processus.
    2. Cliquez sur **File → Properties** et ajoutez les variables suivantes dans l’onglet **Variables** :
       * `recordId` de type **Number** (Entier)
       * `DataStoreEntity` de type **Data Store Entity** (une constante reliant le magasin de données au type de données)
  </Step>

  <Step title="Associer l’interface de confirmation">
    1. Ouvrez l’onglet **Process Start Form**, sélectionnez l’option **Select an interface**, puis ajoutez l’interface que vous avez créée pour demander à l’utilisateur de confirmer la suppression d’un enregistrement.
    2. Dans la boîte de dialogue qui s’ouvre, cliquez sur **Yes** pour importer les variables de l’interface dans la liste des variables du processus.

    Vous pouvez ensuite utiliser les variables ajoutées dans les nœuds du processus :

    | Nœud                                | Description                                                                                                                                                                                                                                                                                                             |
    | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Cancel (XOR)**                    | Dirige le flow selon le choix de l’utilisateur. Si l’utilisateur clique sur **Cancel**, le flow va vers le nœud **End Event** ; sinon, il va vers le nœud **Delete Doc?**.                                                                                                                                              |
    | **Delete Doc?**                     | Vérifie si le dossier lié à l’enregistrement en cours de suppression contient des documents, à l’aide de la condition `=length(folder(pv!recordId, "documentChildren")) > 0;`. Si le dossier est vide, il est supprimé ; sinon, les documents du dossier sont d’abord supprimés, puis le dossier lui-même est supprimé. |
    | **Delete Document**                 | Supprime tous les documents qu’il reçoit en entrée. La méthode `folder` renvoie la liste des documents avec le paramètre `documentChildren` : `=folder(pv!recordId, "documentChildren")`.                                                                                                                               |
    | **Delete Folder**                   | Supprime un dossier à partir de son identifiant : `=pv!recordId`.                                                                                                                                                                                                                                                       |
    | **Delete from Data Store Entities** | Supprime des enregistrements du magasin de données. Le nœud reçoit la constante qui relie le magasin de données, le type de données (de type personnalisé Table) et l’ID de l’enregistrement : `={{entity: pv!DataStoreEntity, identifiers: pv!recordId}}`.                                                             |
  </Step>

  <Step title="Enregistrer et publier le processus">
    Une fois la configuration du processus terminée, cliquez sur **File → Save & Publish** ou appuyez sur **Ctrl+Alt+S**.
  </Step>
</Steps>

<div id="add-the-process-model-to-a-record-type">
  ## Ajouter le modèle de processus à un record type
</div>

Ajoutez le processus au record type en tant qu’action associée.

<Steps>
  <Step title="Ouvrir le record type">
    Dans Appian Designer, ouvrez **Record Type**.
  </Step>

  <Step title="Créer une action associée">
    1. Dans la boîte de dialogue qui s’ouvre, cliquez sur **New Related Action**.
    2. Renseignez le champ **ProcessModel** (saisissez le nom du processus que vous avez créé).
    3. Spécifiez les variables d’entrée du processus :
       * Pour **Credit Card Application** : `Constant_CreditApplication_DSE`
       * Pour **Account Payable Records** : `Constant_invoiceProcessing_DSE`
  </Step>

  <Step title="Ajouter l’action associée à la vue de l’enregistrement">
    Ajoutez la nouvelle action associée à la **View Record Type** appropriée.
  </Step>
</Steps>

Désormais, lorsque des enregistrements sont affichés dans l’onglet **Résumé** de Tempo, un bouton **Delete** apparaît en haut. Lorsque l’utilisateur clique sur ce bouton, une boîte de dialogue de confirmation lui demande s’il souhaite vraiment supprimer l’enregistrement. En cliquant sur **Yes** dans cette boîte de dialogue, l’enregistrement est supprimé.

<Note>
  L’utilisateur doit actualiser la fenêtre du navigateur pour vérifier que l’enregistrement a bien été complètement supprimé.
</Note>

<div id="disable-the-delete-action-in-the-summary-view">
  ## Désactiver l’action Delete dans Summary View
</div>

Pour empêcher l’utilisateur d’accéder au bouton de suppression, désactivez l’action **Delete** dans les propriétés de **Summary View**.

<Steps>
  <Step title="Ouvrir l’application">
    Ouvrez l’application ABBYYFlexiCapture dans Appian Designer.
  </Step>

  <Step title="Ouvrir le record type">
    Ouvrez le record type que vous souhaitez modifier.
  </Step>

  <Step title="Désactiver le raccourci de l’action associée">
    Dans la boîte de dialogue qui s’ouvre, cliquez sur **Summary View** et désactivez l’option **Related Action Shortcuts** à côté de l’action **Delete**.
  </Step>

  <Step title="Enregistrer les modifications">
    Cliquez sur **OK**, puis enregistrez les modifications apportées au record type.
  </Step>
</Steps>

Désormais, lorsque les records sont affichés dans Tempo, le bouton **Delete** n’apparaît plus.
