Извлечение удаленных записей из Apex data loader?
-
18-09-2019 - |
Вопрос
Есть ли у кого-нибудь какие-либо идеи, как извлечь данные удаленных записей из Apex data loader или иным образом из Salesforce, кроме как из веб-службы?
Решение
Ты не можешь.Единственный способ получить удаленные записи через API - это использовать queryAll , а DataLoader никогда не использует queryAll.
(Извините за воскрешение здесь.)
Другие советы
Проверьте документацию: https://na7.salesforce.com/help/doc/en/salesforce_data_loader.pdf
Если используется графический интерфейс версии v20 или выше, у вас будет кнопка Экспортировать все.
Из версии командной строки process-config.xml файл должен иметь значение атрибута process.operation, равное "extract_all" (в документации указано "Извлечь все", но это не работает).
Использование любого из этих вышеперечисленных параметров позволит извлечь автоматически удаленные записи и позволит вам выполнить фильтрацию по IsDeleted = true или false.(Вы можете включить этот фильтр независимо, но без использования вышеуказанных параметров IsDeleted=true всегда будет возвращать нулевые записи).
Надеюсь, это поможет.
P.S.В Apex все немного по-другому.Ваш запрос SOQL будет [Выберите идентификатор из учетной записи, где IsDeleted=false все строки] Дополнение 'все строки' является верхним эквивалентом 'извлечь все'.
В Dataloader используйте ЭКСПОРТИРОВАТЬ ВСЕ кнопка, а не ЭКСПОРТ кнопка
Это дает вам доступ к удаленным и заархивированным записям.
Откатите их с помощью нескольких строк кода Apex в системном журнале.Например:
Account[] a = [select id from Account where isDeleted=true ALL ROWS];
undelete a;
system.debug(a);
Это должно работать до тех пор, пока вы не использовали emptyRecycleBin()
(который по-прежнему будет возвращать результаты запроса, но не позволит восстановить, поскольку записи теперь будут помечены для физического удаления).Возьмите несколько идентификаторов из результатов USER_DEBUG для a
чтобы подтвердить, что это сработало.
Попробуй extract
, extract_all
, hard_delete
.
Я надеюсь, что еще не слишком поздно.
Есть три способа сделать это.
- Корзина для мусора.В "Корзина" измените параметр на "Вся корзина".Это похоже на мягкое удаление, мы можем получить запись.Если вы не получили свою запись из корзины
Верстак.В workbench выберите soql query и требуемый вами объект и создайте запрос, подобный этому примеру.
SELECT Id,Name,AccountId,Isdeleted,CreatedDate,StageName FROM Opportunity where isdeleted =true
в этом разделе мы не получили запись, мы знаем информацию о записи opportunity.
- Загрузчик данных.Он также работает как workbench, и вы можете повторно просмотреть информацию из записи.Выберите опцию exportall, выделите необходимые поля и установите фильтр типа is deleted, это true.