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

> Descripción de cómo usar la herramienta de migración de Rules en el Auth0 Dashboard

# Herramienta de migración

Simplifique el proceso de migración de Rules a Actions con la herramienta de migración de Rules en el [Auth0 Dashboard](https://manage.auth0.com/). Además de facilitar el cambio de una Rule a una Action, la nueva herramienta también ofrece orientación integrada y correcciones para patrones comunes de Rules.

<div id="before-migration">
  ## Antes de la migración
</div>

Antes de iniciar la migración, consulta [Migrar de Rules a Actions](/es/docs/customize/actions/migrate/migrate-from-rules-to-actions). Esta guía de migración es un recurso excelente para entender las diferencias entre Rules y Actions y te ayudará durante el proceso de migración.

<div id="rule-migration-order">
  ### Orden de migración de Rules
</div>

Las Rules se ejecutan antes que las Actions, lo que implica que deben migrarse en orden inverso al de ejecución. Migre la última Rule que se ejecuta en su flujo actual y continúe hasta la primera Rule en orden cronológico inverso.

No migrarlas en este orden puede provocar errores debido a efectos secundarios imprevistos causados por dependencias en el orden de las Rules y las Actions.

<div id="safely-rolling-back">
  ### Revertir cambios de forma segura
</div>

La herramienta de migración le permite revertir los cambios de forma segura y sencilla si algo sale mal. Vuelva a habilitar su Rule y omita la lógica de la Action correspondiente.

<div id="migrating-a-rule">
  ## Migrar una Rule
</div>

Para empezar a migrar tu Rule, selecciona **Auth Pipeline > Rules**. Una vez que la selecciones, tus Rules aparecerán con una opción para migrar cada una de ellas individualmente.

<Frame>
  <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=97866d7b3b420e0abc35f57f9b481a3b" alt="" width="2026" height="842" data-path="docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  La migración solo comienza cuando eliges Migrate to Action. Como desarrollador, puedes elegir cuándo activar la nueva Action.
</Callout>

<div id="migrate-to-action">
  ### Migrar a Action
</div>

Después de seleccionar **Migrate to Action**, la herramienta le solicita que cree una nueva Action.

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=e999d4b305e23999ae748272cc2974f2" alt="" width="2106" height="1292" data-path="docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png" />
</Frame>

Después de seleccionar **Create,** se crea la nueva Action y se muestra el editor de Actions.

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=fb69cbfcec64169a5cf374fae04f6813" alt="" width="2024" height="1508" data-path="docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png" />
</Frame>

Si la Rule se migra a Actions y sigue activa, la Rule finaliza antes de que se ejecute la lógica.

Esto funciona mediante una llamada a `api.rules.wasExecuted()`. Si la función `wasExecuted` recibe una cadena que contiene el id de la Rule, devuelve `true` si la Rule ya se ejecutó (y, en caso contrario, devuelve `false`).

Esta es una herramienta útil para evitar que la lógica se ejecute dos veces. En cuanto deshabilite la Rule referenciada, la función devuelve `false` y la lógica de negocio pasa a ejecutarse en la Action.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  El valor del id de la Rule se completa automáticamente para cualquier Rule que se migre mediante la función **Migrate to Action**.
</Callout>

Para obtener más información sobre la función `api.rules.wasExecuted()`, consulte [Actions Triggers: post-login - API Object](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object).

<div id="rewrite-rule-code">
  ## Reescriba el código de la Rule
</div>

Seleccione el botón **Rules** en el editor de Actions para cargar la herramienta de migración de Rules. Allí, puede consultar rápidamente el código de la Rule migrada. Debe revisar el código de la Rule seleccionada en la barra lateral.

Copie el contenido de la función de la Rule y péguelo debajo del comentario `// YOUR CODE HERE` en la Action. Es probable que este código no esté adaptado al modelo de programación de Actions.

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=9dc49cde0010d7193fb079bfd09d196a" alt="" width="2012" height="1486" data-path="docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png" />
</Frame>

El editor de Actions proporciona indicaciones sobre dónde debe refactorizarse el código. El editor también ofrece sugerencias sobre cómo corregir automáticamente la mayoría de los casos; para revisar la sugerencia o la corrección, pase el cursor sobre el código subrayado:

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=b13e8eea9cf22810417cb04ac268ebe1" alt="" width="1998" height="1476" data-path="docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png" />
</Frame>

Es posible que pueda aplicar actualizaciones específicas de la Action seleccionando una opción en la ventana modal **Quick Fix**.

<Frame>
  <img src="https://mintcdn.com/translations/xwVvTWJUElMm5YAK/docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png?fit=max&auto=format&n=xwVvTWJUElMm5YAK&q=85&s=745d3a882f413dcf45dd0f49180bb60a" alt="" width="2032" height="1508" data-path="docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png" />
</Frame>

Cuando seleccione la corrección recomendada, el código se actualizará automáticamente para que sea compatible.

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=05b52642db7731d9b895b4f848164fcb" alt="" width="2144" height="1588" data-path="docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png" />
</Frame>

Hay algunas situaciones en las que las correcciones no pueden aplicarse automáticamente, pero aun así se proporciona orientación:

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=61c38294dc7f88ec6a29c8c3e9d896ba" alt="" width="2194" height="1620" data-path="docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png" />
</Frame>

Por ejemplo, en el caso de la función `callback` de la Rule, se recomienda usar [`api.access.deny`](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/pre-user-registration-trigger/pre-user-registration-api-object) para los errores, o simplemente `return` en los casos exitosos.

<div id="test-the-new-action">
  ### Pruebe la nueva Action
</div>

Las Actions pueden probarse directamente en el editor, ya que esta es una parte esencial del proceso de migración. Para obtener más información, consulte [Probar Actions](/es/docs/customize/actions/test-actions).

<Warning>
  Le recomendamos encarecidamente que valide toda la lógica de migración en un inquilino de desarrollo antes de habilitarla en producción.
</Warning>

<div id="automatically-enabling-the-action">
  ### Habilitar automáticamente la Action
</div>

Cuando se actualice el código de la Action y esté listo para realizar el cambio:

1. Seleccione **Deploy**.
2. En la alerta de confirmación de la implementación, seleccione **Add to flow**.
3. Agregue la Action que acaba de crear al flujo y, a continuación, seleccione **Apply.**
4. Seleccione **Continue** **y deshabilite las Rules seleccionadas** para habilitar simultáneamente la nueva Action y deshabilitar la Rule original. Si aún no está listo, seleccione **Cancel** y podrá deshabilitar la Rule más adelante para activar la lógica de la Action migrada.

Para obtener más información sobre cómo agregar su Action al flujo, consulte [Crear su primera Action](/es/docs/customize/actions/write-your-first-action).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si vuelve a habilitar una Rule, se omitirá la lógica de la Action correspondiente.
</Callout>

<div id="migrate-remaining-rules">
  ## Migrar las Rules restantes
</div>

Este proceso se puede repetir para migrar cada Rule de tu flujo de inicio de sesión. Recuerda que las Rules deben migrarse en el orden inverso en que se ejecutan durante el flujo de inicio de sesión.
