Vtigercrm errori

From Studiosg
Jump to: navigation, search

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano



Nella pagina che segue sono elencati alcuni errori in cui mi sono imbattuto sviluppando estensioni per VtigerCRM. Per ogni errore verrà riportato il relativo messaggio, se disponibile, una breve descrizione e la soluzione adottata comprensiva dei riferimenti alla documentazione consultata. Come linea guida generale alla risoluzione dei problemi consiglio di impostare il parametro error_reporting di Php al valore E_ALL per testare in maniera puntuale il codice prodotto. Le impostazioni richieste dal programma di installazione di VtigerCRM sono adeguate per un sito di produzione, ma nascondono messaggi di errore che possono risultare fondamentali in fase di sviluppo.


Errore "ListView rende schermata bianca"

Il problema si presenta a seguito della creazione di un nuovo modulo tramite codice Vtlib, al momento di inserire nuovi dati nelle maschere preposte. I Dati vengono salvati correttamente, ma VtigerCRM rende una schermata bianca anzichè l'usuale vista di dettaglio. La problematica interessa esclusivamente il modulo personalizzato e non intacca il funzionamento generale del programma.

Causa potenziale: Un qualsiasi file *.php facente parte del modulo, inclusi i file contenenti le traduzioni e le localizzazioni, termina con una riga vuota anzichè con il corretto tag di chiusura "?>".
Soluzione: Rimuovere tutte le righe vuote eventualmente presenti dopo il tag "?>" in coda ai file.
Causa potenziale: Nella tabella vtiger_ws_entity manca una voce dedicata al modulo personalizzato.
Soluzione: Aggiungere la voce mancante nella tabella vtiger_ws_entity tramite opportune istruzioni SQL.
L'istruzione INSERT dovrebbe comprendere i dati che seguono: (1° identificatore libero, '<nome_modulo>', 'include/Webservices/VtigerModuleOperation.php', 'VtigerModuleOperation', 1) .
Soluzione alternativa: Modificare il codice di creazione del modulo perchè esegua una chiamata alla funzione $<module>->initWebservice(); immediatamente dopo aver eseguito l'istruzione $<module>->save();. La funzione popolerà la tabella vtiger_ws_entity con i dati corretti.


Errore "Nessun utente tranne admin riesce a collegarsi"

A seguito di un upgrade di versione o di un ripristino dati da una copia di back-up nessun utente tranne admin riesce a collegarsi al CRM. Il programma rende il seguente messaggio di errrore a video: "You have updated your php version. due changes in crypt API your password is no longer applicable, please reset your password. you can reset password for all users using a script and set it to thier respective user names. Please Click here". Il programma reindirizza ad una pagina del Wiki di Vtiger da cui e' possibile scaricare uno script per ripristinare le password di tutti gli utenti. Purtroppo lo script non produce l'effetto sperato.

Causa potenziale: La versione 5.2.1 del programma è stata pensata e sviluppata per lavorare con Php 5.3.X mentre la 5.1.0 era stata sviluppata per Php 5.2.X. Aggiornando la versione si aggiorna la Crypto API cambiando così il sottosistema di autenticazione.
Soluzione: Seguire la procedura riportata al link cui si viene reindirizzati.
  • Una versione corretta dello script e' reperibile all'indirizzo: Updated ResetPassword.phpfile.gz
  • Decomprimere lo script: gunzip ResetPassword.phpfile.gz
  • Copiare il file ottenuto nella directory di installazione di VtigerCRM.
  • Rinominare il file in ResetPassword.php
  • Aprire il file ResetPassword.php con un editor di testo e modificare il valore del parametro $configuredAppKey. Imporlo uguale al valore del parametro $application_unique_key reperibile nel file di configurazione principale: config.inc.php.
  • Eseguire lo script richiamandolo da una finestra del browser oppure lanciando Php da riga di comando:
php -f ./ResetPassword.php
  • Rimuovere lo script in modo che non possa essere eseguito una seconda volta per errore.


Errore "Not unique table/alias"

L'errore compare qualora si cerchi di creare un report che leghi moduli predefiniti con moduli personalizzati. Supponendo di voler legare il modulo standard "Contatti" con il modulo personalizzato "Polizze" l'errore reso sarà:

  Generazione Report fallita!
  Not unique table/alias: 'vtiger_accountRelPolicy' 

ove Policy fa appunto riferimento al modulo "Polizze".

Causa potenziale: Si tratta di un problema nel codice di VtigerCRM che genera alias non univoci per i nomi delle tabelle. La risultante stringa in codice SQL che interroga le relative tabelle non è perciò in grado di reperire alcuna informazione.
Soluzione: Esiste una discussione circa il problema nel forum di VtigerCRM ove è disponibile una patch.
  • Scaricare la patch.
  • Copiatela nella sottodirectory data della vostra installazione di VtigerCRM ove dovrebbe essere presente il file CRMEntity.php.
  • Per chiarezza ho rinominato il paatch file in CRMEntity.patch, ma si tratta di un passo opzionale.
  • Applicate la patch mediante il comando patch
           root@vms140v32:/var/www/htdocs/vtigercrm521_pro/data# patch -p0 -i CRMEntity.patch
           patching file CRMEntity.php
           Hunk #1 succeeded at 1890 (offset 18 lines).
           patching file CRMEntity.php
           Hunk #1 succeeded at 1953 (offset 18 lines).
  • Il comando genererà in automatico una copia del file prima di modificarlo: CRMEntity.php.orig
Il problema dovrebbe ora essere risolto.


Errore "You are not permitted to execute this Operation"

Qualsiasi operazione eseguita sul modulo personalizzato fallisce rendendo l'errore "You are not permitted to execute this Operation" a video. Il problema è circoscritto al modulo personalizzato e non intacca il funzionamento generale del programma.

Causa potenziale: Un problema di permessi inerente gli script Php.
Soluzione: Verificare che l'utente ed il gruppo cui appartengono gli script siano i medesimi con cui viene eseguito il Web Server e riassegnare le utenze in caso contrario. Se una prima verifica non producesse esiti soddisfacenti, è possibile assegnare temporaneamente permessi 757 agli script per eseguire ulteriori controlli. I permessi originali dovrebbero essere ripristinati a controlli ultimati. L'assegnazione di permessi eccessivi è comunque sconsigliata in ambienti di produzione, che verrebbero esposti a rischi di sicurezza, e dovrebbe essere impiegata solo su installazioni di sviluppo e test.
Causa potenziale: L'identificatore univoco per l'entità su cui si sta operando è costituito da più campi e non tutti sono classificati obbligatori.
Soluzione: Modificare il file <entità>.php impostando il valore del parametro $required_fields uguale a quello passato alla funzione setEntityIdentifier della Vtlib in fase di creazione del modulo.


Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.



Lingue: English - Italiano