Регистрация  |  Вход

Вредная ошибка: MIXED_DML_OPERATION

Впервые столкнулся с такой ошибкой:

Insert failed. First exception on row 0; first error: MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): GroupMember, original object: Contact: []

Логика такая:
(1) вставляю новый контакт;
(2) вставляю нового Юзера;
(3) включаю нового Юзера в группу через вставку GroupMember записи;

и вот это вставка GroupMember как-то конфликтует с предыдущей вставкой Контакта.
если не вставляю Контакт - то все ОК.

кто-нибудь может объяснить, а в чем собственно проблема

спасибо

Впервые столкнулся с такой ошибкой:

[code]Insert failed. First exception on row 0; first error: MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): GroupMember, original object: Contact: [][/code]

Логика такая:
(1) вставляю новый контакт;
(2) вставляю нового Юзера;
(3) включаю нового Юзера в группу через вставку GroupMember записи;

и вот это вставка GroupMember  как-то конфликтует с предыдущей вставкой Контакта.
если не вставляю Контакт - то все ОК.

кто-нибудь может объяснить, а в чем собственно проблема

спасибо

вынеси создание groupmember во future method

sObjects That Cannot Be Used Together in DML Operations

вынеси создание groupmember во future method

[url=http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_dml_non_mix_sobjects.htm]sObjects That Cannot Be Used Together in DML Operations[/url]

Alex Tsitsura
sObjects That Cannot Be Used Together in DML Operations

спасибо

[quote="Alex Tsitsura"]sObjects That Cannot Be Used Together in DML Operations[/quote]

спасибо


Den Brown
MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa)

Одно из странных ограничений Salesforce, которое надо знать. Лучше разберись в этой теме. Будешь часто сталкиваться, если не будешь учитывать этот момент на этапе проектирования.

[quote="Den Brown"]MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa)[/quote]
Одно из странных ограничений Salesforce, которое надо знать. Лучше разберись в этой теме. Будешь часто сталкиваться, если не будешь учитывать этот момент на этапе проектирования.

да, кстати,
есть ли еще какие-то случаи, когда нужно безусловно ставить @future (кроме этого и случая с колаутом)?

да, кстати, 
есть ли еще какие-то случаи, когда нужно безусловно ставить @future (кроме этого и случая с колаутом)?

Den Brown
да, кстати,
есть ли еще какие-то случаи, когда нужно безусловно ставить @future (кроме этого и случая с колаутом)?

Выше это не случай когда надо ставить "обязательно" future - все всего лишь решение. Другое решение архитектурное - избегать таких случаев.

[quote="Den Brown"]да, кстати, 
есть ли еще какие-то случаи, когда нужно безусловно ставить @future (кроме этого и случая с колаутом)?[/quote]
Выше это не случай когда надо ставить "обязательно" future - все всего лишь решение. Другое решение архитектурное - избегать таких случаев.