Доброго времени суток. Прошу совет.
В кратце структура.
Центральная БД с местом хранения центральный склад (ЦС), несколько подчинённых БД с местами хранения магазин-склад.
Есть необходимость, что бы документы ЦС пересылались во все БД автоматом, даже если документы не относятся к этим местам хранения.
Ручная отправка пересылает документы в любую БД, но хочется автоматизировать.
Пробовали в почтовике ЦБД настроить обслуживаемые места хранения и добавить в каждую подчинённую БД место хранение ЦС, но это можно сделать только один раз, дальше Супермаг ругается "Место хранения с кодом 1 задано для нескольких БД".
Ниже ошибка.
скрытое
Код:
2019.12.19 (четверг) 16:21:24
----- Прерывание работы программы -----
сообщение: "Исключительная ситуация в фоновой задаче"
исключение: Sm.Core.TaskException
источник: Sm.Core
метод: Void CallFinishEvent(System.EventHandler`1[Sm.Core.TaskEventArgs])
в Sm.Core.Task.CallFinishEvent(EventHandler`1 ntfEvent)
в Sm.Core.Task.Task_Finished()
в Sm.Core.TaskController.Task_Finished(Task task)
----- Причина исключения, уровень вложения 1 -----
сообщение: "Место хранения с кодом 1 задано для нескольких БД"
исключение: Sm.Core.BaseException
источник: Sm.Post.Controller
метод: Void
WriteStoreLocationMap(System.Collections.Generic.Dictionary`2[System.Int32,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Int32]])
в
Sm.Post.Controller.PostDatabaseRules.WriteStoreLocationMap(Dictionary`2
storeLocationMap)
в
Sm.Post.Controller.PostDatabaseRules.Sm.Post.Connection.IPostRules.SetStoreLocationMap(Dictionary`2
storeLocationMap)
в Sm.Post.Admin.DbRulesParams.Post()
в Sm.Post.Admin.DbSendRulesForm.SetRulesParams_Callback(Object data,
ITaskBreaker breaker)
в Sm.Core.Task.EntryPoint()
----- Причина исключения, уровень вложения 2 -----
сообщение: "ORA-00001: нарушено ограничение уникальности
(SUPERMAG.SMCPOSTLOCMAP_PK)
"
исключение: System.Data.OracleClient.OracleException
источник: System.Data.OracleClient
данные: соединено с: База даных="CO"; Пользователь="admin"
текст команды: Insert into Supermag.SMPostLocMap(StoreLoc,DBaseID)
values(:pLoc,10)
тип команды: Text
параметры: pLoc=«1»
метод: Void CheckError(System.Data.OracleClient.OciErrorHandle, Int32)
в
System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle
errorHandle, Int32 rc)
в System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle
statementHandle, CommandBehavior behavior, Boolean needRowid,
OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
в
System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean
needRowid, OciRowidDescriptor& rowidDescriptor)
в System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
в Sm.Database.OracleRunner.ExecuteNonQuery(IDbCommand command)
в Sm.Database.SmModuleRunner.ExecuteNonQuery()
в
Sm.Post.Controller.PostDatabaseRules.WriteStoreLocationMap(Dictionary`2
storeLocationMap)