1

SOAP APIを使用して、SugarCRMに新しいリードを追加します。さらに、プラグインを使用して、新しいリードが作成されるたびに自動インクリメントされたリードIDを割り当てます(http://www.sugarforge.org/projects/autoincrement/)。

これで、フロントエンドを介して新しいリードを作成すると、プラグインは正常に機能します。ただし、SOAP APIを使用すると、自動インクリメントIDをリードに割り当てるモジュールの関数がトリガーされません。

を介してリードを作成します

    $module = 'Leads'; 

    $params = array(
        'session'           =>  $session,
        'module_name'       =>  $module,
        'name_value_list'   =>  array(
            array('name' => 'id',               'value' => ''),
            //array('name' => 'int_lead_id_c',  'value' => ''),             
            array('name' => 'first_name',       'value' => $_POST["first_name"]),
            array('name' => 'last_name',        'value' => $_POST["last_name"]),
            array('name' => 'phone_home',       'value' => $_POST["phone"]),
            array('name' => 'email1',           'value' => $_POST["email"]),
            array('name' => 'assigned_user_id', 'value' => '1'),
            )
        );  

    //Create the Lead record
    $lead_result = $soapclient->call('set_entry', $params);

モジュールの機能は次のとおりです。

class SugarFieldAutoincrement extends SugarFieldBase {

    /**
     * Override the SugarFieldBase::save() function to implement the logic to get the next autoincrement value
     * and format the saved value based on the attributes defined for the field.
     *
     * @param SugarBean bean - the bean performing the save
     * @param array params - an array of paramester relevant to the save, most likely will be $_REQUEST
     * @param string field - the name of the field
     */
    public function save(&$bean, $params, $field, $properties, $prefix = '') {
    }
}

SOAP APIを介してリードを追加するときに、この関数もトリガーされることを確認するにはどうすればよいですか?

あなたの助けをどうもありがとう!:-)

デビッド

4

3 に答える 3

1

フィールドのvardefレコードで、フィールドタイプを「autoincrement」に設定し、dbTypeを「int」に設定する必要があります。

于 2012-08-15T19:52:38.760 に答える
0

私が間違っていなければ、データベースにはほとんどのテーブルの挿入時にUUID()トリガーがあるため、idフィールドを完全に削除できるはずです。

于 2012-08-14T19:51:41.657 に答える
0

保存する前に関数をトリガーする場合は、beforeSaveロジックフックを使用できます。

于 2012-08-21T12:10:02.560 に答える