[Vtigercrm-developers] problems with vtwsclib

Prasad prasad at vtiger.com
Wed Sep 23 22:37:11 PDT 2009


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 at arceva.fr> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20090924/13bba323/attachment-0003.html 


More information about the vtigercrm-developers mailing list