簡體   English   中英

QuickBooks PHP DevKit數據庫查詢僅返回100行

[英]QuickBooks php DevKit database query only returning 100 rows

我正在嘗試使用DevKit遍歷我的QuickBooks Online帳戶中的所有現有客戶,並更新每個客戶的顯示名稱,以在他們的公司名稱前加上我分配給他們的公司ID。 目前,該帳戶中大約有1800個客戶。

使用下面的代碼,每次運行腳本我都可以成功處理100個客戶,但此時此刻停止。 服務客戶查詢返回的行是否有時間或數量限制? 如果是這樣,有沒有辦法增加呢? 還是問題完全是其他東西?

Quickbooks_update:

class Quickbooks_Update extends CI_Controller
{
    function quickbooks_add(){
        require_once 'application/QuickBooks/config.php';
        $this->load->model('companyAccounts');
        $success = array();
        $failed = array();
        $duplicate = array();
        $not_exist = array();

        $CustomerService = new QuickBooks_IPP_Service_Customer();

        $customers = $CustomerService->query($Context, $realm, "SELECT * FROM Customer ");

        foreach($customers as $customer) {

            $name = $customer->getCompanyName();

            $q = $this->db->select('companyAccountId');
            $q = $this->db->from('companyAccounts');
            $q = $this->db->where('companyName', $name);
            $q = $this->db->get();
            $results = $q->result();

            foreach($results as $company){
                $companyId = $company->companyAccountId;
            }
            if(sizeof($results) == 1){
                $customer->setDisplayName($companyId . '-' . $name);
                $resp = $CustomerService->update($Context, $realm, $customer->getId(), $customer);
                if(!$resp){
                    array_push($failed, $name);
                }else{
                    array_push($success, $name);
                }
            }
            else if(sizeof($results) == 0){
               array_push($not_exist, $name);
            }
            else{
                array_push($duplicate, $name);
            }
        }
        $data['success'] = $success;
        $data['failed'] = $failed;
        $data['duplicate'] = $duplicate;
        $data['not_exist'] = $not_exist;
        $this->load->view('quickbooks', $data);
    }
}

謝謝!

默認情況下,QuickBooks Online一次僅返回100行。

如果您參考文檔:

https://developer.intuit.com/docs/0100_accounting/0300_developer_guides/querying_data

您會發現許多示例,這些示例說明如何使用STARTPOSITIONMAXRESULTS控制返回的記錄數量:

SELECT * FROM Invoice WHERE Status = 'Synchronized'STARTPOSITION 1 MAXRESULTS 10

SELECT * FROM Invoice WHERE Status = 'Synchronized'STARTPOSITION 11 MAXRESULTS 10

引用文檔:

要瀏覽結果,請指定STARTPOSITION(實體在查詢結果中的位置)和MAXRESULTS(結果中實體的最大數量)。

和:

響應中最多可以返回1000個實體。如果未指定結果大小,則默認數量為100。如果查詢返回許多實體,請按分頁中的說明以塊的形式獲取實體。 要確定特定查詢返回的實體數,請在查詢中使用COUNT關鍵字進行探測。 有關詳細信息,請參見計數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM