Добрый день!
Создал новое поле чекбокс, добавил в карточку, хочу что бы это поле во всей базе, в уже заполненных карточках стало true. Какие есть возможности это сделать?
Знаю, что можно сделать выгрузку всей базы, затем проставить в табличном процессоре значение этого поля true и импортировать эту часть обратно. Но не хочется делать такой фокус, во первых люди непрерывно что то заполняют в базе, во вторых в ней очень много записей и боюсь что либо сломать.
Наверняка есть какой то иной способ. В документации искал, но пока что ничего не нашёл, возможно плохо ищу и если не сложно ткните носом.
Добрый день! Создал новое поле чекбокс, добавил в карточку, хочу что бы это поле во всей базе, в уже заполненных карточках стало true. Какие есть возможности это сделать? Знаю, что можно сделать выгрузку всей базы, затем проставить в табличном процессоре значение этого поля true и импортировать эту часть обратно. Но не хочется делать такой фокус, во первых люди непрерывно что то заполняют в базе, во вторых в ней очень много записей и боюсь что либо сломать. Наверняка есть какой то иной способ. В документации искал, но пока что ничего не нашёл, возможно плохо ищу и если не сложно ткните носом.
Developer Console тебе в помощь!
Developer Console тебе в помощь!
[quote="caleblt"]карточку[/quote] что есть карточка?
Сергей, спасибо за ответ, но мне ещё далеко до разработки на этой платформе. Открыл я консоль, открыл документацию по Apex и естественно понял, что пройдёт не один день, а то и не одна неделя пока я не узнаю, как обратиться ко всем нужным полям в базе данных и установить им значение.
Если не сложно подскажите, как это сделать или хотя бы укажите нужную ссылку в api apex или документации платформы.
Сергей, спасибо за ответ, но мне ещё далеко до разработки на этой платформе. Открыл я консоль, открыл документацию по Apex и естественно понял, что пройдёт не один день, а то и не одна неделя пока я не узнаю, как обратиться ко всем нужным полям в базе данных и установить им значение. Если не сложно подскажите, как это сделать или хотя бы укажите нужную ссылку в api apex или документации платформы.
[quote="Maxim Elets"][quote="caleblt"]карточку[/quote] что есть карточка?[/quote] Макет страницы. Когда я создал поле, то выставил значение по умолчанию true. Когда создаёшь новую карточку (пусть это будет карточка объекта "Контакт"), то чекбокс принимает значение true, а вот в уже созданных он появился в значении false.
Developer Console тебе в помощь!
List<Contact> contacts = [SELECT Id, Checkbox__c FROM Contact WHERE Checkbox__c = false LIMIT 10000];
for(Contact c : contacts ) {
c.Checkbox__c = true;
}
update contacts;
[quote="Sergey Prichepo"]Developer Console тебе в помощь![/quote] Да, самый простой вариант. Лучше попробуй все-таки с ней разобраться. Небольшая наводящая инструкция: 1. открыть Developer Console 2. открыть Apex Execution (CTRL+E) 3. Пиши код (исправь на свои названия): [code] List<Contact> contacts = [SELECT Id, Checkbox__c FROM Contact WHERE Checkbox__c = false LIMIT 10000]; for(Contact c : contacts ) { c.Checkbox__c = true; } update contacts; [/code] Но это установит Checkbox__c в True для ВСЕХ записей без исключения. Если тебе надо как-то сузить выборку добавляй в секцию WHERE нужные условия.
Спасибо большое! А значение LIMIT я так понимаю на количество записей в списке? Его по идее можно поднять до 50000 (где то натыкался в документации на это значение)?
Спасибо большое! А значение LIMIT я так понимаю на количество записей в списке? Его по идее можно поднять до 50000 (где то натыкался в документации на это значение)?
10000 это максимум для DML операции
update contacts;
Если у тебя будет хотя бы 10001 запись на этой строчке получишь exception и ничего не сохранится.
50000 это максимум для выборки данных из базы - SOQL запросы.
10000 это максимум для DML операции update contacts; Если у тебя будет хотя бы 10001 запись на этой строчке получишь exception и ничего не сохранится. 50000 это максимум для выборки данных из базы - SOQL запросы.
List<Contact> contacts = [SELECT Id, Checkbox__c FROM Contact WHERE Checkbox__c = false LIMIT 10000];
for(Contact c : contacts ) {
c.Checkbox__c = true;
}
update contacts;
если нужно обработать больше 10000 записей, просто гоняешь этот код несколько раз, он ведь кверит только не обработанные Checkbox__c = false записи
[quote="Dmitry Shnyrev"]List<Contact> contacts = [SELECT Id, Checkbox__c FROM Contact WHERE Checkbox__c = false LIMIT 10000]; for(Contact c : contacts ) { c.Checkbox__c = true; } update contacts;[/quote] если нужно обработать больше 10000 записей, просто гоняешь этот код несколько раз, он ведь кверит только не обработанные Checkbox__c = false записи