|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Как в WMS-системах обычно реализуется комплектация доставок по заказам? У нас заказ и доставка - разные сущности, т.к. по одному заказу может быть сформировано несколько отгрузок. Кладовщик в отдельной сводке видит список заказов, которые допущены к сбору на его складе. Для каждого заказа в полу-ручном режиме создается доставка, табличная часть которой содержит список рассчитанных блокировок (какой товар из какой ячейки отобрать). После создания доставки остаток в расчетных ячейках блокируется и начинается отбор и комплектация. Как этот процесс реализован на серьезных складах? Что представляют собой блокировки? В какой момент формируется сущность для отслеживания доставки? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2014, 23:54 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Мне кажется, что ответ на такой вопрос должен быть сильно длинным и специфичным для бизнеса ))) 1. Насколько я помню, в OeBS 12, примерно как Вы и описали (возможно расхождение терминологии) только почти все в автоматическом режиме (что скорее является недостатком) 2. "Что представляют собой блокировки?" - в OeBS есть термин "резервирование". Товар может быть зарезервирован. Автоматически или полу ручным способом. Обычно в момент "Комплектования" (отгрузки), но можно и раньше. Например, как я помню: по гос. тендерам, в тендерную документацию может включаться аж серийные / номера партий. Поэтому, может быть ситуация, что оформили заказ, зарезервировали и товар радостно себе еще год на складе лежит. Возможно ситуация "уникального товара". Например кусок электрического кабеля с бухты. Кабель одним куском 1875 метра ))). Резервирование должно быть сделано прямо в момент оформления заказа/счета. Т.к. клиента интересует именно этот кусок и никакой более. Это только простейшие варианты. Те же резервы в OeBS, могут, вроде, и на определенную дату сами появляться. Если метод пополнения склада just-in-time. (не уверен) 3. "В какой момент формируется сущность для отслеживания доставки?" - даже не знаю что сказать ))) В OeBS есть модуль Заказы (Order Execution), Inventory - WMS (собственно склад), Shiping Execution. В момент передачи данных из OE в Shiping Execution "сущности для отслеживания доставки" и сформируются. Потом ими можно как-то управлять, делить на машины/вагоны/рейсы/контейнеры, планировать маршрут и отдавать на выполнение в склад. По отъезду из склада, контролировать перемещение по остановкам. Учитывать затраты на транспорт. И прочее. Это старая версия модуля OeBS (2005). Новая вроде должна вообще быть круче туч ))). Но я не видел. и так далее... Тот же user guide для OeBS в открытом доступе. Только настолько ли это интересно? Да еще в отрыве от конкретного бизнеса. Собственно это уже становится проект по внедрению. IMHO & AFAIK. Я программист, т.ч. могу ошибаться ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 00:56 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Leonid, спасибо за развернутый ответ! авторвсе в автоматическом режиме (что скорее является недостатком) Меня тоже смущает полная автоматизация этого процесса, т.к. у нас многие товары в единичном экземпляре и обнаружение некондиции при отборе запускает довольно витиеватый процесс согласования с менеджером/клиентом. авторРезервирование должно быть сделано прямо в момент оформления заказа/счета. Согласен, что вопрос резервирования специфичен для каждого бизнеса. У нас резервирование в момент оформления заказа не производится, т.к. часто товар для отгрузки должен быть "подготовлен" (упакован или собран из других товаров). Т.е. его просто нет на складе в момент заказа. ---- Меня прежде всего интересует, что из себя представляют "атомарные" задания во "взрослых" WMS? Это просто таблица в БД, которая генерируется ХП? Например, когда требуется переместить какой-то остаток из одной ячейки в другую будет создана запись вроде такой: Номер задания Задание-предшественник Ответственный Ячейка отбора Ячейка размещения Код товара Статус задания11454 (нет) Иванов R1-05 R2-04 5555 Выполняется И как формируется последовательность операций? Например, если нужно вначале переместить товар в зону отбора, а затем упаковать на доставку. Понятно, что вторая операция не должна назначаться до тех пор, пока не выполнена первая? Т.е. запись в таблице с заданием на комплектацию может иметь такой вид: Номер задания Задание-предшественник Ответственный Ячейка отбора Комплектуемая доставка Код товара Статус55147 11454 (не назначен) R2-04 1152 5555 Не назначена Если работник склада отметился рядом с ячейкой R2-04, то задача 55174 все равно не будет ему назначена, т.к. не завершена предшествующая задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 02:47 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Так как это работает изнутри? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 15:33 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
romaroТак как это работает изнутри? Что бы ответить на такой вопрос более-менее _точно_, нужно иметь под рукой систему, смотреть доку и проверять себя по коду ))) Т.ч. я пас. Тот же OeBS есть в общем доступе, доки так же, документация на структуру базы аналогично. Только работы на пару месяцев IMHO. romaroМеня тоже смущает полная автоматизация этого процесса, т.к. у нас многие товары в единичном экземпляре и обнаружение некондиции при отборе запускает довольно витиеватый процесс согласования с менеджером/клиентом. Ничего не могу сказать. В целом, совершенно типовая ситуация. romaroСогласен, что вопрос резервирования специфичен для каждого бизнеса. У нас резервирование в момент оформления заказа не производится, т.к. часто товар для отгрузки должен быть "подготовлен" (упакован или собран из других товаров). Т.е. его просто нет на складе в момент заказа. Где я внедрял, то же, _обычно_ не производилось. Но ряд спец. случаев, которые помню, я описал: гос.тендеры, конкретные куски кабеля с бухты. "Упакован" - за этим следит WMS. В OeBS это немного даже к вопросу "резервирования" параллельно "собран из других товаров" - если просто подобрать товар из палет, коробок и так далее, то это WMS. Если же стоит задача из лампа + кронштейн + патрон + кусок провода + розетка собрать "светильник в сборе" ))), то в OeBS через склад такое даже не провести. Это уже модуль производства получается ))) Ну и на резервирование не только отгрузка, но и планирование завязано. Т.е., например, в случае планирования just-in-time, резерв должен появится заранее и соответственно в какой-то момент запуститься workflow которые пойдут в Purchace (Закупки) для пополнения товара. Как я помню/понимаю, резерв в понятие OeBS, это нечто на пересечении нескольких сущностей: номенклатура + кол-во + номер партии + серийный номер + LPN (штрих код коробки/палеты, только для WMS) + наверное даты + заказ + что-то еще Т.е. мы можем или просто зарезервировать N штук какой-то номенклатуры, а можем зарезервировано N штук номенклатуры из конкретной партии. И так далее... Скорее всего, не уверен, пойдет последовательное уточнение. После подтверждения заказа - будет просто резерв по кол-ву, после комплектования и упаковки - резерв пойдет с точностью до LPN и ячейки склада * romaroИ как формируется последовательность операций? Например, если нужно вначале переместить товар в зону отбора, а затем упаковать на доставку. Понятно, что вторая операция не должна назначаться до тех пор, пока не выполнена первая? Х.з. Не помню, но WMS все замечательно делает. В WMS, есть целый модуль описания правил размещения товара и комплектования. Но его отдельные люди настраивали (консультанты). Я только сбоку стоял. Вообще, повторюсь, IMHO физическая реализация глубоко вторична, а вот корректно описать БП на складе это уже задача под проект внедрения. Опять таки, я плохо понимаю, что Вам нужно. Описание физического устройства таблиц аж по 3-4-ем модулей OeBS .... ну это и так есть... в фирменной доке... пара тысяч страниц текста и несколько сотен тысяч строк кода ))) romaroесли нужно вначале переместить товар в зону отбора, а затем упаковать на доставку подозреваю, что собственно это и будет происходит в процессе "комплектования". Вряд ли, кто-то заранее всю "таблицу перемещений" строит. Я бы делал последовательно. Т.е. нужен товар - есть свободный (не зарезервированный) в зоне отбора/комплетование, нет - в соответствие с правилами размещения запускаем процесс переноса (или упаковки/распаковки) в зону отбора, выдаем задание, оператор подтвердил... goto в начало... И так до тех пор, пока не скомплектуем все. Где-то товара стало меньше/больше - по min/max запускаем пополнение в соответствие с правилами размещения. Так в цикле и бежим, резервируя (уточняя?) резерв товар, проверяя правила размещения и выдавая on-line указания на терминалы грузчикам Комплектование завершилось, подтверждаем отгрузку (отправляем данные в финансы/главную книгу), печатаем ТТН (товарно-транспортную накладную), машина поехала по маршруту. IMHO & AFAIK. Как точно в OeBS, нужно/можно смотреть в доке. p.s. * В свое время (2006) полностью переписывал пакеты отвечающие за комплектования для ИТЗ (Ижорский трубный завод), что бы OeBS при отгрузки не мог разбивать партии (всегда отгружал только целые партии). Но там был Inventory (не WMS), и честно говоря уже не помню. Хоть и месяц ковырялся. p.p.s. модули в OeBS относительно "независимы". Т.е. заказ + резерв - это скорее OE (заказы) Планирование, пополнение склада и опять таки отслеживание резерва для планирования - это OE + Purchase + Workflow Планирование транспорта (что бы все влезло), комплектование, отгрузка - Shiping execution Отбор, перемещение по складу, пополнение ячеек, упаковка/распаковка, правила хранения - WMS Т.е., планирование транспорта и например "набивание" контейнеров/вагонов/фур выполняется скорее всего без учета подробных данных со склада. Разбили заказы по машинам - отправили на комплектование. А дальше WMS уже сам в цикле все в зоны отбора и зону отгрузки относит. Все перемещение по складу описывалось правилами в самом модуле. Программистов это не сильно касалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 17:22 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
romaroКак в WMS-системах обычно реализуется комплектация доставок по заказам? У нас заказ и доставка - разные сущности, т.к. по одному заказу может быть сформировано несколько отгрузок. Кладовщик в отдельной сводке видит список заказов, которые допущены к сбору на его складе. Для каждого заказа в полу-ручном режиме создается доставка, табличная часть которой содержит список рассчитанных блокировок (какой товар из какой ячейки отобрать). После создания доставки остаток в расчетных ячейках блокируется и начинается отбор и комплектация. Как этот процесс реализован на серьезных складах? Что представляют собой блокировки? В какой момент формируется сущность для отслеживания доставки? Вопрос интересный. Внесу свои 5 копеек: Данный процесс очень зависим от бизнес-процессов компании. Для крупных заказов (либо несколько грузовых мест) существует практика: Заказ подбирается и размещается в ячейках зоны отгрузки. Планируется маршрут. Создается документ «Маршрутный лист» (МЛ) на транспортное средство (ТС). Определяется, какие заказы в него попадают и в какой последовательности. По заказам, вошедшим в МЛ создается задание на погрузку (контроль погрузки в ТС), кладовщик подбирает грузовые места заказа и размещает в ТС. Существует практика доставки одним ТС большого количества мелких заказов Клиентам. Такая практика часто используется в распределительных центрах крупных оптово-розничных компаний. В таком случае ТС может вести груз в несколько точек (к примеру, в 5 точек), в ТС размещено 20 грузовых мест, в грузовых местах находится более 100 заказов. В этом случае: 1. Заказы подбираются на складе. 2. Заказы проходят контроль. При окончании контроля они размещаются в грузовых местах, планируемых к доставке (заранее подготовленные коробки, контейнеры и т.д, имеющие соответствующую уникальную идентификацию). При размещении в грузовых местах (ГМ) контролируется условие: все заказы данного ГМ везутся в одну точку. 3. По окончании сборки диспетчер планирует ТС, для этого он использует следующую информацию: 3.1. Список заказов, которые должны быть доставлены (Точка доставки, Вес, объем, дополнительные параметры (приоритет и т.д.).) 3.2. Пул ТС, имеющихся для доставки (габариты, грузоподъемность, разрешения на перемещения по зонам города и т.д.) 3.3. Маршрут (очередность объезда точек доставки). 4. Спланировав ТС, система создает задания на погрузку, позволяющие: 4.1. Определить, какие ГМ должны быть погружены в ТС 4.2. Очередность погрузки ГМ в ТС (обратную выгрузке в точках доставки). 4.3. Печать сопроводительных документов. Так же имеются гибридные схемы, но все они частично отражают то, что было описано выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 12:38 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
На самом деле меня больше всего интересует не столько бизнес-процесс, сколько архитектура БД, которая позволяет создавать цепочки действий. Например, вначале товар нужно заблокировать, потом назначить наборщику для перемещения в ячейку отбора, потом уже добавит в маршрутный лист и т.д. Леонид сказал, что вряд ли это делается сразу. Как тогда? Существует набор процедур типа "процедура создания блокировок для отбора из ячеек", "процедура сортировки заказов по маршрутным листам" и т.д. Каждая из них запускается с определенной периодичностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 22:43 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
romaroНа самом деле меня больше всего интересует не столько бизнес-процесс, сколько архитектура БД, которая позволяет создавать цепочки действий. Например, вначале товар нужно заблокировать, потом назначить наборщику для перемещения в ячейку отбора, потом уже добавит в маршрутный лист и т.д. Леонид сказал, что вряд ли это делается сразу. Как тогда? Существует набор процедур типа "процедура создания блокировок для отбора из ячеек", "процедура сортировки заказов по маршрутным листам" и т.д. Каждая из них запускается с определенной периодичностью? В БД бизнес логику лучше вообще не пускать (по возможности). В БД надо хранить сущности которые: 1) Формат которых долго не будет меняться 2) Данные которые будут нужны всегда Насчет цепочки действий... Цепочки действий могут со временем меняться. Исходя из вышесказанного в лучшем случае в БД нужно хранить действие, причем без возможности отмены. Для примера - проводки в учетных системах. Все остальное на уровень приложения. В противном случае при изменение бизнес-процессов надо будет ломать голову как перепроектировать БД, чтобы сохранились исторические данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 07:21 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
romaroНа самом деле меня больше всего интересует не столько бизнес-процесс, сколько архитектура БД, которая позволяет создавать цепочки действий. Например, вначале товар нужно заблокировать, потом назначить наборщику для перемещения в ячейку отбора, потом уже добавит в маршрутный лист и т.д. Леонид сказал, что вряд ли это делается сразу. Как тогда? Существует набор процедур типа "процедура создания блокировок для отбора из ячеек", "процедура сортировки заказов по маршрутным листам" и т.д. Каждая из них запускается с определенной периодичностью? Сомневаюсь, что в каких то серьезных системах есть такое. Это не уровень структуры БД. В БД обычно все "дубовее" - чтобы не было всяких косяков. Например, есть две таблицы - "Операции по ячейкам" и "Созданные подборы" "Операции по ячейкам" - Дата-время - Код ячейки - Код товара - Количество по операции (плюс или минус) - несколько других полей - номер документа и тп "Созданные подборы" - Номер документа подбора - Номер строки - Код ячейки - Код товара - Количество по операции (плюс или минус) - несколько других полей - исполнитель, статус и тп Две этих таблички дают фактический остаток по ячейкам и свободный остаток (фактический минус созданные подборы) и могут являться базой всей WMS. Но алгоритмы создания записей - на уровне приложения - это дает гибкость. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 12:52 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
s_ustinovэто дает гибкость. Так а в чем здесь гибкость? Если вся логика на уровне приложения, а БД просто как контейнер, то ни API нормально не написать, ни новый интерфейс к базе не прикрутить (например, основное приложение десктопное, но для массовых операций веб-клиент). Я думал даже 1с давно не использует БД тупо для хранения данных... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 00:33 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
romaros_ustinovэто дает гибкость. Так а в чем здесь гибкость? Если вся логика на уровне приложения, а БД просто как контейнер, то ни API нормально не написать, ни новый интерфейс к базе не прикрутить (например, основное приложение десктопное, но для массовых операций веб-клиент). Я думал даже 1с давно не использует БД тупо для хранения данных... С точностью до наоборот. Как раз вынесение БЛ на уровень БД дает такой геморрой при сопровождении и развитии, что проще выкинуть все и переписать. Видел такие системы... Во времена DOS. Когда по другому нельзя было. Куча таблиц с одинаковой структурой, на для разной БЛ. Насчет тонкого и толстого клиента. Как раз вынесение слоя БЛ выше уровня БД дает гибкость. Вы не зависите от БД (используете ту, которая вам нравиться) Т.к. структура данных почти не меняется, можно поверх нее можно накрутить 1001 API под любые нужды. Тонкий и толстый клиент отличается мало. Это просто способ вызова серверных методов. По такому принципу работают все портальные технологии. Например SharePoint. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 07:27 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
mad_nazgulпропущено... С точностью до наоборот. Как раз вынесение БЛ на уровень БД дает такой геморрой при сопровождении и развитии, что проще выкинуть все и переписать. Видел такие системы... Во времена DOS. Когда по другому нельзя было. Куча таблиц с одинаковой структурой, на для разной БЛ. В чем геморрой ? Что там такого что нельзя сопроводить без проблем? Есть хранимки, есть функции. Правишь и вот тебе радость, интерфейсы как раз к такой субд можно написать на чем хочешь, от WinAPP, WinForms, ASP.NET, WebServices ( MS SQL ) Про использование той СУБД, которая нравится - выходит тем еще боком. Использование DB2 например в 1с - ничем не быстрее файловой версии. А под MS SQL хоть как то начинает ворочаться. Вывод? Выбирать надо ту СУБД под которой софт сможет нормально работать. Не использовать СУДБ, а точнее использовать "СУБД как хранилище" = потерять в производительности. У меня были примеры - СУБД в 2004 году, когда о SSD и Гигабайтах ОЗУ могли только мечтать, проведение документов в 1000 строк, занимало 2-3 сек. Чего 1с 7 не могла сделать ну никак. Сейчас та же 1с - выворачивает свои запросы так, что MS SQL просто тошнить начинает. Куда одноразовых запросов, ни планов исполнения ни статистики нормальных нет. Постоянно приходится сносить планы, и ребилдить таблицы - т.к. прет просто бешеная фрагментация. Элементарно в 8.2 даже сортировку полю дата не задашь, по убыванию или нет хранить таблицу. Можно еще много минусов такой "прокладки" написать, которую уж точно переписывать надо. Но это уже совсем иная история. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 08:14 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
s_ustinov В БД обычно все "дубовее" - чтобы не было всяких косяков. Например, есть две таблицы - "Операции по ячейкам" и "Созданные подборы" "Операции по ячейкам" - Дата-время - Код ячейки - Код товара - Количество по операции (плюс или минус) - несколько других полей - номер документа и тп "Созданные подборы" - Номер документа подбора - Номер строки - Код ячейки - Код товара - Количество по операции (плюс или минус) - несколько других полей - исполнитель, статус и тп "Созданные подборы" - Так же должно быть дата время. Момент так сказать истины. Опять же, документы не подлежат распроведению :-) или перепроведению :-) Иначе падает все как карточный домик. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 08:28 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
VolochkovaВ чем геморрой ? Что там такого что нельзя сопроводить без проблем? Есть хранимки, есть функции. Правишь и вот тебе радость, интерфейсы как раз к такой субд можно написать на чем хочешь, от WinAPP, WinForms, ASP.NET, WebServices ( MS SQL ) Это и есть геморрой! Т.к. вся БЛ уходит в хранимки. Это сопровождать то еще приключение. А уж баги ловить, так вообще сказка! VolochkovaПро использование той СУБД, которая нравится - выходит тем еще боком. Использование DB2 например в 1с - ничем не быстрее файловой версии. А под MS SQL хоть как то начинает ворочаться. Вывод? Выбирать надо ту СУБД под которой софт сможет нормально работать. 1С не показатель. Возьмем к примеру SAP. Работает на нескольких БД, даже на MySQL :-) VolochkovaНе использовать СУДБ, а точнее использовать "СУБД как хранилище" = потерять в производительности. У меня были примеры - СУБД в 2004 году, когда о SSD и Гигабайтах ОЗУ могли только мечтать, проведение документов в 1000 строк, занимало 2-3 сек. Чего 1с 7 не могла сделать ну никак. В каком месте?! Так у вас есть БД на одном сервере, которая обрабатывает только запросы. Есть сервер приложения, где крутиться БЛ и "месятся" данные. И то, и то можно масштабировать как хочешь. Опять же не будем говорить об 1С до версии 8. Т.к. ее архитектура не была рассчитана на клиент-сервер. VolochkovaСейчас та же 1с - выворачивает свои запросы так, что MS SQL просто тошнить начинает. Куда одноразовых запросов, ни планов исполнения ни статистики нормальных нет. Постоянно приходится сносить планы, и ребилдить таблицы - т.к. прет просто бешеная фрагментация. Элементарно в 8.2 даже сортировку полю дата не задашь, по убыванию или нет хранить таблицу. Можно еще много минусов такой "прокладки" написать, которую уж точно переписывать надо. Но это уже совсем иная история. Опять же это проблема 1С. Т.к. как раз в БД и ее структуре заложена БЛ (привет из DOS-прошлого) В системах где БД проектировалась как можно более независимой от БЛ запросы наоборот были удобны для БД. Т.к. один запрос мог покрывать несколько БЛ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 09:13 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
mad_nazgulVolochkovaВ чем геморрой ? Что там такого что нельзя сопроводить без проблем? Есть хранимки, есть функции. Правишь и вот тебе радость, интерфейсы как раз к такой субд можно написать на чем хочешь, от WinAPP, WinForms, ASP.NET, WebServices ( MS SQL ) Это и есть геморрой! Т.к. вся БЛ уходит в хранимки. Это сопровождать то еще приключение. А уж баги ловить, так вообще сказка! Никаких проблем, а тем более багов. Отладка работает для MS SQL нормально :-) Учитывая циклы и вложения на "серверах предприятий или АОСов" отладка под это - та еще ромашка :-) А вот если у Вас нет профайлера или студии нормальной под MySQL про который Вы пишите далее, так это опять же вопрос что не надо брать такие СУБД :-) mad_nazgulVolochkovaПро использование той СУБД, которая нравится - выходит тем еще боком. Использование DB2 например в 1с - ничем не быстрее файловой версии. А под MS SQL хоть как то начинает ворочаться. Вывод? Выбирать надо ту СУБД под которой софт сможет нормально работать. 1С не показатель. Возьмем к примеру SAP. Работает на нескольких БД, даже на MySQL :-) Запускается - это не показатель, вопрос как работает. Проведение документа под 10 минут - это не работает, для собственника бизнеса. mad_nazgulVolochkovaНе использовать СУДБ, а точнее использовать "СУБД как хранилище" = потерять в производительности. У меня были примеры - СУБД в 2004 году, когда о SSD и Гигабайтах ОЗУ могли только мечтать, проведение документов в 1000 строк, занимало 2-3 сек. Чего 1с 7 не могла сделать ну никак. В каком месте?! Так у вас есть БД на одном сервере, которая обрабатывает только запросы. Есть сервер приложения, где крутиться БЛ и "месятся" данные. И то, и то можно масштабировать как хочешь. Опять же не будем говорить об 1С до версии 8. Т.к. ее архитектура не была рассчитана на клиент-сервер. Что в каком месте? :-) Не поняла. Вы сами затронули времена "Dos" :-) Под термином масштабировать - я бы конечно посмеялась. Вопрос про то чтобы 3000 пользователей работали с одной субд? Так все равно упретесь в кол-во ограничений подключений к СУБД. Видела я как AOS в Аксапте "пытаются делать масштабирование" и как они что 1с что AOS синхронизируют блокировки ( опять же методами субд, ибо иначе никак) на данные. Тот еще фильм ужасов. mad_nazgulVolochkovaСейчас та же 1с - выворачивает свои запросы так, что MS SQL просто тошнить начинает. Куда одноразовых запросов, ни планов исполнения ни статистики нормальных нет. Постоянно приходится сносить планы, и ребилдить таблицы - т.к. прет просто бешеная фрагментация. Элементарно в 8.2 даже сортировку полю дата не задашь, по убыванию или нет хранить таблицу. Можно еще много минусов такой "прокладки" написать, которую уж точно переписывать надо. Но это уже совсем иная история. Опять же это проблема 1С. Т.к. как раз в БД и ее структуре заложена БЛ (привет из DOS-прошлого) В системах где БД проектировалась как можно более независимой от БЛ запросы наоборот были удобны для БД. Т.к. один запрос мог покрывать несколько БЛ. Например где? В Аксапте я такого не видела, даже в 2009, в SAP что стоит за углом, те же проблемы. Если только часть таких запросов не перенесена на сторону СУБД. Ничего кроме перевода БЛ кода в зачастую "сумасбродный" запрос для СУБД, эти трех звенки не дают. Исключительно мое ИМХО. :-) p.s. мы увлеклись, к обратной стороне "проведения данных для WMS" это не имеет отношения. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 09:32 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
VolochkovaНикаких проблем, а тем более багов. Отладка работает для MS SQL нормально :-) Учитывая циклы и вложения на "серверах предприятий или АОСов" отладка под это - та еще ромашка :-) А вот если у Вас нет профайлера или студии нормальной под MySQL про который Вы пишите далее, так это опять же вопрос что не надо брать такие СУБД :-) Угу. Помню приключения с БД SharePoint, когда заказчик захотел не стандартного. Пришлось искать то что нужно ч\з работу с таблицей метаданных. VolochkovaЗапускается - это не показатель, вопрос как работает. Проведение документа под 10 минут - это не работает, для собственника бизнеса. Нормально работает. Кубики вращаются, отчеты выводятся. ;-) VolochkovaЧто в каком месте? :-) Не поняла. Вы сами затронули времена "Dos" :-) Под термином масштабировать - я бы конечно посмеялась. Вопрос про то чтобы 3000 пользователей работали с одной субд? Так все равно упретесь в кол-во ограничений подключений к СУБД. Видела я как AOS в Аксапте "пытаются делать масштабирование" и как они что 1с что AOS синхронизируют блокировки ( опять же методами субд, ибо иначе никак) на данные. Тот еще фильм ужасов. Так в этом и проблема, когда БЛ пихают в БД. Когда часть БЛ идет в БД, часть в приложении. Чтобы нормально прошла транзакция надо блочить все и вся. Когда БЛ только в приложении, то в начале подготавливаются данные и одним комитом их записывают в БД. А так, да что в 1С, что похоже Axapta БЛ размазана ровным слоем по БД и приложению. Естественно нужно все и вся блокировать. В противном случае, нужно вообще отказываться от сервера приложения и все делать в БД. Можно... Но это не сопровождаемо. VolochkovaНичего кроме перевода БЛ кода в зачастую "сумасбродный" запрос для СУБД, эти трех звенки не дают. Исключительно мое ИМХО. :-) Так в этом вся и фишка! Что мы в начале в приложении подготавливаем данные, потом раз и в БД. Причем в БД хранятся только данные. А не текущее состояние БЛ. Volochkovap.s. мы увлеклись, к обратной стороне "проведения данных для WMS" это не имеет отношения. :-) Согласен. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 11:35 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
mad_nazgulVolochkovaНикаких проблем, а тем более багов. Отладка работает для MS SQL нормально :-) Учитывая циклы и вложения на "серверах предприятий или АОСов" отладка под это - та еще ромашка :-) А вот если у Вас нет профайлера или студии нормальной под MySQL про который Вы пишите далее, так это опять же вопрос что не надо брать такие СУБД :-) Угу. Помню приключения с БД SharePoint, когда заказчик захотел не стандартного. Пришлось искать то что нужно ч\з работу с таблицей метаданных. Это как раз и есть попытка сделать БЛ не в субд. :-) в 1с Вы бы делали тоже самое :-) SharePoint - это не только MS SQL. mad_nazgulVolochkovaЗапускается - это не показатель, вопрос как работает. Проведение документа под 10 минут - это не работает, для собственника бизнеса. Нормально работает. Кубики вращаются, отчеты выводятся. ;-) Именно, безо всякой БЛ. MS SQL + OLAP. И никаких прокладок. mad_nazgulТак в этом и проблема, когда БЛ пихают в БД. Когда часть БЛ идет в БД, часть в приложении. Чтобы нормально прошла транзакция надо блочить все и вся. Когда БЛ только в приложении, то в начале подготавливаются данные и одним комитом их записывают в БД. А так, да что в 1С, что похоже Axapta БЛ размазана ровным слоем по БД и приложению. Естественно нужно все и вся блокировать. В противном случае, нужно вообще отказываться от сервера приложения и все делать в БД. Можно... Но это не сопровождаемо. Именно. Это как раз БЛ отдельно от СУБД. В СУБД логике - одна транзакция и сразу все строчки пролетели. mad_nazgulVolochkovaНичего кроме перевода БЛ кода в зачастую "сумасбродный" запрос для СУБД, эти трех звенки не дают. Исключительно мое ИМХО. :-) Так в этом вся и фишка! Что мы в начале в приложении подготавливаем данные, потом раз и в БД. В этот момент данные уже поменялись иными пользователями и капец потом ошибки искать. Особенно в WMS. Мраааак :-) Пока в циклах БЛ таким образом данные насобирала уже все поезда в Африке :-) Не дай бог, чур меня, чур меня :-) mad_nazgulVolochkovap.s. мы увлеклись, к обратной стороне "проведения данных для WMS" это не имеет отношения. :-) Закаталась :-) Согласен. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 13:32 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
VolochkovaЭто как раз и есть попытка сделать БЛ не в субд. :-) в 1с Вы бы делали тоже самое :-) SharePoint - это не только MS SQL. С точностью до наоборот. Там слишком много БЛ в БД. А если использовать ваш метод, то весь SharePoint нужно писать на TSQL :-) VolochkovaИменно, безо всякой БЛ. MS SQL + OLAP. И никаких прокладок. Почему бы нет. Например есть такая OLAP система Pentaho. Там кубы строятся над БД PostgreSQL или MySQL. Тот же SAP BW не зависит от БД. Это работает. А можно и в БД OLAP засунуть. Но тут такой момент.... Та же Pentaho и SAP BW имеет свой ETL, который позволяет загружать исходные данные из любых источников. У MS SQL есть определенные трудности (можно, но не так очевидно) VolochkovaИменно. Это как раз БЛ отдельно от СУБД. В СУБД логике - одна транзакция и сразу все строчки пролетели. Которая лочит пол БД :-) VolochkovaВ этот момент данные уже поменялись иными пользователями и капец потом ошибки искать. Особенно в WMS. Мраааак :-) Какие данные? БЛ идет в рамках приложения. Данные не зависимы от состояния БЛ. А права на "изменения" определяются на уровне приложения. Т.е. в БД уже попадают "правильные" данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 14:52 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
mad_nazgulVolochkovaЭто как раз и есть попытка сделать БЛ не в субд. :-) в 1с Вы бы делали тоже самое :-) SharePoint - это не только MS SQL. С точностью до наоборот. Там слишком много БЛ в БД. А если использовать ваш метод, то весь SharePoint нужно писать на TSQL :-) SharePoint - это представитель Вашего лагеря, когда БЛ живет как то отдельно. Для меня это зверь неизвестной породы, который я вообще стороной обхожу. А вот MS SQL - это тема. mad_nazgulVolochkovaИменно, безо всякой БЛ. MS SQL + OLAP. И никаких прокладок. Почему бы нет. Например есть такая OLAP система Pentaho. Там кубы строятся над БД PostgreSQL или MySQL. Тот же SAP BW не зависит от БД. Это работает. А можно и в БД OLAP засунуть. Но тут такой момент.... Та же Pentaho и SAP BW имеет свой ETL, который позволяет загружать исходные данные из любых источников. У MS SQL есть определенные трудности (можно, но не так очевидно) Никаких трудностей. Даже денег не надо дополнительных платить. А тут купи SAP, потом еще и Pentaho. А так кубик поставил сверху базы и все пучком. А так женить зоопарк такой :-) mad_nazgulVolochkovaИменно. Это как раз БЛ отдельно от СУБД. В СУБД логике - одна транзакция и сразу все строчки пролетели. Которая лочит пол БД :-) Это вопрос кривизны рук. В отличии от серверов приложений, которые никак уже не спасут. У меня ничего не падало, до 50 человек одновременно гоняли базу. mad_nazgulVolochkovaВ этот момент данные уже поменялись иными пользователями и капец потом ошибки искать. Особенно в WMS. Мраааак :-) Какие данные? БЛ идет в рамках приложения. Данные не зависимы от состояния БЛ. А права на "изменения" определяются на уровне приложения. Т.е. в БД уже попадают "правильные" данные. При чем тут состояние БЛ? Вы взяли 10 единиц товара, пока дальше считали - эти 10 уже другие тиснули. И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 15:03 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
[quot romaro]На самом деле меня больше всего интересует не столько бизнес-процесс, сколько архитектура БД, которая позволяет создавать цепочки действий. Например, вначале товар нужно заблокировать, потом назначить наборщику для перемещения в ячейку отбора, потом уже добавит в маршрутный лист и т.д. Леонид сказал, что вряд ли это делается сразу. Как тогда? Существует набор процедур типа "процедура создания блокировок для отбора из ячеек", "процедура сортировки заказов по маршрутным листам" и т.д. Думаю да (_точно_ сказать не могу) "процедура сортировки заказов по маршрутным листам" - не знаю, что значит данное словосочитания. Но на нашем внедрение планированием транспорта занимался отдельный большой отдел. НИКАК не связанный со складом. Он заплонировал отгрузки (исходя из заказов), приблизительно разбил по форум (полуручным образом), заказал фуру... ЗАРАНЕЕ... собственно работа склада начинается тогда, когда фура должна подъехать По блокировке я уже писал. У меня чувство, что резерв просто "уточняется" на каждом шаге. Детали реализации я уже не помню, но думаю, это и не важно (см. ниже). s_ustinovВ БД обычно все "дубовее" - чтобы не было всяких косяков. Например, есть две таблицы - "Операции по ячейкам" и "Созданные подборы" БП Вы тоже очень хорошо описали, но у меня ощущение, что операции на нашем проекте делались в другом порядке (наверное уже зависит от специфика компании/склада) С 1 согласен. Все нужно делать "дубово". По поводу таблиц: "Операции по ячейкам" - как минимум, должны быть поля FROM, TO. А то можно проводить операции списания товара в вакуум. Как потом историю восстанавливать? С термином "подборы" лично даже не сталкивался (возможно по другому называлось/переводилось) romaroКаждая из них запускается с определенной периодичностью? Как запускается, дело на мой взгляд десяток. Как работало в WMS OeBS даже и не скажу. В Inventory - да, ряд процессов обработки через интернал конкарент менеджер, раз в несколько секунд. Ну или вручную, в тот момент, когда понадобилось. В WMS OeBS даже и не интересовался. Про дерево: Я сомневаюсь, что создавать все "дерево" операций сразу - хорошая идея. Достоинство такого "дерева" - _заявить_ о возможности какой-нибудь оптимизации. Типа построили дерево, потом его обработали для оптимизации. Операции переставили местами, часть объединили... типа будет меньше работы на складе. Но (и особенно в нашей стране!) "благие намерения ведут..." Хотя большинство вендоров ERP систем и уверяют, что они что-то оптимизируют и планируют в соответствие с лучшими методологиями... Обычно, это все на уровне "продаж и документации". Собственно сама реализация, чем более дубовая и надежная - тем лучше. Создание "дерева" будет плохо тем, что резко возникает сложность "отката" после ошибки. Мы запланировали, оптимизировали, выдали на исполнение. Кладовщик должен взять 100 ед. товара из конкретной ячейки (полки, контейнера, паллеты). Он туда подъезжает и находит не 100 ед. (как по эл. и бумажным документам), а всего лишь 30 (физически).... и... приехали... Все наше "дерево" (и попытка оптимизации) стали не валидны. Поэтому, если бы меня просили запроектировать или закодировать такую систему... после слов "дерево", я бы стал искать новое место работы. Т.к. в продакшене не взлетит. IMHO Про Бизнес-процессы Товарищи с SharePoint'ами и Бизнес-Процессами идут лесом. 1. Мне интересно, кто работу СКЛАДА (да еще ячеечного, раз мы говорим о WMS) реально делал на шарике? 2. Например в OeBS, есть отдельный язык описания ПРАВИЛ (Rules) размещения товара и операций перемещения/пополнения для склада. Никаких нафиг Бизнес-Процессов и квадратиков со стрелочками. На реальном складе десятки областей, тысячи мест хранения. Участвовал во внедрении OeBS на склад, где после разделения 50 000 номенклатур получилось > 57 разных групп товаров со своими специфическими требованиями к условиям хранения и перемещения. Только работа по классификации заняла выделенного человека больше, чем на 1 месяц (работа проводилась, что бы потом тестами покрыт все возможные варианты). Собственно описанием правил занималось > 3 человек кладовщиков в течении нескольких месяцев. Склад специализировался на хранении лампочек ))), но при этом в номенклатуре и в остатках была такая позиция как "кирпич". Обычный такой, строительный кирпич ))). Я его даже собственно-глазно видел, когда на складе был. В углу склада лежал уже почти 2 года. После ремонта остался и его на склад зачем-то оприходовали. Зачем не известно, но отдельные правила под него писать все равно пришлось. Т.к. понятно, что хранить кирпич в одной паллете вместе с коробками лампочек - как то не гуманно ))). Понятно, что конкретная структура ТАБЛИЦ, будет зависит от того, как хранятся данные в ВАШЕЙ системе, какие Требования (не только с точки зрения склада, но и финансов и планирования), какие исходные данные и так далее. Мне кажется, что структурой одной таблицы тут не обойдешься. В целом это задача архитектора и наверное не на один месяц. По OeBS структуру всех таблиц можно посмотреть на http://etrm.oracle.com (требует авторизацию). Только зачем? Вряд ли у Вас стоит задача повторить OeBS. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 16:58 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Volochkova"Созданные подборы" - Так же должно быть дата время. Момент так сказать истины. Опять же, документы не подлежат распроведению :-) или перепроведению :-) Иначе падает все как карточный домик. Да там еще куча полей обычно бывает И созданный подбор - это не выполненный подбор. Это запланированное действие. И дата-время там не критичны, хотя и нужны - контролировать, насколько быстро сотрудники их выполняют. И где вы увидели "перепроведение"? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 17:53 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev "Операции по ячейкам" - как минимум, должны быть поля FROM, TO. А то можно проводить операции списания товара в вакуум. Как потом историю восстанавливать? С термином "подборы" лично даже не сталкивался (возможно по другому называлось/переводилось) Как раз в вакуум часто и уходит Когда идет отгрузка со склада - в какую ячейку уходит товар? В "вакуум"! Ну или при списании при инвентаризации. А подбор... (PICKING, PICKING LIST) Вроде бы распространенный термин. Когда надо собрать заказ клиенту и кладовщик ходит и из разных ячеек собирает товары под этот заказ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 18:18 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
s_ustinovКак раз в вакуум часто и уходит Когда идет отгрузка со склада - в какую ячейку уходит товар? В "вакуум"! В Oracle в NULL ))). Но если это транзакция отгрузки, _наверное_, будет обязательно поле "id строки отгрузки". Т.ч. все равно не в "вакуум", а в конкретную отгрузку. s_ustinovА подбор... (PICKING, PICKING LIST) Вроде бы распространенный термин. Когда надо собрать заказ клиенту и кладовщик ходит и из разных ячеек собирает товары под этот заказ. Да PICK... разумеется знакомый термин. Такие действия знаю, но таблиц не помню. Еще PICK UP знаю ))) но это уже из области психологии ))) При модуле WMS кладовщик с листочками не ходит, все через терминалы. При Inventory, вроде отчет Picking List на основание отгрузки и, наверное, MTL_MATERIAL_TRANSACTIONS. Хотя... не знаю.... Системы под рукой нет. Внедрял давно. Просто не помню. Да и с листочками (отчетами) все сильно зависит от проекта внедрения. И от порядка действий в БП у конкретного заказчика. Та же счет-фактура и ТТН, ну не хотели заказчики их печатать тогда, когда система предлагала это делать в соответствие с "best practics" ))). Им или раньше или позже подавай. Т.ч. всегда приходилось что-то придумывать и как-то изворачиваться. Посмотрел eTRM таблицы с префексом WMS. Разные операции проходят через разные таблицы. Что, в целом, и понятно. Большинство таблиц с префиксом WMS - временные. Что утверждает меня в мысли, что никакого "дерева" заранее не строится. Пока туда-сюда-обратно - модуль WMS. Как операция выполнена, просто перенесется в MTL_MATERIAL_TRANSACTION. НАВЕРНОЕ (точно гарантировать не могу). Собственно "операции" в OeBS в WMS.WMS_DISPATCHED_TASKS, наверное. Table that holds all the tasks that are : (1) Dispatched to the user (user has accepted a task) (2) Queued to the user (assigned to the user manually) (3) Loaded (user has loaded the task on to his equipment but has not dropped it off yet) (4) Erred This table holds a pointer to the MTL_MATERIAL_TRANSACTIONS_TEMP table, via the transaction temp id. All the information necessary for the performance of a task (item, location, qty etc. ) is stored in the MTL_MATERIAL_TRANSACTIONS_TEMP table. The WMS_DISPATCHED_TASKS table holds all the information about the actual performance of the task (i.e. the user, equipment, task dispatched time, loaded time etc.) Ну а дальше просто ссылка на MTL_MATERIAL_TRANSACTION (точнее _TEMP, т.к. операция еще готовится и не проведена в системе). Хотя есть TASK_GROUP_ID, но никаких ссылок на предыдущие/последующие операция. Наверное не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 18:57 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevs_ustinovКак раз в вакуум часто и уходит Когда идет отгрузка со склада - в какую ячейку уходит товар? В "вакуум"! В Oracle в NULL ))). Но если это транзакция отгрузки, _наверное_, будет обязательно поле "id строки отгрузки". Т.ч. все равно не в "вакуум", а в конкретную отгрузку. В одном и том же поле указывать разные по смыслу данные (номер ячейки и "id строки отгрузки") - не есть хорошая идея. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 19:19 |
|
Как в WMS реализуется отбор товара по заказам?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevДа PICK... разумеется знакомый термин. Такие действия знаю, но таблиц не помню. А нет чаще всего таких таблиц. Размещение, внутрискладское перемещение и подбор - обычно все в одной таблице хранится. Я с WMS OEBSа не сталкивался, но есть подозрение, что MTL_MATERIAL_TRANSACTION и MTL_MATERIAL_TRANSACTIONS_TEMP - это оно. Ну и куча вспомогательных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 19:25 |
|
|
start [/forum/topic.php?fid=29&msg=38705027&tid=1525922]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 150ms |
0 / 0 |