You are here

function salesforce_api_fieldmap_clone in Salesforce Suite 5.2

Same name and namespace in other branches
  1. 6.2 salesforce_api/salesforce_api.module \salesforce_api_fieldmap_clone()
  2. 7 salesforce_api/salesforce_api.module \salesforce_api_fieldmap_clone()
  3. 7.2 salesforce_api/salesforce_api.module \salesforce_api_fieldmap_clone()

Clones a fieldmap, updating fields as necessary for a change in action.

Parameters

$index: The index of the fieldmap to clone.

$action: The action to switch to for the cloned fieldmap.

Return value

The newly created fieldmap or FALSE if the clone failed.

1 call to salesforce_api_fieldmap_clone()
salesforce_api_fieldmap_clone_form_submit in salesforce_api/salesforce_api.admin.inc

File

salesforce_api/salesforce_api.module, line 487
Defines an API that enables modules to interact with the Salesforce server.

Code

function salesforce_api_fieldmap_clone($index, $action) {

  // Load the fieldmap from the database.
  $map = salesforce_api_fieldmap_load($index);

  // Return FALSE if the source fieldmap does not exist.
  if (empty($map)) {
    return FALSE;
  }

  // Assign a new index to the fieldmap.
  $map['index'] = salesforce_api_fieldmap_next_index();

  // Switch the action and update the fields if necessary.
  if ($map['action'] != $action) {
    $map['action'] = $action;
    $fields = array();

    // Loop through all the fields to reverse the associations.
    foreach ($map['fields'] as $key => $value) {

      // If a value hasn't been set for the old source field, set it now.
      if (empty($fields[$value])) {
        $fields[$value] = $key;
      }
    }

    // Update the fieldmap with the new fields array.
    $map['fields'] = $fields;
  }

  // Save the new fieldmap and return its index.
  salesforce_api_fieldmap_save($map);
  return $map;
}