public function MigrateDestinationCRMCoreActivity::import in CRM Core 7
Import a single activity.
Parameters
$activity: Activity object to build. Prefilled with any fields mapped in the Migration.
$row: Raw source data object - passed through to prepare/complete handlers.
Return value
array Array of key fields (activity_id only in this case) of the activity that was saved if successful. FALSE on failure.
Overrides MigrateDestination::import
File
- modules/
crm_core_activity/ includes/ crm_core_activity.migrate.inc, line 75
Class
Code
public function import(stdClass $activity, stdClass $row) {
$migration = Migration::currentMigration();
if (isset($row->migrate_map_destid1)) {
// This is an update to an existing contact.
if (isset($activity->activity_id)) {
if ($activity->activity_id != $row->migrate_map_destid1) {
$string = "Incoming activity_id !activity_id and map destination activity_id !destid1 don't match";
$params = array(
'!activity_id' => $activity->activity_id,
'!destid1' => $row->migrate_map_destid1,
);
throw new MigrateException(t($string), $params);
}
}
else {
$activity->activity_id = $row->migrate_map_destid1;
}
}
if ($migration
->getSystemOfRecord() == Migration::DESTINATION) {
if (!isset($activity->activity_id)) {
throw new MigrateException(t('System-of-record is DESTINATION, but no destination activity_id provided'));
}
$old_activity = crm_core_activity_load($activity->activity_id);
if (empty($old_activity)) {
$string = 'System-of-record is DESTINATION, but activity !activity_id does not exist';
$params = array(
'!activity_id' => $activity->activity_id,
);
throw new MigrateException(t($string), $params);
}
}
if (!isset($activity->type)) {
// Default the type to our designated destination bundle (by doing this
// conditionally, we permit some flexibility in terms of implementing
// migrations which can affect more than one type).
$activity->type = $this->bundle;
}
// Set default properties.
if ($migration
->getSystemOfRecord() == Migration::SOURCE) {
if (!isset($activity->created)) {
$activity->created = REQUEST_TIME;
}
}
$this
->prepare($activity, $row);
if (isset($activity->activity_id)) {
$updating = TRUE;
}
else {
$updating = FALSE;
}
migrate_instrument_start('activity_save');
crm_core_activity_save($activity);
migrate_instrument_stop('activity_save');
if (isset($activity->activity_id)) {
if ($updating) {
$this->numUpdated++;
}
else {
$this->numCreated++;
}
$return = array(
$activity->activity_id,
);
}
else {
$return = FALSE;
}
$this
->complete($activity, $row);
return $return;
}