Como você depurar problemas SugarCRM / SugarCRM aprender como funciona?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu estou no processo de tentar mover a nossa empresa de SalesForce a SugarCRM, mas eu correr em um bug desagradável (o momento em que adicionar um campo personalizado para contas, todas as contas deixam de ser exibidos). Nós pago para o apoio do povo SugarCRM, mas eles só têm suporte técnico-get-a-inútil-resposta em nível de take-sempre-em seguida, para a versão de código aberto (e evitar o software proprietário como a peste). Ah, e eu mencionei o nosso contrato Salesforce expira no final da semana?

Então, longa história curta, eu estou preso a depuração do aplicativo SugarCRM mim. Eu sou um programador experiente decentemente, e eu tenho competência de base PHP, mas eu não sei mesmo onde a estar a tentar resolver esta questão. Pode qualquer desenvolvedor de açúcar lá fora recomendar qualquer tipo de processo para depurar Sugar? Existem recursos lá fora, que iria me ajudar a entender o que os diferentes arquivos PHP fazer, ou como o sistema de Açúcar funciona em geral?

Assim como um exemplo do tipo de coisa que eu estou falando: Eu descobri como obter açúcar para imprimir rastreamentos de pilha, e seguindo vários notei um padrão com todas as linhas problemáticas que envolvem

$this->_tpl_vars
Eu adoraria para tentar descobrir por que chamada de método não está funcionando, mas eu não sei:

A) que _tpl_vars é suposto fazer
B), onde _tpl_vars é definido
C) o que $this é suposto ser
D) onde no $this quadro fica Set Online etc.

Então, se alguém pode ajudar a explicar como / onde eu iria começar a encontrar respostas para estas perguntas, eu ficaria extremamente grato.

Foi útil?

Solução 3

Embora não seja uma resposta perfeita à minha pergunta, este artigo:

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

ajudou um pouco. Além disso, quando eu olhei ainda mais através de documentação oficial do açúcar descobri que o Guia do desenvolvedor contém uma explicação de como funciona Açúcar (embora, obviamente, não é tão focada em como Sugar funciona tanto como ele está focado em como fazer Sugar fazer coisas novas).

Espero que ajude qualquer outro Sugar crescente devs lá fora.

Outras dicas

Eu trabalhei com SugarCRM um par de anos atrás, e embora eu adorei o que vi na superfície, acabei rejeitando-o para o nosso projeto por causa do que você está experimentando agora. Os internos do produto são lamentavelmente underdocumented. Eu tinha imaginado escrever um monte de módulos lisos para o produto, mas os recursos simplesmente não existem. Você vai gastar todo o seu tempo cavando através de código, derramando sobre posts no fórum, e tentando encontrar exemplos do que você está tentando realizar. Não soa como as coisas ficaram muito melhor.

Tendo em conta que a sua experiência de PHP é menos do que o guru nível, e você está, sem dúvida, ocupado com um monte de outras tarefas e prazos, eu acho que você deveria talvez reconsiderar essa transição se não é tarde demais, pelo menos até chegar um nível de conforto melhor com açúcar. Se você é forçado a mudança para o açúcar por causa de um contrato expirando com Salesforce, eu acho que você pode estar em algum azia sério!

Use a Krumo biblioteca para ajuda. É super fácil e muito melhor do que var_dump ou print_r.

Basta baixar o código fonte e adicioná-lo em algum lugar em sua pasta personalizada. Eu uso o costume / incluem pasta.

Em seguida, substituir a View ou o que você precisa olhar. Incluir o caminho para o arquivo arquivo class.krumo.php e krumo qualquer objeto que você quer dar uma olhada em:

Exemplo rápido -

<?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');
    }


  }
?>

Você receberá um objeto agradável na página que você pode furar.

enter descrição da imagem aqui

Estes códigos são provenientes de Smarty lib, não vindo de SugarCRM diretamente.

Talvez este doc chm será um pouco útil, http://code.google .com / p / sugardoc / download / list .

Você também pode tentar instalar xdebug (extensão PHP) e percorrendo o código com um IDE compatível, como eclipse ou Komodo.

O URL informa qual diretório módulo está sendo acessado e que a ação / view. Há uma pasta de "pontos de vista", sob a maioria dos módulos. Se ele não estiver lá, ele quer usar o modo de exibição padrão MVC na pasta incluem em conjunto com o layout de metadados, ou ele está usando a arquitetura de exibição clássico: index.php (listview), DetailView.php e EditView.php e modelos.

Muita coisa mudou para melhor nos últimos dois anos, então eu não tenho certeza que a primeira resposta (Nack) ainda é relevante. Ainda é muito áspero em torno das bordas, mas o novo quadro de Açúcar é o melhor amigo de um hacker PHP (realmente fácil de material de substituição de uma forma amigável-upgrade). É ótimo para empresas que por acaso já tem hackers PHP e só precisa de algumas melhorias. E encontrar empreiteiros PHP acessíveis para ajudar não é tão difícil (disclaimer: Eu sou um). Eu acho que é uma grande ferramenta se você estiver em código aberto, só precisa de CRM básico e têm menos de 100 usuários.

tpl é o Smarty template arquivos. Eles são usados ??ao exibir dados na tela. Como eu faço meus proces debuging é criar um monte de var lixões para lof de erro ou apenas imprimi-los na tela.

Também obter xdebug no servidor, isso vai ajudá-lo muito. O açúcar é plataforma MVC assim que começar sabendo como isso funciona, e será muito mais fácil depois.

dar uma olhada em alguns trechos i postar pelo www.eontek.rs

Se eu encontrei o mesmo problema, quando a página da conta detalhe não foi apresentada e deu 500 erro interno. Eu verifiquei que não foi gerado pela TPL. No começo eu verifiquei as permissões em que pasta, no meu caso eles foram todos. Então eu peguei o backup de memória cache \ módulos \ contas \ DetailView.tpl e adicionados manualmente o campo, depois disso tudo funcionou. Toda vez no modo de desenvolvedor há uma necessidade de copiar manualmente esse arquivo. É uma dor, mas ainda não há resposta. Eu pedi isso em fóruns, Bug, Twitter, nenhuma ajuda. By the way, estamos usando Sugar Professional.

Eu sugiro certificando-se de que ele realmente é um erro de código e não apenas uma configuração falta. Você está adicionando o campo através do administrador> Estúdio> Contatos> Fields ou através da API de SOAP?

Você está usando a última versão do Sugar?

Eu realmente concordar que o projeto horrivelmente sob documentado e com falta de tutoriais e exemplos.

Eu mesmo estou experimentando as dores de documentação desatualizada / faltando. Boa sorte!

$this é uma referência para o objeto atual.

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top