problems with vtwsclib

View: New views
3 Messages — Rating Filter:   Alert me  

problems with vtwsclib

by fusioncore :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi
I have create a plugin for my website who create account and contact in
vtiger when a customer register on the website.
For this purpose, I use vtwsclib 1.2 with php doCreate method
after the script creation, I test it and it work well with contact
creation but for the account, nothing was add on vtiger.
The method LastError was on error when I use it

I paste my code if anyone have an idea of the error. See the bug part of
the file around the //bug
The include files access.php contain only url, login and password and
the functions.php contain functions addPortalAccess and addDate who work
perfectly

Thanks,
Bruno
French-vtiger Manager




<?php

include_once('/var/www/site/access.php');        //logins site & CRM
include_once('vtwsclib/Vtiger/WSClient.php');        //Librairie SOAP CRM
include_once('/var/www/site/www/sync/functions.php');

//Connexion base de données
mysql_connect($sitedbhost,$sitedbuser,$sitedbpassword,$sitedb);
mysql_select_db($sitedb);

//Vérification si il y a des users a synchroniser
$verif = mysql_query("SELECT NULLIF(1, (SELECT MIN(sync_crm) FROM users))");
$verif1 = mysql_result($verif, 0, 0);
//echo"$verif1";
if ($verif1 == "")
    echo "Nothing to sync";
