function sf_queue_enqueue in Salesforce Suite 6.2
Same name and namespace in other branches
- 7.2 sf_queue/sf_queue.module \sf_queue_enqueue()
Helper function to add / update a queue item.
2 calls to sf_queue_enqueue()
- sf_queue_salesforce_api_delete in sf_queue/
sf_queue.module - Implements hook_salesforce_api_delete()
- sf_queue_salesforce_api_pre_export in sf_queue/
sf_queue.module - Implements hook_salesforce_api_pre_export
File
- sf_queue/
sf_queue.module, line 116 - sf_queue.module Implements export queue and administrativa for SalesForce API
Code
function sf_queue_enqueue($op, $sf_object, $map, $oid) {
$object = (object) array(
'sf_op' => $op,
'oid' => $oid,
'attempts' => 0,
'created' => time(),
'sfid' => empty($sf_object->Id) ? '' : $sf_object->Id,
// will be blank on create
'drupal_type' => $map->drupal,
'sf_type' => $map->salesforce,
'name' => md5(microtime()),
'fieldmap_name' => $map->name,
'sf_data' => $sf_object,
);
$update = array();
$sql = 'SELECT oid
FROM {salesforce_export_queue}
WHERE drupal_type = "%s" AND fieldmap_name = "%s" AND oid = %d';
// If an existing operation is queued for this drupal object / fieldmap pair,
// update the queue by merging the two records instead of appending to it.
if ($existing = db_fetch_array(db_query($sql, $map->drupal, $map->name, $oid))) {
$update = 'oid';
$object->oid = $existing['oid'];
}
// If we successfully wrote to the queue, then we return FALSE to prevent an
// immediate salesforce export. If we failed to write to the queue, log an
// error but don't prevent the export.
if (drupal_write_record('salesforce_export_queue', $object, $update)) {
if (user_access('administer salesforce')) {
drupal_set_message(t('Drupal !type queued for SalesForce export.', array(
'!type' => $map->drupal,
)));
}
return FALSE;
}
else {
watchdog('sf_queue', 'Failed to queue SalesForce object. <pre>' . print_r($object, 1) . print_r($sf_object, 1) . '</pre>');
return TRUE;
}
}