10.12.2008 12:04
-Den-
 
Добрый день.
Подскажите, в чем может быть проблема, делаю рассылку изменения карточки складского учета на магазин, выдает вот такую ошибку

----- Ошибка приема -----
Пакет: 081210114656_958826_3.SVP
Тип объекта: Карточка складского учета
Идентификатор объекта: 000033
-- Уровень вложения 0 --
Сообщение: Невозможно обновить в БД объект «CD, 000033», таблица «SMCARD»
Исключение: Sm.Core.BaseException
Источник: Sm.Post.DbLoader
Метод: Void WriteExistingObject(System.Data.OracleClient.OracleTransaction, Sm.Post.PostObject)
-- Уровень вложения 1 --
Сообщение: ORA-20102: Попытка изменения фиксированных атрибутов карточки товара
ORA-06512: на "SUPERMAG.CORE", line 265
ORA-06512: на "SUPERMAG.SMCARDFIXATTR", line 26
ORA-04088: ошибка во время выполнения триггера 'SUPERMAG.SMCARDFIXATTR'


пс: недавно начал работать с СуперМагом, так что сильно не пинайте

И еще для запуска Синхронизация, Удаление локальных артикулов должна ли останавливаться база либо службы, в документации по этому поводу ни что не указано, а когда пытаюсь выполнить выдает ошибку?!
10.12.2008 12:49
baggio
 
Код:
CREATE OR REPLACE TRIGGER SUPERMAG.SMCardFixAttr before update
ON SUPERMAG.SMCARD for each row
begin
	if :old.Accepted<>:new.Accepted then
		if
			:new.Accepted=0
			or
			:new.Accepted<>2
				and :new.Article<>nvl(:new.GlobalArticle,:new.Article)
		then
			Core.Fail((-20000-103));
		end if;
	end if;
	if updating('IDMeasurement') or updating('DataType')
		or updating('DataSubType') or updating('SubArticle')
	then
		if :old.Accepted<>0 then
			if :old.IDMeasurement<>:new.IDMeasurement
				or :old.DataType<>:new.DataType
				or :old.DataSubType!=:new.DataSubType
				or :old.SubArticle!=:new.SubArticle
			then
				Core.Fail((-20000-102));
			end if;
		end if;
	end if;
	if updating('BornIn') and :old.BornIn!=:new.BornIn then
		Core.Fail((-20000-102));
	end if;
end;
/
Судя по триггеру...
низя менять:
IDMeasurement - единичу измерения.
DataType - тип карточки (товар,набор и т.д)
SubArticle - связанный артикул.. (по мему)
BornIn - идентификатор присхождения карточки (т.е. в какой базе родилась)
GlobalArticle - глобальный артикул
Accepted - - низя... если карточка глобльная сделать из нее новую или временную...
10.12.2008 16:41
-Den-
 
возможно ли сделать так что бы их можно было менять?*11
а если ее удалить, и потом из центральной базы отослать ее на магазин, прокатит?
10.12.2008 17:39
baggio
 
Цитата:
-Den- а если ее удалить, и потом из центральной базы отослать ее на магазин
Для тебя это самое равильное решение...
только у далить еесстно в базе магазина...
и разобратся как так получилось... и убрать права шоб такого больше никогда не было... а то потом проблем агребешь немеряно...
11.12.2008 17:53
-Den-
 
Возможно ли по другому(не удаляя карточку из подчиненной базы) решить данную проблему? В ЦО и во всех магазинах кроме одного она соответствует действительности. Она была созданна скорей всего на этом магазинеперсонально для него). А теперь проснулись и ...зеленый лучек не хочет превращатся в ополаскеватель)). Синхронизация не помогает, рассылка тоже, как еще можно решить данную ситуацию?

Спасибо за любые советы).
11.12.2008 17:59
OlegON
 
Не понял, в цепочке:
Удалить карточку из магазина - разослать ее из центра именно в этот магазин
что не работает?
12.12.2008 09:59
-Den-
 
Значит дело обстоит так. Все документы по этой карточке в "Черновике", имеются только несколько актов переоценки и продажи (в базе магазина). Последняя продажа была 06.08.2007. Если закрыть период, например, по 01.01.2008 и удалить карточку, это повлияет как-то на сумму предыдущих продаж? Т.е. на кассовые документы, в которых присутствовала данная карточка.
12.12.2008 10:59
akonev
 
эко вас угораздило...
повлияет, конечно. только не очень-то ты эту карточку и удалишь, раз по ней документы прошли.

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

где создана, можно посмотреть по журналу карточки в магазине. если ее создал почтовый модуль - значит в офисе. если пользователь - в магазине
12.12.2008 15:00
-Den-
 
В магазине. Просто при открытии ступили и забыли убрать права на создание карточек.

Сейчас карточка в магазине в режиме "Исключена", её в ЦО отправлять в этом режиме или в "Активном", и не изменит ли она в ЦО карточку с таким же артикулом?

И что подразумевается под словом "Согласовать"?)
13.12.2008 11:43
akonev
 
Цитата:
-Den- Сейчас карточка в магазине в режиме "Исключена", её в ЦО отправлять в этом режиме или в "Активном", и не изменит ли она в ЦО карточку с таким же артикулом?
изменить точно не сможет. в худшем случае, не примется с тем же сообщением про фиксированные атрибуты. или ругнется на нарушение уникальности артикулов. так что можно смело пробовать. статус значения не имеет.

Цитата:
-Den- И что подразумевается под словом "Согласовать"?)
а доку пролистать?
когда локальная карточка приходит в офис, у нее кнопка "редактировать" заменяется кнопкой "согласовать". суть согласования в том, что указывается офисная карточка, которую супермаг должен будет потом при синхронизации подставлять вместо магазинской.
Часовой пояс GMT +3, время: 02:12.

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