Menu
SuiteCRM Pull Request Party hosted by SalesAgility
Welcome, Guest
Username: Password: Remember me

TOPIC: Desenvolvimento de plugin

Desenvolvimento de plugin 5 months 1 week ago #75489

  • pgr
  • pgr's Avatar
  • Offline
  • Administrator
  • Posts: 9857
  • Thank you received: 1469
  • Karma: 349
Sim, isso é uma after_save Logic Hook

docs.suitecrm.com/developer/logic-hooks/

My SuiteCRM In-depth blog.
Thank you for always stating your SuiteCRM version, checking your logs, reading the Docs, and searching before you ask!
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 2 weeks ago #76026

  • tadeu
  • tadeu's Avatar
  • Offline
  • Senior Member
  • Posts: 44
  • Karma: 0
Trabalhando mais com beans aqui no CRM, me surgiu um problema e não consigo resolver.

Acompanhei a documentação tentando reproduzir o seguinte exemplo:
$accountBean = BeanFactory::newBean('Contacts');

$beanList = $accountBean->get_linked_beans(
'contacts',
'Contacts',
array(),
0,
10,
0,
"contacts.primary_address_country = 'Brasil'");

print_r($beanList);

O problema é que quando executo isso, volta um arrary vazio. Já verifiquei no banco de dados e existe primary_address_country com o valor Brasil cadastrado. O último parâmetro eu tentei passar em branco tambem, mas permaneceu vazio o array de resultado do mesmo jeito.

O que estou fazendo de errado?
Last Edit: 4 months 1 week ago by pgr. Reason: add code tags
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 1 week ago #76149

  • pgr
  • pgr's Avatar
  • Offline
  • Administrator
  • Posts: 9857
  • Thank you received: 1469
  • Karma: 349
