Come eseguire il debug dei problemi di SugarCRM / imparare come funziona SugarCRM?

StackOverflow https://stackoverflow.com/questions/223993

  •  03-07-2019
  •  | 
  •  

Domanda

Sto tentando di spostare la nostra azienda da SalesForce a SugarCRM, ma mi sono imbattuto in un brutto bug (nel momento in cui aggiungo un campo personalizzato ad Account, tutti gli account smettono di apparire). Abbiamo pagato per il supporto del personale SugarCRM, ma hanno solo un supporto tecnico a livello di risposta per sempre-quindi-ottenere-un-valore-inutile per la versione open-source (ed evitiamo software proprietario come la peste). Oh, e ho già detto che il nostro contratto Salesforce scade alla fine della settimana?

Quindi, per farla breve, sono bloccato nel debug dell'app SugarCRM. Sono un programmatore decentemente esperto e ho una competenza di base PHP, ma non so nemmeno dove cercare di risolvere questo problema. Gli sviluppatori Sugar possono consigliare qualsiasi tipo di processo per il debug di Sugar? Esistono risorse là fuori che potrebbero aiutarmi a capire cosa fanno i diversi file PHP o come funziona il sistema Sugar nel suo complesso?

Proprio come un esempio del genere di cosa di cui sto parlando: ho capito come ottenere zucchero per stampare le tracce dello stack e, seguendo alcuni, ho notato uno schema con tutte le linee di problema che coinvolgono

<* > Mi piacerebbe provare a capire perché quella chiamata al metodo non funziona, ma non lo so:

A) cosa dovrebbe fare _tpl_vars
B) dove _tpl_vars è definito
C) quale $ this dovrebbe essere
D) dove nel framework $ this viene impostato
ecc.

Quindi, se qualcuno può aiutare a spiegare come / dove inizierei a trovare le risposte a queste domande, sarei incredibilmente grato.

È stato utile?

Soluzione 3

Sebbene non sia una risposta perfetta alla mia domanda, questo articolo:

http: // developers.sugarcrm.com/wordpress/2008/09/26/where-is-the-code-for-x/

mi ha aiutato un po '. Inoltre, quando ho esaminato ulteriormente i documenti ufficiali di Sugar, ho scoperto che la Guida per gli sviluppatori contiene alcune spiegazioni su come funziona Sugar (anche se ovviamente non è focalizzato su come funziona Sugar tanto quanto è focalizzato su come fare che Sugar faccia cose nuove).

Spero che aiuti tutti gli altri fiorenti sviluppatori di Sugar là fuori.

Altri suggerimenti

Ho lavorato con SugarCRM un paio di anni fa e, sebbene amassi quello che ho visto in superficie, ho finito per rifiutarlo per il nostro progetto a causa di quello che stai vivendo ora. Gli interni del prodotto sono dolorosamente sotto documentati. Avevo immaginato di scrivere un sacco di moduli slick per il prodotto, ma le risorse semplicemente non esistono. Trascorrerai tutto il tuo tempo a cercare il codice, a scorrere i post del forum e a cercare esempi di ciò che stai cercando di realizzare. Non sembra che le cose siano migliorate molto.

Dato che la tua esperienza con PHP è inferiore al livello del guru e sei indubbiamente impegnato con molte altre attività e scadenze, penso che dovresti riconsiderare questa transizione se non è troppo tardi, almeno fino a quando non ottieni un migliore livello di comfort con Sugar. Se sei costretto a trasferirti a Sugar a causa di un contratto in scadenza con Salesforce, penso che potresti avere qualche bruciore di stomaco!

Usa la Krumo per aiutarti. È super facile e molto meglio di var_dump o print_r .

Basta scaricare il codice sorgente e aggiungerlo da qualche parte nella cartella personalizzata. Uso la cartella custom / include.

Quindi sovrascrivi una vista o qualunque cosa tu debba guardare. Includi il percorso del file class.krumo.php e krumo qualunque oggetto tu voglia dare un'occhiata:

