機能の説明:
ワークフローのステップをコピーして貼り付けた場合、ステップ名を保持します。
これにより、他のワークフローからコピーしたコンテンツを使用する際の作業が軽減されます。
現在の動作:
新しい"ワークフロー"コアプラグインを使用している際、別のワークフローや同じワークフロー内の他の部分で実施したのと同様の処理を定期的に実装する必要があることに気づきました。幸いにも、このプラグインはステップのコピーと貼り付けをサポートしています。
残念ながら、貼り付け時にステップ名はデフォルトにリセットされます。ステップの機能を明確に伝えるために、カスタムステップ名を使用するのが好みです。そのため、貼り付け操作の後に追加された各ステップの名前を再設定する必要があります。また、ステップ名は後続のステップでその出力を参照するために使用される識別子(例: $("Foo step").first().json.bar)であるため、これによりワークフローにエラーが導入されるリスクがあります。
再現手順:
- 新しい"ワークフロー"プラグインが有効なサイトにおいて、管理者権限を持つDiscourseフォーラムアカウントにログインします。
- "ワークフロー"ページ(
/admin/plugins/discourse-workflows/workflows)を開きます。 - "+ 新しいワークフロー"ボタンをクリックします。
新しいワークフローが作成されます。 - **+**ボタンをクリックします。
"ステップの追加"パネルが開きます。 - パネルからフロー > Ifを選択します。
ⓘ この特定のステップタイプは任意に選択しました。名前のリセット動作は、すべてのステップタイプで発生します。 - 新しく追加された"If"ステップをダブルクリックします。
ステップの設定ダイアログが開きます。 - ダイアログの左上付近、ステップ名の右側にある鉛筆アイコン(“編集”)をクリックします。
ステップ名が編集可能なテキストフィールドになります。 - ステップ名フィールドに
Foo stepと入力します。 - フィールドの右側にある**✓**アイコンをクリックします。
名前の変更が確定されます。 - ダイアログの右上隅にあるXアイコンをクリックします。
ダイアログが閉じます。 - "Foo step"ステップを右クリックします。
コンテキストメニューが開きます。 - メニューから"コピー"を選択します。
- ページの上部付近にある"ワークフロー"タブを選択します。
"ワークフロー"ページが開きます。 - "+ 新しいワークフロー"ボタンをクリックします。
新しいワークフローが作成されます。 - ワークフローキャンバスを右クリックします。
コンテキストメニューが開きます。 - メニューから"貼り付け"を選択します。
貼り付けられたステップはデフォルト名"If"を持っています。
Discourseのバージョン:
1a47bbf0af779342d6762eadb6da07f9ecf68717
追加のコンテキスト:
ステップが元のワークフローに貼り付けられる場合に、ステップ名をそのまま保持すると名前衝突が発生することはお理解いただいていると思います。ワークフロープラグインは、通常ステップを追加する際に、衝突する可能性のあるステップ名に数値サフィックスを追加することで、一意の名前を確保しています。このアプローチを貼り付け機能にも採用できます。あるいは、ユーザーがステップで一意でない名を手動で設定した際に行われているように、衝突についてユーザーに通知するダイアログを表示するだけでも構いません。
エラーが発生しました:ノード名はワークフロー内で一意である必要があります。重複: Foo step