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

# Agregar un botón Delete para eliminar Record

> Agregue un botón Delete a un tipo de registro de Appian creando un ProcessModel de eliminación, adjuntándolo como acción relacionada y, opcionalmente, deshabilitándolo en la Summary view.

Puede agregar un botón **Delete** para que los usuarios eliminen un Record y sus archivos adjuntos de un tipo de registro de Appian.

<div id="create-a-processmodel">
  ## Crear un ProcessModel
</div>

<Steps>
  <Step title="Crear un nuevo ProcessModel">
    1. Abra la aplicación ABBYYFlexiCapture en Appian Designer y haga clic en **New → ProcessModel**.
    2. En el cuadro de diálogo que se abre, complete el campo **Name** y especifique la ruta de la carpeta donde se guardará el proceso.
    3. Haga clic en **Create & Edit**.
  </Step>

  <Step title="Eliminar los nodos no utilizados">
    Modifique la configuración del proceso eliminando los siguientes nodos en la pestaña **Process Modeler**:

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

    <Note>
      También puede modificar un nodo haciendo doble clic en él.
    </Note>
  </Step>

  <Step title="Crear una interfaz de confirmación">
    1. Vuelva a **Appian Designer** para agregar un cuadro de diálogo que solicite al usuario confirmar la eliminación del Record.
    2. Haga clic en **New → Interface** y especifique un nombre para la interfaz.
    3. Haga clic en **Create & Edit**.
  </Step>

  <Step title="Agregar la expresión de confirmación">
    En el editor de código que se abre, cambie de **Design View** a **Expression View** y pegue la siguiente expresión:

    ```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="Agregar la variable de entrada cancel">
    En el cuadro de diálogo **Interface Input**, agregue una variable `cancel` de tipo **Boolean**.
  </Step>

  <Step title="Agregar las variables del modelo de proceso">
    1. Guarde la interfaz y vuelva a editar el modelo de proceso.
    2. Haga clic en **File → Properties** y agregue las siguientes variables en la pestaña **Variables**:
       * `recordId` de tipo **Number** (Integer)
       * `DataStoreEntity` de tipo **Data Store Entity** (una constante que vincula el data store con el tipo de datos)
  </Step>

  <Step title="Adjuntar la interfaz de confirmación">
    1. Abra la pestaña **Process Start Form**, seleccione la opción **Select an interface** y agregue la interfaz que creó para solicitar la confirmación del usuario al eliminar un Record.
    2. En el cuadro de diálogo que se abre, haga clic en **Yes** para importar las variables de la interfaz a la lista de variables del proceso.

    A continuación, puede usar las variables agregadas en los nodos del proceso:

    | Nodo                                | Descripción                                                                                                                                                                                                                                                                                              |
    | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Cancel (XOR)**                    | Enruta el flujo según la elección del usuario. Si el usuario hace clic en **Cancel**, el flujo va al nodo **End Event**; de lo contrario, va al nodo **Delete Doc?**.                                                                                                                                    |
    | **Delete Doc?**                     | Comprueba si la carpeta vinculada al Record que se va a eliminar contiene documentos mediante la condición `=length(folder(pv!recordId, "documentChildren")) > 0;`. Si la carpeta está vacía, se elimina; de lo contrario, primero se eliminan los documentos de la carpeta y después la propia carpeta. |
    | **Delete Document**                 | Elimina todos los documentos que recibe como entrada. El método `folder` devuelve la lista de documentos con el parámetro `documentChildren`: `=folder(pv!recordId, "documentChildren")`.                                                                                                                |
    | **Delete Folder**                   | Elimina una carpeta según su identificador: `=pv!recordId`.                                                                                                                                                                                                                                              |
    | **Delete from Data Store Entities** | Elimina Records del data store. El nodo recibe la constante que vincula el data store, el tipo de datos (del tipo personalizado Table) y el ID del Record: `={{entity: pv!DataStoreEntity, identifiers: pv!recordId}}`.                                                                                  |
  </Step>

  <Step title="Guardar y publicar el proceso">
    Cuando termine de configurar el proceso, haga clic en **File → Save & Publish** o presione **Ctrl+Alt+S**.
  </Step>
</Steps>

<div id="add-the-process-model-to-a-record-type">
  ## Agregue el modelo de proceso a un tipo de registro
</div>

Agregue el proceso al tipo de registro como una acción relacionada.

<Steps>
  <Step title="Abra el tipo de registro">
    En Appian Designer, abra **Record Type**.
  </Step>

  <Step title="Cree una acción relacionada">
    1. En el cuadro de diálogo que se abre, haga clic en **New Related Action**.
    2. Complete el campo **ProcessModel** (introduzca el nombre del proceso que creó).
    3. Especifique las variables de entrada del proceso:
       * Para **Credit Card Application**: `Constant_CreditApplication_DSE`
       * Para **Account Payable Records**: `Constant_invoiceProcessing_DSE`
  </Step>

  <Step title="Agregue la acción relacionada a la vista de Record">
    Agregue la nueva acción relacionada a la **View Record Type** correspondiente.
  </Step>
</Steps>

Ahora, al ver Records en la pestaña **Summary** de Tempo, aparece un botón **Delete** en la parte superior. Cuando el usuario hace clic en este botón, un cuadro de diálogo de confirmación le pregunta si realmente desea eliminar el Record. Al hacer clic en **Sí** en este cuadro de diálogo, se elimina el Record.

<Note>
  El usuario debe actualizar la ventana del navegador para confirmar que el Record se haya eliminado por completo.
</Note>

<div id="disable-the-delete-action-in-the-summary-view">
  ## Deshabilitar la acción Delete en Summary View
</div>

Para que el botón de eliminación no esté disponible para el usuario, deshabilite la acción **Delete** en las propiedades de **Summary View**.

<Steps>
  <Step title="Abrir la aplicación">
    Abra la aplicación ABBYYFlexiCapture en Appian Designer.
  </Step>

  <Step title="Abrir el tipo de registro">
    Abra el tipo de registro que desea modificar.
  </Step>

  <Step title="Deshabilitar el acceso directo de la acción relacionada">
    En el cuadro de diálogo que se abre, haga clic en **Summary View** y deshabilite la opción **Related Action Shortcuts** junto a la acción **Delete**.
  </Step>

  <Step title="Guardar los cambios">
    Haga clic en **OK** y guarde los cambios realizados en el tipo de registro.
  </Step>
</Steps>

Ahora, cuando se visualicen los registros en Tempo, el botón **Delete** ya no aparecerá.