Tente usar 'Contact' em lugar de 'Contacts'
get_linked_beans('contacts', 'Contact' ...

Essa questão de quando usar singular ou plural é muito sensível. O melhor é procurar no código existente instruções semelhantes e fazer igual.

Essa linha aí também não me parece bem:
$accountBean = BeanFactory::newBean('Contacts');

Se chama à variável $accountBean não faz sentido colocar nela um bean de contactos...

My SuiteCRM In-depth blog.
Thank you for always stating your SuiteCRM version, checking your logs, reading the Docs, and searching before you ask!
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 1 week ago #76253

  • tadeu
  • tadeu's Avatar
  • Offline
  • Senior Member
  • Posts: 44
  • Karma: 0
Certo.

A integração que eu queria fazer entre o RD e o SuiteCRM está funcionando. Graças as dúvidas que você me foi tirando eu pude implementar essa integração.

Porém está ocorrendo um problema que não sentido nenhum.

Vou tentar ser o mais claro possível

No RD há uma página web que permite com que eu configure o webhook para fazer a integração. Eu fui e coloquei a URL do entrypoint do CRM, especifiquei o gatilho de disparo como Conversão. Isto é, toda vez que alguém preencher um formulário os dados serão enviados para o RD, é claro, e em seguida serão enviados para o CRM.
Até aqui tudo bem. Nessa mesma tela, ao criar o webhook há a opçao de fazer um teste para verificar se a comunicação com o SuiteCRM está correta. Eu clico nesse botão e escolho um lead qualquer na lista para fazer o envio dos dados. Fazendo isso, os dados são enviados e ao olhar no CRM eu vejo que os dados chegaram e a oportunidade foi criada com sucesso. Perfeito, integração funcionando.

O problema começa aqui. Quando eu criei o webhook eu tive que especificar também qual seria o formulário que teria seus dados enviados para o CRM. Sendo assim, eu acesso esse fomulário pelo meu navegador e preencho-o, em seguida eu envio os dados. Se tudo estiver ok, esses dados informados, ou seja, essa conversão, deverão ser enviados para o CRM. Então eu vou no SuiteCRM novamente para conferir se a oportunidade foi inserida, quando carrego a página, está la a oportunidade inserida, porém passa 1 ou dois minutos, mais ou menos, outra oportunidade aparece, sendo que eu enviei o formulário uma vez só. Parece que o RD está enviando mais de uma vez para o CRM. E toda vez que tento, chega uma quantidade diferente de oportunidades, não tem padrão.

Resumindo, pra cada vez que eu preencher o formulário deveria enviar uma vez só, para inserir apenas uma oportunidade e não duas ou três. Já comparei os dados dessas oportunidades, são todos exatamente iguais. Parece que duplicou.

Ao meu ver não parece ser problema do CRM, pois no início eu te expliquei que fiz um teste no webhook criado antes de preencher o formulário. Se fosse problema do CRM, teria que duplicar em ambos os casos, certo?

O que será que está ocorrendo? Será problema no envio feito pelo RD?
Last Edit: 4 months 1 week ago by tadeu.
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 1 week ago #76297

  • pgr
  • pgr's Avatar
  • Offline
  • Administrator
  • Posts: 9857
  • Thank you received: 1469
  • Karma: 349
Não sei, parece ser problema do envio do RD.

Talvez haja algo na resposta do SuiteCRM que ele entenda como "não foi criada a oportunidade", e tem lá código para fazer "retry" após um pouco.

Outra hipótese a verificar é se você não tem nenhuma "logic hook" ou "workflow" esquecidos, correndo quando cria a oportunidade, e que estejam duplicando por algum motivo.

My SuiteCRM In-depth blog.
Thank you for always stating your SuiteCRM version, checking your logs, reading the Docs, and searching before you ask!
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 1 week ago #76298

  • tadeu
  • tadeu's Avatar
  • Offline
  • Senior Member
  • Posts: 44
  • Karma: 0
Eu também penso que é problema no RD.

Bem, eu tinha um work flow lá sim e para oportunidades. Imaginei que ele pudesse ser o problema então eu o desativei, mas não resolveu nada.

O engraçado é que há momentos raros que esse problema para ocorrer.

Eu decidi fazer um teste, em vez de enviar para uma url do SuiteCRM eu coloquei uma outra url. Na verdade eu apenas criei um diretório na pasta raiz do CRM e lá dentro coloquei um arquivo php para receber os dados que seriam enviados pelo RD. Bem, aqui imagino eu que o CRM não poderá influenciar em nada nesse teste.

O conteúdo desse php simplesmente pegava os dados quando o RD enviasse e os escrevia em um arquivo de log que eu criei. Então se entrasse mais de uma vez estaria duplicando da mesma forma.


O engraçado é que ao fazer esse teste não duplicou e se eu voltasse para a url do CRM começava a duplicar novamente.


Observando isso dá pra perceber que é um problema no CRM. Mas mesmo assim não entendo, porque quando eu faço o envio de verificação através da tela de configuração de webhook que eu mencionei, não duplica no CRM. Duplica apenas quando vem de conversão de formulário.



Você disse que tem também a possibilidade de fazer retry após passar um tempo caso ele entenda que falhou a inserção da oportunidade né?. Bem, eu notei que demora um pouco sim para entrar novamente, é variável o tempo. As vezes entra uma 1 oportunidade aí passa uns 2 minutos entra outra. E fica assim.

Estou desconfiado que seja a última atualização do CRM que apliquei...

Enfim, esse meu último cenário de teste torna mais difícil entender o problema.
The administrator has disabled public write access.

Desenvolvimento de plugin 4 months 1 week ago #76307

  • pgr
  • pgr's Avatar
  • Offline
  • Administrator
  • Posts: 9857
  • Thank you received: 1469
  • Karma: 349
Outro teste:

Experimente fazer o cron do SuiteCRM correr só de 5 em 5 minutos, em vez de ser todos os minutos.

Para ver se o tempo de repetição fica igual (e então não pode ser dos Schedulers, que correm os Workflows), ou se muda (e então o problema vêm mesmo daí).

My SuiteCRM In-depth blog.
Thank you for always stating your SuiteCRM version, checking your logs, reading the Docs, and searching before you ask!
The administrator has disabled public write access.

Desenvolvimento de plugin 3 months 2 weeks ago #77134

  • tadeu
  • tadeu's Avatar
  • Offline
  • Senior Member
  • Posts: 44
  • Karma: 0
pgr, muito obrigado pela ajuda. A integração do RD Station com o SuiteCRM está 100%.
The administrator has disabled public write access.

Desenvolvimento de plugin 3 months 2 weeks ago #77143

  • pgr
  • pgr's Avatar
  • Offline
  • Administrator
  • Posts: 9857
  • Thank you received: 1469
  • Karma: 349
Boa B-) ! Fico contente por saber.

My SuiteCRM In-depth blog.
Thank you for always stating your SuiteCRM version, checking your logs, reading the Docs, and searching before you ask!
The administrator has disabled public write access.
Time to create page: 0.041 seconds
Powered by Kunena Forum