else
    {
    //Comptage du nombre d'utilisateurs à synchroniser
    $test_needed = mysql_query("SELECT COUNT(0) FROM jos_users WHERE
sync_crm=0 GROUP BY sync_crm");
    $sync_needed = mysql_result($test_needed, 0, 0);
    //*echo "number of non sync user : $sync_needed";
    while ($sync_needed >= 1)        //Boucle tant qu'on a des users a
synchroniser
        {
            $result = mysql_query("SELECT id FROM users WHERE sync_crm=0");
            $current_user_sync = mysql_result($result, 0, 0);
            //*echo "<br />Id of current sync user :
$current_user_sync<br />";

            //Extraction des infos de l'utilisateur
           
            $user_extend = mysql_query("SELECT * FROM
juser_extended_data WHERE user_id='$current_user_sync'");
            $ident = mysql_query("SELECT * FROM users WHERE
id='$current_user_sync'");
            $identity = mysql_result($ident, 0, name);
            $name = explode("\n", $identity);
            // Champs pour le compte
            $prenom = $name[0];
            $nom = $name[1];
            $email = mysql_result($ident, 0, email);
            $telephone1 = mysql_result($user_extend,2 ,fvalue);
            //Champs pour le contact
            $societe = mysql_result($user_extend,1 ,fvalue);
            $telephone2 = mysql_result($user_extend,3 ,fvalue);
            $fax = mysql_result($user_extend,4 ,fvalue);
            $siret = mysql_result($user_extend,5 ,fvalue);
            $codeape = mysql_result($user_extend,6 ,fvalue);
            $secteur = mysql_result($user_extend,7 ,fvalue);
            $poste = mysql_result($user_extend,8 ,fvalue);
            $nbsalaries = mysql_result($user_extend,9 ,fvalue);
            $site = mysql_result($user_extend,10 ,fvalue);
            $adresse = mysql_result($user_extend,11 ,fvalue);
            $BP = mysql_result($user_extend,12 ,fvalue);
            $CP = mysql_result($user_extend,13 ,fvalue);
            $ville = mysql_result($user_extend,14 ,fvalue);
            $pays = mysql_result($user_extend,15 ,fvalue);
            $username = mysql_result($ident ,0, username);
            $passwd = mysql_result($ident, 0, password);
           
            //Fin d'extration des infos de l'utilisateur
//bug start          
            //Connexion au CRM
            $client = new Vtiger_WSClient($crm_url);
           
            $login = $client->doLogin($crm_username, $crm_accesskey);
            if(!$login)
                echo 'Login Failed';
            else
                {
                /**/echo "Login Successful<br />";
                $module = 'Accounts';
                $module2 = 'Contacts';
               
                $record = $client->doCreate($module,
                    array(
                        'account_no'=>"$societe",
                        'phone'=>"$telephone2",
                        'fax'=>"$fax",
                        'siccode'=>"$codeape",
                        'industry'=>"$secteur",
                        'employees'=>"$nbsalaries",
                        'website'=>"$site",
                        'ship_street'=>"$adresse",
                        'ship_pobox'=>"$BP",
                        'ship_code'=>"$CP",
                        'ship_city'=>"$ville",
                        'ship_country'=>"$pays",
                        'bill_street'=>"$adresse",
                        'bill_pobox'=>"$BP",
                        'bill_code'=>"$CP",
                        'bill_city'=>"$ville",
                        'bill_country'=>"$pays",
                    )
                );
               
                if($record) {
                    $accountid = $client->getRecordId($record['id']);
                    }
                echo "new account id : $accountid <br />";

//bug end

                $record = $client->doCreate($module2,
                    array(
                        'firstname'=>"$prenom",
                        'lastname'=>"$nom",
                        'email'=>"$email",
                        'phone'=>"$telephone1",
                        'title'=>"$poste",
                        'accountid'=>"$accountid",
                    )
                );
               
                if($record) {
                    $contactid = $client->getRecordId($record['id']);
                    }
                echo "new contact id : $contactid <br />";
                   
               
addPortalAccess($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid,$username,$passwd);
               
addDate($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid);
               
                mysql_query("UPDATE users SET sync_crm=1 WHERE
id=$current_user_sync");
               
                $sync_needed--;
                }
        }
    }
?>
_______________________________________________
Reach hundreds of potential candidates - http://jobs.vtiger.com 

Re: problems with vtwsclib

by Prasad-14 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

$record = $client->doCreate($module,
    array(

    'account_no'=>"$societe",
    'phone'=>"$telephone2",
    'fax'=>"$fax",
    ...
    )
);

if($record === false) {
     echo "Creation Error! " . $client->lastError();
} else {
     $accountid = $client->getRecordId($record['id']);
    
echo "new account id : $accountid <br />";
}

accountname is mandatory field which is not set in the parameters.
This could be a reason for failure. The if condition is fine but else condition (on error) is not captured. Highlighted is piece of code that could help in debugging.

Regards,
Prasad
vtiger Team

On 9/24/09, Fusioncore <ml@...> wrote:
Hi
I have create a plugin for my website who create account and contact in
vtiger when a customer register on the website.
For this purpose, I use vtwsclib 1.2 with php doCreate method
after the script creation, I test it and it work well with contact
creation but for the account, nothing was add on vtiger.
The method LastError was on error when I use it

I paste my code if anyone have an idea of the error. See the bug part of
the file around the //bug
The include files access.php contain only url, login and password and
the functions.php contain functions addPortalAccess and addDate who work
perfectly

Thanks,
Bruno
French-vtiger Manager




<?php

include_once('/var/www/site/access.php');        //logins site & CRM
include_once('vtwsclib/Vtiger/WSClient.php');        //Librairie SOAP CRM
include_once('/var/www/site/www/sync/functions.php');

//Connexion base de données
mysql_connect($sitedbhost,$sitedbuser,$sitedbpassword,$sitedb);
mysql_select_db($sitedb);

//Vérification si il y a des users a synchroniser
$verif = mysql_query("SELECT NULLIF(1, (SELECT MIN(sync_crm) FROM users))");
$verif1 = mysql_result($verif, 0, 0);
//echo"$verif1";
if ($verif1 == "")
    echo "Nothing to sync";
else
    {
    //Comptage du nombre d'utilisateurs à synchroniser
    $test_needed = mysql_query("SELECT COUNT(0) FROM jos_users WHERE
sync_crm=0 GROUP BY sync_crm");
    $sync_needed = mysql_result($test_needed, 0, 0);
    //*echo "number of non sync user : $sync_needed";
    while ($sync_needed >= 1)        //Boucle tant qu'on a des users a
synchroniser
        {
            $result = mysql_query("SELECT id FROM users WHERE sync_crm=0");
            $current_user_sync = mysql_result($result, 0, 0);
            //*echo "<br />Id of current sync user :
$current_user_sync<br />";

            //Extraction des infos de l'utilisateur

            $user_extend = mysql_query("SELECT * FROM
juser_extended_data WHERE user_id='$current_user_sync'");
            $ident = mysql_query("SELECT * FROM users WHERE
id='$current_user_sync'");
            $identity = mysql_result($ident, 0, name);
            $name = explode("\n", $identity);
            // Champs pour le compte
            $prenom = $name[0];
            $nom = $name[1];
            $email = mysql_result($ident, 0, email);
            $telephone1 = mysql_result($user_extend,2 ,fvalue);
            //Champs pour le contact
            $societe = mysql_result($user_extend,1 ,fvalue);
            $telephone2 = mysql_result($user_extend,3 ,fvalue);
            $fax = mysql_result($user_extend,4 ,fvalue);
            $siret = mysql_result($user_extend,5 ,fvalue);
            $codeape = mysql_result($user_extend,6 ,fvalue);
            $secteur = mysql_result($user_extend,7 ,fvalue);
            $poste = mysql_result($user_extend,8 ,fvalue);
            $nbsalaries = mysql_result($user_extend,9 ,fvalue);
            $site = mysql_result($user_extend,10 ,fvalue);
            $adresse = mysql_result($user_extend,11 ,fvalue);
            $BP = mysql_result($user_extend,12 ,fvalue);
            $CP = mysql_result($user_extend,13 ,fvalue);
            $ville = mysql_result($user_extend,14 ,fvalue);
            $pays = mysql_result($user_extend,15 ,fvalue);
            $username = mysql_result($ident ,0, username);
            $passwd = mysql_result($ident, 0, password);

            //Fin d'extration des infos de l'utilisateur
//bug start
            //Connexion au CRM
            $client = new Vtiger_WSClient($crm_url);

            $login = $client->doLogin($crm_username, $crm_accesskey);
            if(!$login)
                echo 'Login Failed';
            else
                {
                /**/echo "Login Successful<br />";
                $module = 'Accounts';
                $module2 = 'Contacts';

                $record = $client->doCreate($module,
                    array(
                        'account_no'=>"$societe",
                        'phone'=>"$telephone2",
                        'fax'=>"$fax",
                        'siccode'=>"$codeape",
                        'industry'=>"$secteur",
                        'employees'=>"$nbsalaries",
                        'website'=>"$site",
                        'ship_street'=>"$adresse",
                        'ship_pobox'=>"$BP",
                        'ship_code'=>"$CP",
                        'ship_city'=>"$ville",
                        'ship_country'=>"$pays",
                        'bill_street'=>"$adresse",
                        'bill_pobox'=>"$BP",
                        'bill_code'=>"$CP",
                        'bill_city'=>"$ville",
                        'bill_country'=>"$pays",
                    )
                );

                if($record) {
                    $accountid = $client->getRecordId($record['id']);
                    }
                echo "new account id : $accountid <br />";

//bug end

                $record = $client->doCreate($module2,
                    array(
                        'firstname'=>"$prenom",
                        'lastname'=>"$nom",
                        'email'=>"$email",
                        'phone'=>"$telephone1",
                        'title'=>"$poste",
                        'accountid'=>"$accountid",
                    )
                );

                if($record) {
                    $contactid = $client->getRecordId($record['id']);
                    }
                echo "new contact id : $contactid <br />";


addPortalAccess($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid,$username,$passwd);

addDate($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid);

                mysql_query("UPDATE users SET sync_crm=1 WHERE
id=$current_user_sync");

                $sync_needed--;
                }
        }
    }
?>
_______________________________________________
Reach hundreds of potential candidates - http://jobs.vtiger.com


_______________________________________________
Reach hundreds of potential candidates - http://jobs.vtiger.com 

Re: problems with vtwsclib

by fusioncore :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks Prasad,

I have modifiy your solution to print the error array
            if($record === false) {
     echo "Creation Error! " . $client->lastError();echo print_r($client);
} else {
     $accountid = $client->getRecordId($record['id']);
     echo "new account id : $accountid <br />";
}

My code is based on the documentation. I think you can update it with
this for next release. It can be usefull.

Thanks,
Bruno
Franch-vTiger Manager


Prasad a écrit :

> Hi,
>
> $record = $client->doCreate($module,
>     array(
>     'account_no'=>"$societe",
>     'phone'=>"$telephone2",
>     'fax'=>"$fax",
>     ...
>     )
> );
>
> if($record === false) {
>      echo "Creation Error! " . $client->lastError();
> } else {
>      $accountid = $client->getRecordId($record['id']);
>      echo "new account id : $accountid <br />";
> }
>
> accountname is mandatory field which is not set in the parameters.
> This could be a reason for failure. The if condition is fine but else
> condition (on error) is not captured. Highlighted is piece of code
> that could help in debugging.
>
> Regards,
> Prasad
> vtiger Team
>
> On 9/24/09, *Fusioncore* <ml@... <mailto:ml@...>> wrote:
>
>     Hi
>     I have create a plugin for my website who create account and
>     contact in
>     vtiger when a customer register on the website.
>     For this purpose, I use vtwsclib 1.2 with php doCreate method
>     after the script creation, I test it and it work well with contact
>     creation but for the account, nothing was add on vtiger.
>     The method LastError was on error when I use it
>
>     I paste my code if anyone have an idea of the error. See the bug
>     part of
>     the file around the //bug
>     The include files access.php contain only url, login and password and
>     the functions.php contain functions addPortalAccess and addDate
>     who work
>     perfectly
>
>     Thanks,
>     Bruno
>     French-vtiger Manager
>
>
>
>
>     <?php
>
>     include_once('/var/www/site/access.php');        //logins site & CRM
>     include_once('vtwsclib/Vtiger/WSClient.php');        //Librairie
>     SOAP CRM
>     include_once('/var/www/site/www/sync/functions.php');
>
>     //Connexion base de données
>     mysql_connect($sitedbhost,$sitedbuser,$sitedbpassword,$sitedb);
>     mysql_select_db($sitedb);
>
>     //Vérification si il y a des users a synchroniser
>     $verif = mysql_query("SELECT NULLIF(1, (SELECT MIN(sync_crm) FROM
>     users))");
>     $verif1 = mysql_result($verif, 0, 0);
>     //echo"$verif1";
>     if ($verif1 == "")
>         echo "Nothing to sync";
>     else
>         {
>         //Comptage du nombre d'utilisateurs à synchroniser
>         $test_needed = mysql_query("SELECT COUNT(0) FROM jos_users WHERE
>     sync_crm=0 GROUP BY sync_crm");
>         $sync_needed = mysql_result($test_needed, 0, 0);
>         //*echo "number of non sync user : $sync_needed";
>         while ($sync_needed >= 1)        //Boucle tant qu'on a des users a
>     synchroniser
>             {
>                 $result = mysql_query("SELECT id FROM users WHERE
>     sync_crm=0");
>                 $current_user_sync = mysql_result($result, 0, 0);
>                 //*echo "<br />Id of current sync user :
>     $current_user_sync<br />";
>
>                 //Extraction des infos de l'utilisateur
>
>                 $user_extend = mysql_query("SELECT * FROM
>     juser_extended_data WHERE user_id='$current_user_sync'");
>                 $ident = mysql_query("SELECT * FROM users WHERE
>     id='$current_user_sync'");
>                 $identity = mysql_result($ident, 0, name);
>                 $name = explode("\n", $identity);
>                 // Champs pour le compte
>                 $prenom = $name[0];
>                 $nom = $name[1];
>                 $email = mysql_result($ident, 0, email);
>                 $telephone1 = mysql_result($user_extend,2 ,fvalue);
>                 //Champs pour le contact
>                 $societe = mysql_result($user_extend,1 ,fvalue);
>                 $telephone2 = mysql_result($user_extend,3 ,fvalue);
>                 $fax = mysql_result($user_extend,4 ,fvalue);
>                 $siret = mysql_result($user_extend,5 ,fvalue);
>                 $codeape = mysql_result($user_extend,6 ,fvalue);
>                 $secteur = mysql_result($user_extend,7 ,fvalue);
>                 $poste = mysql_result($user_extend,8 ,fvalue);
>                 $nbsalaries = mysql_result($user_extend,9 ,fvalue);
>                 $site = mysql_result($user_extend,10 ,fvalue);
>                 $adresse = mysql_result($user_extend,11 ,fvalue);
>                 $BP = mysql_result($user_extend,12 ,fvalue);
>                 $CP = mysql_result($user_extend,13 ,fvalue);
>                 $ville = mysql_result($user_extend,14 ,fvalue);
>                 $pays = mysql_result($user_extend,15 ,fvalue);
>                 $username = mysql_result($ident ,0, username);
>                 $passwd = mysql_result($ident, 0, password);
>
>                 //Fin d'extration des infos de l'utilisateur
>     //bug start
>                 //Connexion au CRM
>                 $client = new Vtiger_WSClient($crm_url);
>
>                 $login = $client->doLogin($crm_username, $crm_accesskey);
>                 if(!$login)
>                     echo 'Login Failed';
>                 else
>                     {
>                     /**/echo "Login Successful<br />";
>                     $module = 'Accounts';
>                     $module2 = 'Contacts';
>
>                     $record = $client->doCreate($module,
>                         array(
>                             'account_no'=>"$societe",
>                             'phone'=>"$telephone2",
>                             'fax'=>"$fax",
>                             'siccode'=>"$codeape",
>                             'industry'=>"$secteur",
>                             'employees'=>"$nbsalaries",
>                             'website'=>"$site",
>                             'ship_street'=>"$adresse",
>                             'ship_pobox'=>"$BP",
>                             'ship_code'=>"$CP",
>                             'ship_city'=>"$ville",
>                             'ship_country'=>"$pays",
>                             'bill_street'=>"$adresse",
>                             'bill_pobox'=>"$BP",
>                             'bill_code'=>"$CP",
>                             'bill_city'=>"$ville",
>                             'bill_country'=>"$pays",
>                         )
>                     );
>
>                     if($record) {
>                         $accountid = $client->getRecordId($record['id']);
>                         }
>                     echo "new account id : $accountid <br />";
>
>     //bug end
>
>                     $record = $client->doCreate($module2,
>                         array(
>                             'firstname'=>"$prenom",
>                             'lastname'=>"$nom",
>                             'email'=>"$email",
>                             'phone'=>"$telephone1",
>                             'title'=>"$poste",
>                             'accountid'=>"$accountid",
>                         )
>                     );
>
>                     if($record) {
>                         $contactid = $client->getRecordId($record['id']);
>                         }
>                     echo "new contact id : $contactid <br />";
>
>
>     addPortalAccess($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid,$username,$passwd);
>
>     addDate($crmdbhost,$crmdb,$crmdbuser,$crmdbpasswd,$contactid);
>
>                     mysql_query("UPDATE users SET sync_crm=1 WHERE
>     id=$current_user_sync");
>
>                     $sync_needed--;
>                     }
>             }
>         }
>     ?>
>     _______________________________________________
>     Reach hundreds of potential candidates - http://jobs.vtiger.com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Reach hundreds of potential candidates - http://jobs.vtiger.com 
_______________________________________________
Reach hundreds of potential candidates - http://jobs.vtiger.com