как поместить формулу поверх сводки поля свертки?

Настройка

У меня есть отношение "главный-деталь", и на главном я суммирую поле из объекта "деталь".

Вопрос:

Мне нужно разрешить пользователю установить флажок на главном объекте, который будет добавлять сумму на 1 или уменьшать на 1. Как мне это сделать?

Вот что я пробовал:

  1. В триггере после обновления на главном приращении / уменьшении в триггере. Конечно получаю ошибку:

    ожидаемое исключение, обратитесь к администратору: NonCashCompAfterUpdate: выполнение AfterUpdate вызвано:

  2. Создал новое поле и использовал существующее поле в качестве помощника. По сути, я спрятал старый RFS, пока все еще его использую. Это работает, но я хотел посмотреть, есть ли способ получше.

Прежде чем продолжить, я хотел проверить идеи.

Спасибо!


person PartOfTheOhana    schedule 03.06.2012    source источник


Ответы (1)


Невозможно напрямую изменить значения в поле сводной сводки в Salesforce, кроме как путем изменения базовых подробных записей. Второе предложение, насколько я понимаю, будет включать три поля, сводную сводку, флажок и отображаемую сводку (которая будет полем формулы). Отображаемое итоговое поле будет выглядеть примерно так:

Rollup_Summary_Field__c + IF(Checkbox_Field__c, 1, -1)

Доступное только для чтения поле сводной сводки также сохраняется в Apex, поэтому вы не сможете изменить его с помощью триггера. Предположительно, это и есть природа полученной вами ошибки, хотя в отрывке, который вы приложили, отсутствует фактическая ошибка.

person John Sullivan    schedule 03.06.2012
comment
Вы правы насчет того, что RFS только для чтения сохраняется в Apex. Я сделал что-то вроде формулы, которую вы написали. я думаю, это было похоже на = (if_checked, RFS_C +1, RFS) .... Спасибо TM - person PartOfTheOhana; 04.06.2012
comment
@nivyaj на данный момент нет функции, позволяющей сводить сводные итоги по нескольким полям. Теоретически вы можете использовать триггер, но вам понадобятся триггеры как для мастера, так и для детали, и это будет нетривиально. Самым простым решением (особенно с учетом того, что вы уже используете вспомогательную формулу) было бы использовать две сводные сводки и объединить их в поле формулы на главном объекте. Помните, однако, что вы ограничены 10 сводными сводками для каждого объекта. - person John Sullivan; 04.06.2012
comment
Забавно, что вы упомянули идею использования 2 RFS, я изучал это, но вы не можете свернуть поле на мастере. Я думаю, вы правы, просто используя формулу, которую я сделал в пятницу. Я подумал, что лучше всего исчерпать все варианты, прежде чем обращаться к моему боссу. Спасибо TM - person PartOfTheOhana; 04.06.2012
comment
Так же, как к вашему сведению. Начальник согласился с идеей формулы, которая была у меня на прошлой неделе. Еще раз спасибо TM - person PartOfTheOhana; 05.06.2012