web-dev-qa-db-ja.com

プロフィールフィールドに値が含まれている場合にメールを送信しようとすると、ルールエラーの原因は何ですか?

D7サイトで Rules および Profile2 を使用しています。

次のルールのロジックを確認するためのヘルプを探しています。私はそれを機能させることができず、どこが間違っているのかわかりません。

Event:新しいプロファイルを保存した後

条件:データ比較->選択したデータ:site:current-user:profile-main:field-become-a-distributor

アクション:電子メールを送信

状態は壊れるものです。これが私のエラーログにあるものです:

変数またはパラメーターデータのデータ値を取得できません。エラー:親データ構造が設定されていないため、データプロパティfield_become_a_distributorを取得できません。

2
astanley86

あなたの質問は少し不可解ですが、ここにあなたのエラーを引き起こしているかもしれないもののいくつかのヒントがあります:

  • トークンsite:current-user:...ルール条件で使用しているのは、使用する正しいトークンではない可能性があります。例えば。使用しているルールイベントをトリガーしている(スーパー)管理者(user/1など)を考えてください(ただし、user/1とは異なるアカウントの場合)...このシナリオでは、ルール条件はフィールドを参照します... user/1に関連しています(ルールイベントをトリガーしたアカウントではありません)。
  • ルール条件でそのトークンにアクセスしようとしていますが、その値が使用可能であることを確認しますか?これを確認するには、「エンティティにフィールドがあります」というルール条件をルール条件の前に置きます(新しいプロファイルが作成されるアカウント、およびルール条件で使用しようとしているフィールド)。
  • 上記のいずれのヒントでも問題が解決しない場合は、最初のルールアクションとして「IDでエンティティを取得」(作成するアカウントの場合)も実行する必要がある可能性があります。次に、これをルールコンポーネントの実行(「IDによるエンティティのフェッチ」によって返されるデータをパラメーターとする)と組み合わせます。一方、既存のルール条件を、そのルールコンポーネントの同等のルール条件と、既存のルールアクションで置き換えます。 (電子メールを送信するため)は、そのルールコンポーネントの同等のルールアクションにも移動しました。
0
Pierre.Vriens

データセレクターを使用するaccount:field-YourField

1
Mohammad Jolani