*************** *** 162,194 **** // Retrieve the object from Salesforce. $sf = salesforce_api_connect(); - $data = $sf->retrieve(array($account->salesforce['sfid']), $account->salesforce['fieldmap']); // Load the fieldmap data. $map = salesforce_api_fieldmap_load($account->salesforce['fieldmap']); // Load the object definitions. - $drupal_object = salesforce_api_fieldmap_objects_load('drupal', $map['drupal']); - $object = salesforce_api_fieldmap_objects_load('salesforce', $map['salesforce']); $header = array(t('Field name'), t('Drupal user value'), t('Salesforce @type value', array('@type' => salesforce_api_fieldmap_object_label('salesforce', $map['salesforce'])))); $rows = array(); - foreach ($map['fields'] as $key => $value) { - if (isset($drupal_object['fields'][$value]['export'])) { - $drupal_value = $drupal_object['fields'][$value]['export']($account, $value); } - elseif (isset($account->$value)) { - $drupal_value = $account->$value; } else { $drupal_value = ''; } $rows[] = array( - $object['fields'][$key]['label'], $drupal_value, - $data->$key, ); } --- 162,197 ---- // Retrieve the object from Salesforce. $sf = salesforce_api_connect(); + $sf_data = $sf->retrieve(array($account->salesforce['sfid']), $account->salesforce['fieldmap']); // Load the fieldmap data. $map = salesforce_api_fieldmap_load($account->salesforce['fieldmap']); // Load the object definitions. + $drupal_object_definition = salesforce_api_fieldmap_objects_load('drupal', $map['drupal']); + $sf_field_definition = salesforce_api_fieldmap_objects_load('salesforce', $map['salesforce']); $header = array(t('Field name'), t('Drupal user value'), t('Salesforce @type value', array('@type' => salesforce_api_fieldmap_object_label('salesforce', $map['salesforce'])))); $rows = array(); + foreach ($map['fields'] as $sf_fieldname => $drupal_fieldname) { + if (isset($drupal_object_definition['fields'][$drupal_fieldname]['export'])) { + $drupal_field_export_handler = $drupal_object_definition['fields'][$drupal_fieldname]['export']; + $drupal_field_definition = $drupal_object_definition['fields'][$drupal_fieldname]; + $sf_field_definition = $sf_object_definition['fields'][$sf_fieldname]; + $drupal_value = $drupal_field_export_handler($account, $drupal_fieldname, $drupal_field_definition, $sf_field_definition); } + elseif (isset($account->$drupal_fieldname)) { + $drupal_value = $account->$drupal_fieldname; } else { $drupal_value = ''; } $rows[] = array( + $sf_field_definition['fields'][$sf_fieldname]['label'], $drupal_value, + $sf_data->$sf_fieldname, ); } *************** *** 379,388 **** function sf_user_import($sfid, $fieldmap, $uid = NULL) { // Retrieve the object from Salesforce. $sf = salesforce_api_connect(); - $data = $sf->retrieve(array($sfid), $fieldmap); // Return FALSE if the object data was not found at Salesforce. - if (empty($data)) { return FALSE; } --- 382,391 ---- function sf_user_import($sfid, $fieldmap, $uid = NULL) { // Retrieve the object from Salesforce. $sf = salesforce_api_connect(); + $sf_data = $sf->retrieve(array($sfid), $fieldmap); // Return FALSE if the object data was not found at Salesforce. + if (empty($sf_data)) { return FALSE; }