22.12.2010, 12:59 | #1 |
Участник
|
InventDim::findOrCreate
Решил поделиться интересной особенностью поведения InventDim::findOrCreate() в параллельных транзакциях. Для демонстрации запустите данный job на 2х клиентах. после запуска второго, продолжить первый (набор аналитик должен не существовать). В итоге сгенерится ошибка, что набор аналитик существует. Лечится ситуация с помощью UserConnection для findOrCreate()
X++: static void job(Args _args) { InventDim inventDim; ; ttsbegin; inventDim.InventColorId = 'color1'; inventDim.InventLocationId = 'Loc1'; inventDim.InventSizeId = 'size1'; inventDim = InventDim::findOrCreate(inventDim); Pause; ttscommit; info(inventdim.inventDimId); } |
|