21.10 - Problemi modifiche SDK

More
03 Feb 2022 15:14 #3780 by milvis@hotmail.it
Buon pomeriggio,
ho due problemi con delle modifiche che ho provato a fare via SDK.

1) ho delle variabili checkbox su cui non riesco ad attivare l'opzione per il mass edit da gestore moduli (è un modulo personalizzato).
Ho creato allora un modulo Test ed ho provato a fare la stessa cosa sul campo principale di tale modulo (che ovviamente è una casella di testo).
Su tale campo il codice ha funzionato, mentre sugli altri campi quando faccio partire lo script mi dice che ha modificato tali campi ma poi il mass edit non funziona.

Codice per il modulo Test
<?php
 
require('../../config.inc.php');
chdir($root_directory);
 
require_once('include/utils/utils.php');
require_once('modules/Update/Update.php');
 
require_once('vtlib/Vtiger/Utils.php');
require_once('vtlib/Vtiger/Field.php');
require_once('vtlib/Vtiger/Module.php');
require_once('vtlib/Vtiger/Block.php');
include_once('vtlib/Vtiger/ModuleBasic.php');
 
$Vtiger_Utils_Log = true;
 
global $adb, $table_prefix;
 
VteSession::start(); // crmv@128133
 
$moduleInstance = Vtiger_Module::getInstance('TestDue');
$field = Vtiger_Field::getInstance('vcf_19_3',$moduleInstance);
$field->masseditable = 1;
$field->save();
 
?>
Codice per il modulo dove non funziona
<?php
 
require('../../config.inc.php');
chdir($root_directory);
 
require_once('include/utils/utils.php');
require_once('modules/Update/Update.php');
 
require_once('vtlib/Vtiger/Utils.php');
require_once('vtlib/Vtiger/Field.php');
require_once('vtlib/Vtiger/Module.php');
require_once('vtlib/Vtiger/Block.php');
include_once('vtlib/Vtiger/ModuleBasic.php');
 
$Vtiger_Utils_Log = true;
 
global $adb, $table_prefix;
 
VteSession::start(); // crmv@128133
 
$moduleInstance = Vtiger_Module::getInstance('AmministrazioneInter');
$field = Vtiger_Field::getInstance('vcf_10_3',$moduleInstance);
$field->masseditable = 1;
$field->save();
 
$field = Vtiger_Field::getInstance('vcf_10_4',$moduleInstance);
$field->masseditable = 1;
$field->save();
 
$field = Vtiger_Field::getInstance('vcf_10_5',$moduleInstance);
$field->masseditable = 1;
$field->save();
?>

2) Nel modulo TestDue ho un campo relazionato al modulo TestUno e un campo testo chiamato "Appoggio" dove, ad ogni modifica di un record del modulo TestDue viene copiato il nome del record del modulo TestUno a cui è collegato.
Vorrei fare il contrario, ossia che ad ogni modifica del record in TestUno venga modificata la variabile "Appoggio" di tutti i record in TestDue a lui relazionati.
Guardando le lezioni in Academy ho ricavato il codice da utilizzare per creare la funzione SDK per il process maker, ma non funziona. Anche qui non so se sbaglio qualcosa a livello concettuale o se ho usato qualche funzione obsoleta. Il codice è il seguente:
<?php
 
function appoggiotestdue($engine){
 
		$metaid = $engine->metaid;
		$testunoid = $engine->getCrmid($metaid);
		$module = getSalesEntityType($testunoid);
 
		$campo = CRMEntity::getInstance("TestUno");
		$campo->retrieve_entity_info_no_html($testunoid, "TestUno");
 
		$RM = RelationManager::getInstance();
		$testdueIds = $RM->getRelatedIds($module, $testunoid, "TestDue");
 
		foreach($testdueIds as $testdueid){
			$focus = CRMEntity::getInstance("TestDue");
			$focus->retrieve_entity_info_no_html($testdueid, "TestDue");
			$focus->mode = 'edit';
			$focus->column_fields['vcf_19_3'] = campo->column_fields['vcf_18_1'];
			$focus->save("TestDue");
		}
}

Grazie mille a chi può darmi qualche dritta.

Please Log in to join the conversation.

Time to create page: 0.117 seconds