将目标直接转换为SugarCRM中的帐户

时间:2014-02-26 10:22:50

标签: target sugarcrm account

无论如何将目标直接转换为帐户?

我知道这个过程是将Target转换为Leads,然后只将Lead转换为Account。 但是有些商家的逻辑发生了变化,当用户在帐户详细信息页面中时,他们总能看到Campaign活动子面板上的Campaign活动。

如何绕过转化并将帐户关联到目标?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,让我们了解它目前是如何运作的。 /modules/Prospects/metadata/detailviewdefs.php包含Prospect(Target)详细信息视图的定义,包括“Convert Target”按钮。按钮以这种方式定义:

array(
  'customCode' => '<input title="{$MOD.LBL_CONVERT_BUTTON_TITLE}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';" type="submit" name="CONVERT_LEAD_BTN" value="{$MOD.LBL_CONVERT_BUTTON_LABEL}"/>',
  'sugar_html' => array(
    'type' => 'submit',
    'value' => '{$MOD.LBL_CONVERT_BUTTON_LABEL}',
    'htmlOptions' => array(
      'class' => 'button',
      'name' => 'CONVERT_LEAD_BTN',
      'id' => 'convert_target_button',
      'title' => '{$MOD.LBL_CONVERT_BUTTON_TITLE}',
      'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';',
    ),
  )
),

请注意,第一个数组参数customCode在6.5和转发中已弃用,因此不必担心。专注于sugar_html,特别是onclick定义。这是定义form.module.value和form.action.value的值。假设我们不是填充新的Lead的EditView,而是将其提供给自定义操作?

(顺便说一句,您可能会注意到,在生成的表单中,onclick属性被大量转换,使得“this.form”转换为类似var _form = document.form; _form.return_module=\'yada yada\'的东西 - 只要你这没关系坚持惯例。)

不要修改/ modules / 中的任何内容而是从SugarCRM目录的根目录,您可以cp --parents modules/Prospects/metadata/detailviewdefs.php custom创建路径和文件/ custom / modules / Prospects /元/ detailviewdefs.php。深入研究并修改该按钮,以便onclick参数读取如下内容:

'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Accounts\';this.form.action.value=\'CustomAccountCreator\';',

我已将模块和操作值调整为指向“帐户”而不是“潜在客户”,以及我们将要创建的名为“CustomAccountCreator”的新操作。下一步是创建该操作。这样做的老学校(不那么最好的练习,但更容易)是在custom/modules/Accounts/CustomAccountCreator.php创建一个文件,你可以用这样的东西填充它:

<?php
$target = BeanFactory::getBean($_REQUEST['return_id']);
$account = new Account();
$account->name = $target->account_name;
$account->phone_office = $target->phone_work;
$account->save();

显然,这是高度简化的,你需要更多的字段,你应该做一些错误检查,以确保$ target正确加载。您还可以使用某些字段创建新的联系人记录,并根据需要关联联系人和帐户。

有了所有文件和代码,您需要进行修复和修复。重建以查看更改。