我正在使用SugarCRM 6.5.14 SOAP API从模块中检索条目以填充表单。我的问题是这个模块中有209个条目,但SOAP只返回20个条目。
我正在使用PHP和JS进行AJAX查询。
搜索后,我找到this answer,即使get_entries_count
返回正确的条目数,get_entry_list
仍然只返回20个条目。
这是我的PHP代码:
$soapClient = new SoapClient("http://localhost/sugar/service/v3_1/soap.php?wsdl");
try{
$info = $soapClient->login(
array(
'user_name' => "webservice",
'password' => md5("MYPASSWORD"),
)
);
}catch(SoapFault $fault){
die("E_CONNECT");
}
$sessid = $info->id;
$max_count = $soapClient->get_entries_count($sessid, "comp_module", "", false);
$soapResponse = $soapClient->get_entry_list($sessid, "comp_module", "", "comp_module.name", array(), $max_count->result_count, false);
$response = Array();
$resellersArray = $soapResponse->entry_list;
foreach($resellersArray as $reseller){
array_push($response, array("id" => $module->id, "name" => $module->name_value_list[4]->value));
}
echo json_encode($response);
答案 0 :(得分:1)
看起来您可能在签名中有一些缺少的参数。
应该是:
$soapResponse = $soapClient->get_entry_list($session,$module_name,$query,$order_by,$offset,$select_fields,$link_name_to_fields_array,$link_name,$max_results,$deleted);
因此,如果您将get_entry_list调用更改为以下内容,则应该尊重最大结果参数:
$soapResponse = $soapClient->get_entry_list($sessid, "comp_module", "", "comp_module.name", 0, array(), array(), $max_count->result_count, false);
此外,如果您使用的是6.5.14,则应继续使用v4_1 api。
$soapClient = new SoapClient("http://localhost/sugar/service/v4_1/soap.php?wsdl");