web-dev-qa-db-ja.com

ルールの実行後に予期しないワークフローの状態が変化する原因は何ですか?

ワークフローの状態を、編集時にノードを公開から非公開に変更し、ノードを非公開にします。私はこれにルールを使用しました:

  • 非公開の場合:

    enter image description here

  • 公開の場合:

    enter image description here

ノードを編集して保存すると、ワークフローの状態が Rules によって下書きに変わり、再び発行済みの状態に変わります。

enter image description here

トリガーを設定していません。

これを引き起こす原因を提案してください。

3
Anamika

オプション1

Rules はすばらしいですが、期待どおりに機能しない場合、デバッグが難しい場合もあります。以下でさらに詳しく説明するように、デバッグには通常2つの方法があります。

ルール評価ログ

ルール設定内で、ルールモジュールに付属するデバッグ機能を少し試します。少なくとも "Rules Evaluation Log"を見てください(ルールロジックが実行され、実際にはそのロジックが期待するものと一致します。

値を表示するルールアクション(develを使用)

[一時的)[値の表示]などのルールアクションを追加できるように、[一時的) Devel モジュールを有効にすることもできます。

明らかに、ルールアクションの実行を妨げるルール条件がないことを確認します(必要に応じて、そのようなルール条件を一時的に削除します)。

より詳しい情報

これら2つのバリエーションの詳細については、 Rulesdebuggingに進んでください。 「 条件内の変数の値をどのように表示できますか? 」。

オプション2

Conditional Rules モジュールを使用して、2つのルールを1つのルールに統合してみてください。このモジュールを使用すると、ルールアクション内でルール条件を使用できます。したがって、両方のケースに当てはまる適切なルールイベントを考えることができる場合、 Conditional Rules toルールアクションのいずれか(両方ではない)をトリガーします。

2
Pierre.Vriens

問題が発生したかどうかはわかりませんが、私の理解に基づいたいくつかのヒントがあります

  • 公開アクションを含むルールが最後に呼び出された場合にルールが呼び出される順序を確認してください。いずれにしてもノードは公開されます。
  • ノードを非公開にするためのルールのイベントは「ドキュメントタイプのコンテンツを保存する前」です。これを変更して、ドキュメントタイプの既存のコンテンツの更新を更新して、事前保存フックの最中および後にトリガーされる場所がないことを確認できます。
0
arpitr