28.03.2017, 20:51 | #1 |
Участник
|
Отмена закрытия склада
Привет всем.
Хочу обсудить отмену закрытия склада (версия ax 2009 RU5, но думаю, что актуально и для 2012 - 7.0) Отмена закрытия склада в пакете имеет неприятную особенность - при отмене генерируется очень много дополнительных пакетных задач (InventCostClosingCancel_WorkInvent) по одной на каждую отменяемую номенклатуру. В нашем случае получается от 10 до 35 тысяч пакетных заданий. Естественно они занимают все доступные потоки на пакетном сервере и все остальные пакеты вынуждены ждать пока пройдет отмена, что нарушает график работы других пакетов. Также из-за того что пакетный сервер запускает пакетные задания не мгновенно (а где то раз в 30-60 секунд просматривает перечень пакетов) - то получается, что неэффективно время используется - много времени может тратиться вхолостую. Я подумал, почему бы (вариант а) по аналогии с закрытием склада не генерировать только InventParameters.CloseBatchHelpers дополнительных пакетных заданий (помощников), прописав в каждом свой набор отменяемых номенклатур (а не одну как сейчас в InventCostClosingCancel_WorkInvent). Или опять же по аналогии с с закрытием склада (вариант б) записать перечень отменяемых номенклатур в табличку (InventCostList), заставив пакетных помощников читать данные из этой таблички и отменять по ним сопоставления в InventSettlement. Любой из этих вариантов будет работать быстрее, чем стандартный. Не будет забивать доступные потоки в пакетном сервере, соответственно, не будет мешать другим пакетам. Вариант Б пожалуй даже получше будет - более эффективно задействует мощность сервера, так как в любой момент времени будут задействованы все запланированные задания помощники. Вопрос такой : 1. Есть ли у описанных подходов недостатки по сравнению со стандартом? 2. Почему в стандарте так не сделали? Ведь варианты а)-б) сами напрашивались по аналогии с закрытием склада. Может я чего-то не понимаю в логике работы отмены закрытия склада ? |
|