0

リードに before save ロジック フックがあるとします。これが呼び出されたロジック フックであるかどうかを検出する方法は次のとおりです。

  • リードフォームを保存している CRM ユーザー
  • エントリーポイントのオンから獲得されたリードです
  • ソープコールによってトリガーされる保存です
  • リード項目を変更するワークフローです
  • csv インポートのために呼び出されます
  • ...

いくつかの動作を確認しましたが、ワークフローでロジック フックが呼び出されていないようです (少なくとも私のテストでは)。
また、グローバル変数でこの問題を解決したいと考えていますが、グローバル変数がたくさんあります。
では、ロジックフックの呼び出し元を検出するにはどうすればよいですか?

4

2 に答える 2

0

それが私が最終的にやったことです。他の人に役立つように、私の観察結果の一部を共有します(これらは、いくつかが当てはまる場合に基づいた声明です)

  • サード パーティのエントリ ポイント呼び出し$_SESSIONでは空ですが、直接エントリ ポイント呼び出しではそうではありません。また、残りの通話セッションは空ではありません。
  • 残りの呼び出しにはありますが$_REQUEST[rest_data]、他の呼び出しにはありません。
  • エントリーポイント呼び出しは$_REQUEST[entryPoint]配列で利用可能です
  • global$current_userは使用できますが、id var ( $current_user->id) は、ユーザーが crm でフォームを送信する場合にのみ文字列になります。
  • インライン編集$_REQUEST[action]では等しいsaveHTMLField
  • ユーザー呼び出し$_SERVER[HTTP_USER_AGENT]では利用できますが、他の呼び出しでは利用できません。

単純なケースでは、次のコードはユーザー呼び出しを検出する方法を示しています。

$trigger = false;
global $current_user;
if (!isset($current_user->id) || !strlen($current_user->id) > 2)
    $trigger = true;
if ($trigger) {
    //#My Custome Code
}
于 2015-11-12T19:49:34.540 に答える
0

これを理解するために私が見つけた最良の方法は、次を追加することです:

$GLOBALS['log']->fatal(print_r($_REQUEST,true));

あなたのロジックフックに。次に、考慮する必要がある各シナリオをテストし、要求がどのように異なるかを確認します。$_SESSION も確認してください。ロジックに依存できるものをいくつか見つけることができます。

于 2015-11-12T17:57:55.493 に答える