function sf_queue_handle_deletes in Salesforce Suite 6.2
Same name and namespace in other branches
- 7.2 sf_queue/sf_queue.module \sf_queue_handle_deletes()
Helper function to process queue deletes. Since we can delete across object types by SFID alone, plow through 200 deletes at a time, oldest first.
1 call to sf_queue_handle_deletes()
- sf_queue_process_queue in sf_queue/
sf_queue.module
File
- sf_queue/
sf_queue.module, line 218 - sf_queue.module Implements export queue and administrativa for SalesForce API
Code
function sf_queue_handle_deletes($settings) {
$args = array();
$sql = "SELECT id, oid, fieldmap_name, drupal_type, sf_type, sfid\n FROM {salesforce_export_queue}\n WHERE sf_op = 'delete'";
if ($settings['retry_num_attempts'] >= 0) {
$sql .= ' AND attempts < %d';
$args[] = $settings['retry_num_attempts'] + 1;
}
$sql .= ' ORDER BY created LIMIT ' . $settings['cron_num_objects'];
$done = FALSE;
$sfids = $deletes = $real_deletes = $fails = array();
$result = db_query($sql, $args);
while ($row = db_fetch_array($result)) {
$sfids[] = $row['sfid'];
$deletes[] = $row;
}
if (count($deletes) == 0) {
return;
}
if ($settings['cron_min_threshold'] && count($deletes) < $settings['cron_min_threshold']) {
return;
}
try {
$sf = salesforce_api_connect();
$responses = $sf->client
->delete($sfids);
sf_queue_handle_responses($responses, $deletes);
} catch (Exception $e) {
sf_queue_handle_exception($e, $deletes);
}
// Now we need to delete the entry from salesforce_object_map
}