Esempio rapido -

<?php
  require_once('include/MVC/View/views/view.detail.php');
  require_once('custom/include/krumo/class.krumo.php');
  class AccountsViewDetail extends ViewDetail {

    function AccountsViewDetail() {
      parent::ViewDetail();
    }

    // Override the parent function "preDisplay" to add our own template
    function preDisplay(){
      krumo($this->bean);
      $metadataFile = $this->getMetaDataFile();
      $this->dv = new DetailView2();
      $this->dv->ss =&  $this->ss;
      $this->dv->setup($this->module, $this->bean, $metadataFile, 'custom/modules/Accounts/tpls/AccountsDetailView.tpl');
    }


  }
?>

Otterrai un bell'oggetto sulla pagina in cui puoi approfondire.

inserisci qui la descrizione dell'immagine

Questo codice proviene dalla libreria Smarty, non direttamente da SugarCRM.

Forse questo chm doc sarà un po 'utile, http://code.google .com / p / sugardoc / downloads / lista .

Puoi anche provare a installare xdebug (estensione PHP) e ad esaminare il codice con un IDE compatibile come eclipse o Komodo.

L'URL indica quale directory del modulo si sta accedendo e quale azione / vista. C'è un " viste " cartella sotto la maggior parte dei moduli. Se non è presente, utilizza la vista MVC predefinita nella cartella include insieme al layout dei metadati oppure utilizza l'architettura di visualizzazione classica: index.php (listview), DetailView.php, EditView.php e modelli.

Molto è cambiato in meglio negli ultimi due anni, quindi non sono sicuro che la prima risposta (Nack) sia ancora pertinente. È ancora piuttosto agitato attorno ai bordi, ma il nuovo framework Sugar è il migliore amico di un hacker PHP (davvero facile da ignorare roba in un modo facile da aggiornare). È ottimo per le aziende che hanno già hacker PHP e hanno solo bisogno di alcuni miglioramenti. E trovare appaltatori PHP convenienti per dare una mano non è così difficile (dichiarazione di non responsabilità: io sono uno). Penso che sia un ottimo strumento se sei in open source, hai solo bisogno di CRM di base e hai meno di 100 utenti.

tpl è un file modello smarty. Vengono utilizzati per visualizzare i dati sullo schermo. Come faccio i miei processi di debug è creare molti dump var per errori o semplicemente stamparli sullo schermo.

Ottieni anche xdebug sul server, questo ti aiuterà molto. Sugar è una piattaforma mvc, quindi scopri come funziona e sarà molto più semplice.

dai un'occhiata ad alcuni frammenti che invio su www.eontek.rs

Se avessi riscontrato lo stesso problema, quando la pagina dei dettagli dell'account non veniva visualizzata e veniva visualizzato un errore interno di 500. Ho verificato che non fosse stato generato dal TPL. All'inizio ho controllato i permessi su quella cartella, nel mio caso erano tutti impostati. Quindi ho preso il backup di cache \ modules \ account \ DetailView.tpl e ho aggiunto manualmente il campo, dopo che tutto ha funzionato. Ogni volta in modalità sviluppatore è necessario copiare manualmente questo file. È un dolore, ma non c'è ancora nessuna risposta. Ho chiesto questo nei forum, Bug, Twitter, nessun aiuto. A proposito, stiamo usando Sugar Professional.

Suggerirei di assicurarmi che si tratti davvero di un bug di codice e non solo di una mancata configurazione. Stai aggiungendo il campo tramite Admin > Studio > Contatti > Campi o tramite l'API SOAP?

Stai utilizzando l'ultima versione di Sugar?

Sono davvero d'accordo sul fatto che il progetto sia orribilmente sotto documentato e privo di tutorial ed esempi.

Io stesso sto vivendo i dolori della documentazione obsoleta / mancante. In bocca al lupo!

$ this è un riferimento all'oggetto corrente.

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top