[Vtigercrm-developers] vtiger 7.0 cannot save record for custom module

lucia digirolamo l.digirolamo at websonica.net
Fri Sep 28 13:49:40 GMT 2018


Update:

I managed to create the missing table copying the one from leads. So I 
created the table with this:

CREATE TABLE IF NOT EXISTS `vtiger_chiamate_user_field` (
`recordid` int(25) NOT NULL,
`userid` int(25) NOT NULL,
`starred` varchar(100) DEFAULT NULL,
KEY `fk_chiamateid_vtiger_chiamate_user_field` (`recordid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Now the saving works and when I click the record it correctly opens and 
I can see all the details.

But now I have to add a uitype10 to the Accounts module. I used the 
following script:

// Turn on debugging level
$Vtiger_Utils_Log = true;

// Include necessary classes
include_once('vtlib/Vtiger/Module.php');
include_once('vtlib/Vtiger/Menu.php');

// Define instances: add GUEST to HOST
// host = the module the uitype 10 needs to be created in
// guest == the module the user can access to via uitype10 field
$host = Vtiger_Module::getInstance('Chiamate');
$guest = Vtiger_Module::getInstance('Accounts');
$block = Vtiger_Block::getInstance('LBL_CHIAMATE_INFORMATION', $host);

// Add field
$field = new Vtiger_Field();
$field->name = 'account_id';
$field->label = 'Azienda';
$field->table = 'vtiger_account';
$field->column = 'account_id';
$field->columntype = 'VARCHAR(255)';
$field->uitype = 10;
$field->typeofdata = 'V~O';

$block->addField($field);

$field->setRelatedModules(Array('Accounts')); // guest


The field is created correctly but the initial issue has come back. If I 
delete the new field, then the module works as expected.

Do I have to add a column for this new field in the 
vtiger_chiamate_user_field table?

Do I have to add only the uitype10 fields or do I have to add all the 
fields that are currently in my module?

Can anyone help? Thanks




On 28/09/2018 15:16, lucia digirolamo wrote:
> Hi,
>
> I've created a module via vtlib and added some fields via layout 
> editor. When I try to save a new record or opening an existing one, I 
> get the error message saying that the record is not found. The records 
> shows correctly in both vtiger_field and the table of my module. I 
> enabled vtiger logs and the query shows an error:
>
> PearDatabase ->ADODB error  Query Failed:SELECT vtiger_chiamate.name 
> AS vtiger_chiamatename,vtiger_crmentity.smownerid AS 
> vtiger_crmentityassigned_user_id,vtiger_crmentity.createdtime AS 
> vtiger_crmentitycreatedtime,vtiger_crmentity.modifiedtime AS 
> vtiger_crmentitymodifiedtime,vtiger_chiamatecf.cf_1113 AS 
> vtiger_chiamatecfcf_1113,vtiger_chiamatecf.cf_1115 AS 
> vtiger_chiamatecfcf_1115,vtiger_chiamatecf.cf_1119 AS 
> vtiger_chiamatecfcf_1119,vtiger_chiamatecf.cf_1121 AS 
> vtiger_chiamatecfcf_1121,vtiger_chiamatecf.cf_1123 AS 
> vtiger_chiamatecfcf_1123,vtiger_chiamatecf.cf_1125 AS 
> vtiger_chiamatecfcf_1125,vtiger_crmentity.deleted, 
> vtiger_crmentity.label FROM  vtiger_crmentity LEFT JOIN 
> vtiger_chiamate ON (vtiger_chiamate.chiamateid = 
> vtiger_crmentity.crmid  ) LEFT JOIN vtiger_chiamatecf ON 
> (vtiger_chiamatecf.chiamateid = vtiger_crmentity.crmid  ) LEFT JOIN 
> vtiger_chiamate_user_field ON (vtiger_chiamate_user_field.recordid = 
> vtiger_crmentity.crmid  AND vtiger_chiamate_user_field.userid = 1 ) 
> WHERE vtiger_crmentity.crmid=?  LIMIT 1::->[1146]Table 
> 'linkcrm.vtiger_chiamate_user_field' doesn't exist
>
> I checked in my database and in fact the table 
> vtiger_chiamate_user_field doesn't exist. But how am I supposed to 
> create it? Which fields does this table need? There are costraints to 
> apply (I imagine so)?
>
> Can anybody help me?
>
>



More information about the vtigercrm-developers mailing list