Php 如何在适合CRM的模块默认ID字段中添加自动增量
是否可以在套件CRM的模块默认ID字段中添加自动增量。ID字段包含36个字符类型 SuiteRM中是否有可用的设置选项Php 如何在适合CRM的模块默认ID字段中添加自动增量,php,sugarcrm,suitecrm,Php,Sugarcrm,Suitecrm,是否可以在套件CRM的模块默认ID字段中添加自动增量。ID字段包含36个字符类型 SuiteRM中是否有可用的设置选项 我在SuiteRM中实现自动递增字段的方式如下: 使用SuiteCRM Studio创建TextField类型的自定义字段。例如,将字段产品编号添加到模块产品。这将在数据库表aos\u products\u cstm中创建字段product\u number\u c。该字段应不是必需的 从模块Products的编辑视图中删除新创建的字段product\u number 在数据
我在SuiteRM中实现自动递增字段的方式如下:
- 使用SuiteCRM Studio创建
类型的自定义字段。例如,将字段TextField
添加到模块产品编号
。这将在数据库表产品
中创建字段aos\u products\u cstm
。该字段应不是必需的product\u number\u c
- 从模块
的编辑视图中删除新创建的字段Products
product\u number
- 在数据库中,创建表
,该表只有字段product\u number\u seq
,这是一个自动递增字段。可以将名称id
更改为您喜欢的任何名称产品编号\u seq
- 在表上创建触发器
:aos\u products\u cstm
CREATE DEFINER=`root`@`localhost` TRIGGER product_number_insert BEFORE INSERT ON aos_products_cstm FOR EACH ROW BEGIN INSERT INTO product_number_seq VALUES (NULL); SET NEW.product_number_c = LAST_INSERT_ID(); END
aos\u products\u cstm
上每次插入之前,触发器将插入表product\u number\u seq
,并提供NULL
作为值,因此将插入下一个int(因为它是一个自动递增字段)。然后,它将在aos\u products\u cstm
中插入的记录的product\u number\u c
字段设置为LAST\u INSERT\u ID()
-的结果,这将是product\u number\u seq
最近插入的值
很明显,这是黑客攻击,所以您可能不喜欢它,但我已经使用过它,而且它很有效。根据我的经验,自动输入字段的目标通常是创建一个人性化的ID字段,例如案例ID、报价ID、账号。这与CRM系统的GUID不同,尽管两者实际上都是唯一的标识符。简单地说,人性化的ID字段更容易与同事沟通(“嘿,吉姆,打开账户1505”比“打开账户6ccd780c-baba-1026-9564-5b8c656024db”更容易”) 考虑到这一点,这里的目标是完全添加一个新的整数字段,并确保它自动递增。SugarCRM支持开箱即用的自动递增整型字段,但它是代码级定制。这不适用于默认的id字段,因为这是一个varchar字段 让我们以专业版的报价字段“报价编号”为例 因此,vardef在
modules/Quotes/vardefs.php
中定义:
<?php
$dictionary['Quote']['fields'][] =
'quote_num' => array(
'name' => 'quote_num',
'vname' => 'LBL_QUOTE_NUM',
'type' => 'int',
'auto_increment' => true,
'readonly' => true,
'required' => true,
'unified_search' => true,
'full_text_search' => array('enabled' => true, 'boost' => 3),
'disable_num_format' => true,
'enable_range_search' => true,
'options' => 'numeric_range_search_dom',
);
我不认为在管理中有任何关于此的选项/设置,如果您以编程方式创建自定义模块,那么这是可能的,我从未尝试过。@Bhaskar感谢重播,我创建了自定义模块,我想在ID字段中添加自动增量。
<?php
$dictionary['Quote']['indices'][] =
array(
'name' => 'quote_num',
'type' => 'unique',
'fields' => array('quote_num', 'system_id')
);
$dictionary['Quote']['fields']['quote_num']['auto_increment'] = true;
$dictionary['Quote']['fields']['quote_num']['disable_num_format'] = true;