+ Reply to Thread
Page 3 of 3 FirstFirst 123
Results 21 to 24 of 24
This is a discussion on Null values inserting into database within the Salesforce PHP Tutorials forums, part of the Salesforce category; Just the soql to match my objects. The toolkit is 13.0. Thanks.
  1. #21
    Alex is offline Junior Member
    Join Date
    Apr 2009
    Posts
    4
    Just the soql to match my objects. The toolkit is 13.0.

    Thanks.

  2. #22
    mike's Avatar
    mike is offline Administrator
    Join Date
    May 2007
    Location
    Wylie, Texas
    Posts
    607
    Blog Entries
    16
    Alex try this:

    PHP Code:
    <?php
    ini_set
    ("soap.wsdl_cache_enabled","0");


    require_once (
    './includes/soapclient/SforcePartnerClient.php');

    /***************************************************************************** 
    *  This script uses ADODb, you must have ADOdb installed or in a common      *
    *  folder to run this script.  The best way to do this is to go to           *
    *  http://adodb.sourceforge.net/ and download the latest version and install *
    *  it in your include_path in the php.ini file.                              *
    ******************************************************************************/
    require_once ('./includes/adodb.inc.php'); 
     
    $db NewADOConnection('mysql');


    //MySQL database connection information
    $db->Connect("localhost","sfmysql","sfmysql","sf_live");

    //Truncate current database to establish a refresh
    $sql "TRUNCATE TABLE sf_lyris_live_account";
    if (
    $db->Execute($sql)) echo "<strong>Account Table Truncated</strong><br />";

    //Salesforce Connection information
    $wsdl './includes/soapclient/partner.wsdl.xml';
    $userName "myuser";
    $password "mypass";


    //setup connection
    $client = new SforcePartnerClient();
    $client->createConnection($wsdl);
    $loginResult $client->login($userName,$password);

    //SOQL query for Object in Salesforce
    //$soql = "Select Id, IsDeleted, MasterRecordId, Name, Type, ParentId, BillingStreet, BillingCity, BillingState, BillingPostalCode, BillingCountry, ShippingStreet, ShippingCity, ShippingState, ShippingPostalCode, ShippingCountry, Phone, Fax, AccountNumber, Website, Sic, Industry, AnnualRevenue, NumberOfEmployees, Ownership, TickerSymbol, Description, Rating, Site, OwnerId, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, LastActivityDate, Account_Description__c, Area__c, End_Equipment__c, FY_CY_Auto_Info__c, FY_CY_Automotive__c, FY_CY_Communications__c, FY_CY_HSSP__c, SA_ID__c, FY_CY_Info_Comm__c, FY_CY_ISP__c, FY_CY_Micros__c, FY_CY_Mixed_Signal_1__c, FY_CY_Mixed_Signal_2__c, FY_CY_MM__c, FY_CY_Notebook__c, FY_CY_Optocon__c, FY_CY_SPC__c, FY_CY_SPM__c, FY_CY_SSIP__c, FY_CY_Thermal_Battery__c, FY_CY_Total_Design__c, FY_CY_Total_Purchasing__c, FY_CY_Wireless__c, Inactive__c, maxim_id__c, Region__c, Status__c, WebID__c FROM Account";

    $soql "Select Id, IsDeleted, MasterRecordId, Name, Type, ParentId, BillingStreet, BillingCity, BillingState, BillingPostalCode, BillingCountry, ShippingStreet, ShippingCity, ShippingState, ShippingPostalCode, ShippingCountry, Phone, Fax, Website, Industry, AnnualRevenue, NumberOfEmployees, Description, OwnerId, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, LastActivityDate, Server_Farm__c, Partner_Site_ID__c, Account_Created_by_Service__c, Customer_ID__c, Account_Confirmed_by_Service__c, Number_of_EA_Audits__c, MRR__c, Related_Fields__c, Customer_ID_Group__c, Sales_Rep__c, Account_Manager_Rep__c, Account_Priority__c, LHQ_Org_ID__c, Active__c, Contract_IDs__c, Weekly_Reported__c, Dedicated_IP__c, Account_Product_Group__c FROM Account";

    //Processes the query to get account information from Salesforce
    $records get_records($client,$soql,$db);

    if (
    $records === false)
    {
        
    //mail("mike.simonds@maxim-ic.com","PHP Product2 Script  Error","There has been an error in the product2 replication script\nPlease Check Script");
    }
    echo 
    '<p>There are currently '.$records.' products:</p>';

    $today date("F j, Y, g:i a");
    $end 'Product2 Import script ended at '.$today.' and inserted '.$records.' into the database';


    function 
    get_records($connection,$query,$db)
    {

        
    //Set this to the number of records to process per batch
        //200 is the minimum
        
    $queryOptions = new QueryOptions(200);
        
    $connection->setQueryOptions($queryOptions);

        
    $response $connection->query(($query),$queryOptions);

        
    //for debugging
        //echo '<pre>' . print_r($response,true) . '</pre>';
        //exit;

        
    if ($response->size 0)
        {
            
    $records $response->records;
            
    // Cycles through additional responses if the number of records// exceeds the batch size
            
    $count_records 0;
            while (!
    $response->done)
            {
                
    $records $response->records;
                
    set_time_limit(100);
                
    ini_set("memory_limit","512M");


                
    //Process curent $records
                
    $current_count store_in_db($records,$db);

                if (
    $current_count === false)
                {
                    return 
    false;
                }
                else
                {
                    
    $count_records += $current_count;
                }
                echo 
    "processed ".$count_records." records<br />";
                
    flush();

                
    $response $connection->queryMore($response->queryLocator,$queryOptions);


            }
            
    set_time_limit(100);
            
    $records $response->records;
            
    //Process curent $records

            //store the last set of records into the database
            
    $current_count store_in_db($records,$db);

            if (
    $current_count === false)
            {
                return 
    false;
            }
            else
            {
                
    $count_records += $current_count;
            }
        }

        return 
    $count_records;
    }

    /*Function to store records into
    * database in chunks of the $queryOptions = new QueryOptions(200);*/
    function store_in_db($records,$db)
    {
      
        
    $record_count count($records);
        
    //echo $record_count;
        
    $rows_loaded 0;

       foreach (
    $records as $r)
        {
            
            echo 
    '<pre>' print_r($r,true) . '</pre>'
            exit(); 
            
    $pass_this['id'] = $r->Id;

            
    //echo '<pre>' . print_r($pass_this,true) . '</pre>';  
            
    foreach ($r->fields as $key => $value)
            {
                
    $pass_this[$key] = addslashes($r->fields->$key);
            }


            
    $fields implode(",",array_keys($pass_this));
            
    $values implode("','",array_values($pass_this));
            
            
    $query "INSERT INTO sf_lyris_live_account (".$fields.") VALUES ('".$values."')";
            
            
            
    //executes and loads data coming from salesforce into table
            
    if ($db->Execute($query))
            {
                
    $rows_loaded++;
            }
            else
            {
                echo 
    $db->ErrorMsg()."<br />";
                return 
    false;
            }
            
    //exit;
        
    }
        return 
    $rows_loaded;

    }

    ?>
    It is because of the toolkit, that is why, the object does not need to be initialized. Look at 130 and 131, run the script and see if the print_r works, if it does, comment both lines out and then re-run your script. It should work


    ~Mike

  3. #23
    Alex is offline Junior Member
    Join Date
    Apr 2009
    Posts
    4
    That did the trick Mike. Thank you very much. Your script is much appreciated.

  4. #24
    mike's Avatar
    mike is offline Administrator
    Join Date
    May 2007
    Location
    Wylie, Texas
    Posts
    607
    Blog Entries
    16
    great Alex, glad you got it working

+ Reply to Thread
Page 3 of 3 FirstFirst 123

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

SEO by vBSEO 3.5.2