function sf_queue_enqueue in Salesforce Suite 7.2
Same name and namespace in other branches
- 6.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 117 - 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' => REQUEST_TIME,
'sfid' => empty($sf_object->Id) ? '' : $sf_object->Id,
// will be blank on create
'drupal_type' => $map->drupal_entity,
'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('SELECT oid
FROM {salesforce_export_queue}
WHERE drupal_type = :drupal_type AND fieldmap_name = :fieldmap_name AND oid = :oid', array(
':drupal_type' => $map->drupal_entity,
':fieldmap_name' => $map->name,
':oid' => $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_entity,
)));
}
return FALSE;
}
else {
watchdog('sf_queue', 'Failed to queue Salesforce object. <pre>' . print_r($object, 1) . print_r($sf_object, 1) . '</pre>');
return TRUE;
}
}