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

Ошибка при отсылке карточки в подчиненную базу : Супермаг Плюс (Супермаг 2000)

23.11.2024 4:40


18.04.2010 10:25
1.026.3

Взялся за порядок между базами. Вобщем при отсылке одного артикула вылазит странная ошибка:

Цитата:
----- Ошибка приема -----
Пакет: 100418101720_19093_2.SVP
Тип объекта: Карточка складского учета
Идентификатор объекта: 152951
-- Уровень вложения 0 --
Сообщение: Невозможно обновить в БД объект «CD, 152951», таблица «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'

Исключение: System.Data.OracleClient.OracleException
Источник: System.Data
Метод: Void UpdatedRowStatusErrors(System.Data.Common.RowUpdatedEventArgs, BatchCommandInfo[], Int32)
Данные:
параметры: pARTICLE=«152951»; pACCEPTED=«1»; pBORNIN=«5FA16804F9404533870303E2E17960A0»; pCARDCOMMENT=«»; pCASHLOAD=«1»; pCOUNTRY=«»; pCUTPRICEDAYS=«0»; pDATASUBTYPE=«-1»; pDATATYPE=«0»; pDEADLINE=«»; pFLAGS=«64»; pGLOBALARTICLE=«152951»; pIDCLASS=«1003»; pIDMARKETINGGROUP=«»; pIDMEASUREMENT=«0»; pIDONETORG=«»; pIDSCALE=«»; pIDSPIRITCODE=«»; pIDTHREETORG=«»; pLOSSES=«0»; pMESABBREV=«шт»; pMESNAME=«штука»; pMINPROFIT=«0»; pNAME=«Набор сверл B&D А7155 15 шт., цифенборы, св.,мет.кейс, д/дер-ки»; pQUANTITYDEVIATION=«0»; pRECEIPTOK=«1»; pSCALELOAD=«0»; pSCRAP=«0»; pSHORTNAME=«Набор сверл B&D А7155 15 шт., цифенборы, св.,мет.кейс, д/дер-ки»; pSTORAGE=«0»; pSUBARTICLE=«»; pSUPPLYPRICEPERCENTM=«»; pSUPPLYPRICEPERCENTP=«»; pWASTE=«0»
соединено с: База даных=STROJ02; Пользователь=Supermag
текст команды: Update Supermag.SMCARD set ACCEPTED=:pACCEPTED,BORNIN=:pBORNIN,CARDCOMMENT=:pCARDCOMMENT,CASHLOAD=:pCASHLOAD,COUNTRY=:pCOUNTRY,CUTPRICEDAYS=:pCUTPRICEDAYS,DATASUBTYPE=:pDATASUBTYPE,DATATYPE=:pDATATYPE,DEADLINE=:pDEADLINE,FLAGS=:pFLAGS,GLOBALARTICLE=:pGLOBALARTICLE,IDCLASS=:pIDCLASS,IDMARKETINGGROUP=:pIDMARKETINGGROUP,IDMEASUREMENT=:pIDMEASUREMENT,IDONETORG=:pIDONETORG,IDSCALE=:pIDSCALE,IDSPIRITCODE=:pIDSPIRITCODE,IDTHREETORG=:pIDTHREETORG,LOSSES=:pLOSSES,MESABBREV=:pMESABBREV,MESNAME=:pMESNAME,MINPROFIT=:pMINPROFIT,NAME=:pNAME,QUANTITYDEVIATION=:pQUANTITYDEVIATION,RECEIPTOK=:pRECEIPTOK,SCALELOAD=:pSCALELOAD,SCRAP=:pSCRAP,SHORTNAME=:pSHORTNAME,STORAGE=:pSTORAGE,SUBARTICLE=:pSUBARTICLE,SUPPLYPRICEPERCENTM=:pSUPPLYPRICEPERCENTM,SUPPLYPRICEPERCENTP=:pSUPPLYPRICEPERCENTP,WASTE=:pWASTE where ARTICLE=:pARTICLE
тип команды: Text

Посмотрел журнал карточек в обоих базах. В подчиненной карточку с таким артикулом создали вручную на день раньше, чем в главной.

Кстати, штрихкод и массив объектов передался успешно
18.04.2010 10:46
А единица измерения одна и та же? Убивать надо того, кто позволяет заводить один и тот же артикул в разных базах.
18.04.2010 11:21
Цитата:
В подчиненной карточку с таким артикулом создали вручную на день раньше, чем в главной.
Вообще-то для таких случаев в подчиненном создается временный артикул с префиксом места хранения (чтобы не было путаницы), а наверху его глобализируют
18.04.2010 11:42
Цитата:
Ivan Drago А единица измерения одна и та же? Убивать надо того, кто позволяет заводить один и тот же артикул в разных базах.
Единица измерения одна и та же.

Политикой внесения карточек запрещено их создавать в подчиненной базе. Только в ЦО. Просто с правами это не урегулировали. Вот и получилось как получилось
27.04.2010 09:48
Где-то была ветка. Mtirt, советовала как поменять коды в базах у обоих карточек. НЕ могу найти. Видимо это и есть решение в моем случае?
27.04.2010 10:21
попробуй так:
update smcard set globalarticle=article;
update smcard set arrivedfrom=null;
commit;
27.04.2010 10:22
В подчиненной базе.
27.04.2010 11:38
Если это абсолютно одна и та же карточка, то правильнее в ЦО присвоить ей arrivedfrom и bornin равный магазинной.
27.04.2010 11:41
Если магазин много, то потом надо будет и в других магазинах тоже вручную сделать все это.
Часовой пояс GMT +3, время: 04:40.

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