SugarCRM - xivo


Replies (5)

RE: SugarCRM - xivo - Added by Speederyoyo . 7 months ago

Bonjour Sylvain,

Déjà, merci pour ce taf, je l'ai mis en service sur l'un de mes serveurs et ca marche assez bien :)

J'ai juste une demande à te faire,

Dans le fichier "for_xivo" : https://github.com/sboily/xivo-sugarcrm/blob/master/for_xivo

 Se trouve la ligne 52 :  query = conn.modules['Contacts'].query().filter(phone_work__exact="%s" % caller)

Et cette ligne permets juste de faire une recherche sur le phone_work.
Si l'appelant se sert de son mobile, alors il n'est pas connu dans le système car il ne fais pas la recherche sur le "phone_mobile"

Si je change :

 query = conn.modules['Contacts'].query().filter(phone_work__exact="%s" % caller)
par
query = conn.modules['Contacts'].query().filter(phone_mobile__exact="%s" % caller)

cela fonctionne.
Mais je ne parviens pas à trouver la bonne syntaxe pour faire une recherche sur phone_work OU phone_mobile :-(

Tout ce que je trouve sur le net sont des ET.

Peux tu m'orienter s'il te plait?

Merci par avance.

Yohan.

RE: SugarCRM - xivo - Added by Pascal Cadotte-Michaud 7 months ago

Salut Yohan,

la lib ne semble pas supporter le OR. Je n'ai pas vérifier les API de sugarcrm mais tu pourrais toujours faire deux requêtes.

query = conn.modules['Contacts'].query().filter(phone_work__exact="%s" % caller)
for contact in query:
    if debug:
        print "CONTACT : " + contact['first_name'] + " " + contact['last_name']
        print "SUGARCRM-ID", contact['id']
        print "SUGARCRM-FIRSTNAME", contact['first_name']
        print "SUGARCRM-LASTNAME", contact['last_name']
    else:
        agi.verbose("CONTACT : " + contact['first_name'].encode('utf-8') + " " + contact['last_name'].encode('utf-8'))
        agi.set_variable("SUGARCRM-ID", contact['id'].encode('utf-8'))
        agi.set_variable("SUGARCRM-FIRSTNAME", contact['first_name'].encode('utf-8'))
        agi.set_variable("SUGARCRM-LASTNAME", contact['last_name'].encode('utf-8'))
    exit(0)

query = conn.modules['Contacts'].query().filter(phone_mobile__exact="%s" % caller)
for contact in query:
    if debug:
        print "CONTACT : " + contact['first_name'] + " " + contact['last_name']
        print "SUGARCRM-ID", contact['id']
        print "SUGARCRM-FIRSTNAME", contact['first_name']
        print "SUGARCRM-LASTNAME", contact['last_name']
    else:
        agi.verbose("CONTACT : " + contact['first_name'].encode('utf-8') + " " + contact['last_name'].encode('utf-8'))
        agi.set_variable("SUGARCRM-ID", contact['id'].encode('utf-8'))
        agi.set_variable("SUGARCRM-FIRSTNAME", contact['first_name'].encode('utf-8'))
        agi.set_variable("SUGARCRM-LASTNAME", contact['last_name'].encode('utf-8'))
    exit(0)

RE: SugarCRM - xivo - Added by Sylvain Boily 7 months ago

oh boy, tu me ressors un projet vieux de 3 ans :) Je ne me rappelle même plus ce que ça fait héhé.
Peut être aussi que tu pourrais mettre une autre librairie pour causer avec sugarcrm qui aurait ce fonctionnel ? Ce qui est important est de remonter les variables que j'ai mis.
Peut être aussi juste vérifier si query est vide ou non pour avoir moins de code ?

RE: SugarCRM - xivo - Added by Speederyoyo . 7 months ago

Hello,
oui ca ne remonte pas d'hier :)
justement j'ai des erreurs, et du ca me mets un latence de fous sur chaque requete (en moyenne une 20 ène de secondes par requete sur le sugarcrm et pendent ce temps la j'ai un blanc sur ma communication....

Je suis sur un wazo 17.02.

Voici les infos que je remonte bien avec ton script :

Searching information for caller 063522XXXX
CONTACT : Yohan VITU
SUGARCRM-ID 3018b972-d34d-5bbb-f52e-58a575d04941
SUGARCRM-FIRSTNAME Yohan
SUGARCRM-LASTNAME VITU

Voici l’erreur que j'ai sur le sugarcrm:

[Sat Feb 18 08:55:56.374218 2017] [:error] [pid 942] [client 185.9.248.194:41193] PHP Warning:  Missing argument 2 for SugarWebServiceImplv4::login() in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 70
[Sat Feb 18 08:55:56.374261 2017] [:error] [pid 942] [client 185.9.248.194:41193] PHP Notice:  Undefined variable: application in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 71

[Sat Feb 18 08:56:26.785803 2017] [:error] [pid 942] [client 185.9.248.194:41213] PHP Warning:  Missing argument 9 for SugarWebServiceImplv4::get_entry_list() in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 250
[Sat Feb 18 08:56:26.795699 2017] [:error] [pid 942] [client 185.9.248.194:41213] PHP Notice:  Undefined variable: deleted in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 291
[Sat Feb 18 08:56:26.795741 2017] [:error] [pid 942] [client 185.9.248.194:41213] PHP Notice:  Undefined variable: deleted in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 298
[Sat Feb 18 08:56:31.845165 2017] [:error] [pid 1059] [client 185.9.248.194:41214] PHP Warning:  Missing argument 9 for SugarWebServiceImplv4::get_entry_list() in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 250
[Sat Feb 18 08:56:31.856084 2017] [:error] [pid 1059] [client 185.9.248.194:41214] PHP Notice:  Undefined variable: deleted in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 291
[Sat Feb 18 08:56:31.856122 2017] [:error] [pid 1059] [client 185.9.248.194:41214] PHP Notice:  Undefined variable: deleted in /var/www/wazocrm/service/v4/SugarWebServiceImplv4.php on line 298

Du coup c'est inexploitable pour le moment.
Et c'est le même souci si je ne lance que la recherche sur le phone_work ou que sur le phone_mobile, et même si le contact n'est pas connu dans l'annuaire du sugar et que cela remonte rien.
Systématiquement j'ai une latence d'une 20ène de secondes..

Tu saurais comment solutionner ca stp ?

BYe

RE: SugarCRM - xivo - Added by Sylvain Boily 7 months ago

C'est le problème d'une AGI c'est que c'est synchrone. La rendre asynchrone pourrait rendre la tâche plus complexe et possiblement ne marcherai pas toujours. Faut regarder pourquoi ton sugarCRM mets autant de temps à répondre, peut être il faudrait refaire la mécanique de recherche pour que cela soit plus rapide. Tes erreurs sont des notice et warning donc pas vraiment des erreurs.

(1-5/5)