> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5528-php-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 移行ツール

> Auth0 Dashboardでルール移行ツールを使用する方法について説明します。

[Auth0 Dashboard](https://manage.auth0.com/)のルール移行ツールを使用して、ルールからアクションへの移行プロセスを簡素化します。新しいツールは、ルールからアクションへの切り替えを簡単にするだけでなく、一般的なルールパターンについての組み込みのガイダンスや修正も提供しています。

## 移行前

移行を開始する前に、「[RulesからActionsに移行する](/docs/ja-jp/customize/actions/migrate/migrate-from-rules-to-actions)」をご覧ください。.この移行ガイドは、ルールとアクションの違いが説明されている優れたリソースであり、移行過程においても役立つツールです。

### ルールの移行順序

ルールはアクションの前に実行されるため、実行順序の逆にルールを移行する必要があります。既存のフローで最後に実行するルールを移行し、最初のルールまで時系列を遡って移行していきます。

この順序で移行を行わないと、ルールとアクションの順序における依存関係によって予期せぬ結果が生じ、エラーが発生する可能性があります。

### 安全なロールバック

移行ツールを使うと、何か問題が発生した場合に、安全かつ簡単にロールバックすることができます。ルールを再有効化すると、対応するアクションロジックがスキップされます。

## ルールの移行

ルールの移行を開始するには、 **［Auth Pipeline（Authパイプライン）］>［Rules（ルール）］** を選択します。選択すると、ルールとそれらを個別に移行するオプションが提供されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/rHkjXZOPRjbdm_ng/docs/images/ja-jp/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png?fit=max&auto=format&n=rHkjXZOPRjbdm_ng&q=85&s=2826d19fae6ea19b65bce3ec6b2be1e8" alt="" width="2026" height="842" data-path="docs/images/ja-jp/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  移行は［Migrate to Action（アクションに移行）］を選択するまで開始されません。新しいアクションを有効化するタイミングは、開発者が選択ができます。
</Callout>

### アクションへの移行

**［Migrate to Action（アクションへの移行）］** を選択すると、新しいアクションの作成が求められます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/BPQny5Q2lnPFhDgT/docs/images/ja-jp/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png?fit=max&auto=format&n=BPQny5Q2lnPFhDgT&q=85&s=471bec54fd2bb52ee30e1a1666dd89dc" alt="" width="2106" height="1292" data-path="docs/images/ja-jp/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png" />
</Frame>

**［Create（作成）］** を選択すると、新しいアクションが作成され、Actions Editor（アクションエディター）が表示されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/IiflUvRH4Z-Q_gUv/docs/images/ja-jp/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png?fit=max&auto=format&n=IiflUvRH4Z-Q_gUv&q=85&s=2b6302cf4fc708818aff6b63dcf28617" alt="" width="2024" height="1508" data-path="docs/images/ja-jp/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png" />
</Frame>

ルールがアクションに移行され、アクティブのままになっていると、ルールはロジックが実行される前に終了します。

これは、`api.rules.wasExecuted()`を呼び出すことで実行されます。`wasExecuted`関数がルールIDを含む文字列を使用する場合、そのルールがすでに実行されていると`true`が返され、実行されていないと`false`が返されます。

これは、ロジックが2回実行されるのを防ぐのに役立つツールです。参照されたルールを無効にすると、即座にこの関数が`false`を返し、ビジネスロジックがアクションで実行されるようになります。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  ルールIDの値は、 **［Migrate to Action（アクションに移行）］** 機能を使って移行したルールでは自動的に指定されます。
</Callout>

`api.rules.wasExecuted()` 関数の詳細については、「[アクショントリガー: post-login - APIオブジェクト](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object)」を参照してください。

## ルールのコードを書き換える

Actions Editor（アクションエディター）で **［Rules（ルール）］** ボタンを選択して、ルール移行ツールを読み込みます。ここで、移行されたルールのコードをすぐに参照することができます。サイドバーで選択したルールのコードを確認してください。

ルール関数の内容をコピーして、アクション内の「`// YOUR CODE HERE`」コメントの下に貼り付けます。おそらく、このコードはアクションのプログラミングモデルに適合しません。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/AGJKQ70LznL5pcXe/docs/images/ja-jp/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png?fit=max&auto=format&n=AGJKQ70LznL5pcXe&q=85&s=123b0f1970ab0c6657f7ab278030f3ca" alt="" width="2012" height="1486" data-path="docs/images/ja-jp/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png" />
</Frame>

Actions Editor（アクションエディター）は、コードのリファクタリングが必要な箇所のフィードバックを表示します。また、ほとんどの状況で、自動修正の方法が提案されます。提案の確認や修正を行うには、下線のあるコードの上にカーソルを置きます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/edu3KASxfgCs4dqF/docs/images/ja-jp/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png?fit=max&auto=format&n=edu3KASxfgCs4dqF&q=85&s=8c60e17f8f51e78aaa981f8b86564ac7" alt="" width="1998" height="1476" data-path="docs/images/ja-jp/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png" />
</Frame>

**Quick Fix（クイック修正）** モーダルからオプションを選択すると、アクション特定の更新を適用できることがあります。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/Be4EJ-Q7VlEN21F7/docs/images/ja-jp/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png?fit=max&auto=format&n=Be4EJ-Q7VlEN21F7&q=85&s=02f2d08baa7c749989538242170af264" alt="" width="2032" height="1508" data-path="docs/images/ja-jp/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png" />
</Frame>

推奨の修正を選択すると、コードが互換性のあるものに自動更新されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/BPQny5Q2lnPFhDgT/docs/images/ja-jp/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png?fit=max&auto=format&n=BPQny5Q2lnPFhDgT&q=85&s=f77ff983684fcc71044b8fc00a161e9b" alt="" width="2144" height="1588" data-path="docs/images/ja-jp/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png" />
</Frame>

自動的に修正を適用できない場合もありますが、その場合でもガイダンスが提供されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5528-php-updates/GIkdxZNhwwEDAWNV/docs/images/ja-jp/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png?fit=max&auto=format&n=GIkdxZNhwwEDAWNV&q=85&s=dc08f26f3b8b355aba1f75aa91df9a48" alt="" width="2194" height="1620" data-path="docs/images/ja-jp/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png" />
</Frame>

たとえば、ルールの`callback`関数の場合、エラーには[`api.access.deny`](https://auth0.com/docs/customize/actions/flows-and-triggers/pre-user-registration-flow/api-object)、正常処理には`return`の使用が推奨されます。

### 新しいアクションをテストする

アクションは移行過程の重要な一部であるため、エディターで直接テストすることができます。詳細については、「[アクションをテストする](/docs/ja-jp/customize/actions/test-actions)」を参照してください。

<Warning>
  運用環境で移行ロジックを有効にする際には、まず開発テナントのすべての移行ロジックを検証することを強くお勧めします。
</Warning>

### アクションを自動的に有効化する

アクションコードが更新され、切り替えの準備ができたら、以下を行います。

1. **［Deploy（導入）］** を選択します。
2. 導入を確認するアラートが表示されたら、 **［Add to flow（フローに追加）］** を選択します。
3. 新しく作成したアクションをフローに追加し、 **［Apply（適用）］** を選択します。
4. **［Continue（続行）］** を選択して、 **選択されたルールを無効化** し、新しいアクションを有効にすると同時に元のルールを無効にします。準備が整っていない場合は **［Cancel（キャンセル）］** を選択して、ルールの無効化と移行したアクションロジックの有効化を後で行うことができます。

フローにアクションを追加する方法については、「[初めてアクションを作成する](/docs/ja-jp/customize/actions/write-your-first-action)」を参照してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  ルールを再有効化すると、対応するアクションロジックがスキップされます。
</Callout>

## 残りのルールを移行する

このプロセスを繰り返すことで、ログインフローにあるルールをそれぞれ移行することができます。ルールは、ログインフローで実行される順序とは逆の順序で移行する必要があることを忘れないでください。
