BotFramework .NET SDK、v4
検証ルールが失敗すると、InputDialog の再試行ロジックがトリガーされることを理解しています。例えば。ユーザーが NumberInput に数値以外の値を入力したか、ダイアログで定義された検証式が失敗しました。
私のシナリオ (アダプティブ ダイアログ) では、ユーザー入力を外部 API 呼び出しに対して検証する必要があり、検証が失敗した場合、ユーザーは値を再入力する必要があります。質問は、Bot Framework .NET SDK のネイティブな方法で再試行を実装し、外部 API 呼び出しを介して行われた検証で最大再試行回数を超えたときにダイアログを終了する方法は何ですか?
これまでのところ、この動作を実装しようとしています ステップ 1. MaxTurnCount = 2 および AlwaysPrompt = true の TextInput ダイアログと DefaultValueResponse ステップ 2. 会話状態にキーを設定する CodeAction ステップ 3. IfCondition、会話状態をチェックし、GoToAction を実行します
この設定では、GoToActionを2回実行してもDefaultValueResponseが表示されません。
私が理解しているように、GoToAction は新しいダイアログを作成し、以前に作成したダイアログを再利用しません。そのため、InputDialog に格納されている turnCount 変数は、新しいダイアログが作成されるたびにリセットされます。