Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

При обработке карточек они блокируются? : Супермаг Плюс (Супермаг 2000)

23.11.2024 13:25


10.08.2007 10:22
Тут выдали идею, что если сделать Обработать - Смену чего-то там, т.е. массовое изменение карточек, то они блокируются, например, для формирования заказа, не попадают туда. Удивлен. Протестить в полной мере трудновато, кто подтвердит? *138
10.08.2007 10:46
Если среднесуточную обнулить, то в принципе не будет заказывать... Почти...
10.08.2007 11:03
Нет, речь шла о том, что вот запустил я карточки на обработку - все, независимо от того, что в них было, они выпадают из заказа...
10.08.2007 11:13
На версии 24.6 SP4 вроде не выпадают. Сейчас проверил на тестовой...
10.08.2007 11:27
Да вот я тоже... Да и теоретически не должны. Но мало ли, откуда звон, хотелось разобраться.
10.08.2007 18:23
Значит так, СМ когда производит групповое изменение карточек выстреливает следующую последовательность запросов (в примере изменение страны в трех карточках):
Код:
begin Supermag.SMBeginActionEx(null,6,null,null,null,null,null); end;

select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard 
where Article='106'

begin Supermag.Core.LockObject(1,'CD','106'); end;

select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard 
where Article='120'

begin Supermag.Core.LockObject(1,'CD','120'); end;

select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard 
where Article='80'

begin Supermag.Core.LockObject(1,'CD','80'); end;

begin Supermag.SMEndAction; end;

begin :V0001 := Supermag.Office.CanUseFunction2(:V0002,:V0003); end;

begin Supermag.SMBeginActionEx(null,6,618,null,null,null,null); end;

alter session set isolation_level = read committed

update Supermag.SMCard TCard 
set TCard.Country=''
where Article='106'

begin Supermag.SMAutoPostCard('106',null); end;

update Supermag.SMCard TCard set 
TCard.Country=''
where Article='120'

begin Supermag.SMAutoPostCard('120',null); end;

update Supermag.SMCard TCard set 
TCard.Country=''
where Article='80'

begin Supermag.SMAutoPostCard('80',null); end;

alter session set isolation_level = read committed

begin supermag.SMFillArtAssorts('106','CD'); end;

begin supermag.SMFillArtAssorts('120','CD'); end;

begin supermag.SMFillArtAssorts('80','CD'); end;

begin supermag.SMFillArtAssortMatrix('106','CD'); end;

begin supermag.SMFillArtAssortMatrix('120','CD'); end;

begin supermag.SMFillArtAssortMatrix('80','CD'); end;

begin Supermag.SMEndAction; end;

begin Supermag.SMEndAction; end;

begin Supermag.Core.ReleaseAllLocks; end;
Получается, что если функция Supermag.Core.LockObject() полностью блокирует карточку, а функция Supermag.Core.ReleaseAllLocks() потом всё разблокирует, то ДА, на время обработки карточки БЛОКИРУЮТСЯ!
10.08.2007 20:41
Блокируются - да, но влияет ли это на заказ, например? Мне думается, что нет. Иначе полный косяк. Кто-то пустит обработку во время генерации заказа и полассортимента пройдет мимо.
Часовой пояс GMT +3, время: 13:25.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.