Установка адресного хранения

Материал из GB wiki
Перейти к: навигация, поиск

Порядок установки системы адресного хранения

  1. Создать в БД типы документов для отборки, размещения и передачи. А также задания на пополнение, вытеснение и уплотнение

Создаются типы документов с родовым типом "заказ поставщику"

  1. Прописать @WMSType всем документам, влияющим на остатки

Прописывается в свойствах типа документа "Настройки"->"Все подряд" @WMSType Документы которые будет создавать планер

  1. I - Размещение
  2. O - Отборка
  3. T - Передача

Документы которые планер проверяет

  1. P+ - Приходный документ
  2. P- - Расходный документ
  3. PT - Документ передачи
  4. P~ - Пополнение, вытеснение, уплотнение. Различаются по OPType.
    1. OPType
      1. 1 - Вытеснение
      2. 2 - Уплотнение
  1. Запнуть все нужные процедуры в базу

порядок запинывания: WMS_CALC_CELLSIZE WMS_CONTAINER_GET WMS_CONTAINER_PUT_NEW WMS_EMPTY_CELL WMS_CHANGEFLAG WMS_CHANGEDOC WMS_CELLCHANGED WMS_GETDOCS

Процедура WMS_CHANGEFLAG должна вызываться из Documents_ChangeFlag_AfterAll Процедура WMS_CHANGEDOC должна вызываться из Documents_Put_BeforeAll Процедура WMS_CELLCHANGED должна вызываться из GBObjects_Put_AfterAll

  1. Создать доп справочник зон хранения
  2. ---
  3. Планер
    • В ГБ "Конфигурация"->"Глобальные настройки"->"Конфигурация системы" создаем запись с ид 200 и пишем в нее IP:Port (Port указывается в настройке планировщика, по умолчанию 200)
  1. Настройка получения документов

Планер получает документы всех типов кроме тех у которых @WMSType I,O,T. В Настроках планера указываем фирмы для которых будут получаться документы, минимальный и максимальный флаг, промежуток дат. Кроме того для склада или партнера должно быть указано @WMSEnabled=1 либо в настройках включить получение для всех складов секция Documents параметр AllStocks

  1. Настройка колонок

настраивает в ини секция Documents параметр GridLayout

Пример
GridLayout=|"Document","-116","Док."|;|"SName=DocType.Name+'
'+DocNumber","+114","Название"|;|"Partner.Name","+150","Партнер"|
;|"Stock.Name","+121","Склад"|;|"TotalSum","-87","Сумма"|;|"DocDate","+64","Дата
док."|;|"OperationDate","+64","Дата отгр."|
  1. Создание шаблонов

CellFlags.txt добавление произвольных флагов ячейкам флагов Пример: Для размещения надо сделать приоритетность уровней 2-3-4-5 только для размещения 1 только для размещения возвратов

разбиваем по уровням, удобне сделать обычным флагом так как он влияет на качество1

IIF(SUBSTR(name,STRLEN(name)-1,1)='-',IIF(SUBSTR(name,STRLEN(name),1)='1','Floor.1=1','Floor.2=1'),)

приоритетность

IIF(SUBSTR(name,STRLEN(name),1)<>'1','~Floor='+FORMATFLOAT('0.00',1-0.25*(STRTOFLOAT( SUBSTR(name,STRLEN(name),1))-2)),),) Сделан только для рядов и ячеек. Флаг с дов интервалом влияет на качество2.

Шаблон DsToXml.xml используется для подготовки документа к планированию(выбрасываются всякие ненужные вещи, обрабатываются и дополняются связвнные документы) имеет 1 тег line

 <line>
   <object name="%child.line" />
   <structure>
     <field name="Id" type="I4" />
     <field name="Partner" type="I4" />
     <field name="Stock" type="I4" />
     <field name="DocType" type="I4" />
     <field name="WMSType"  type="S20"/>
     <field name="Heap"  type="B" nature="fmSingleSet" />
     <subset name="Goodies">
       <field name="Document" type="I4" />
       <field name="UniqueId" type="I4" />
       <field name="Articul" type="I4" />
       <field name="Heap" type="B" nature="fmSingleSet" />
       <subset name="Certificates">
         <field name="Certificate" type="I4" />
         <field name="Quantity" type="F8" />
       </subset>
     </subset>
   </structure>


   <ds2xml>
     <subset fieldname="Goodies" breakline="true">
       <subset fieldname="Certificates" line="line" breakline="true">
         <attr fieldname="%master.%master.Id" tagname="doc" />
         <attr fieldname="%master.%master.Partner" tagname="partner" />
         <attr fieldname="%master.%master.Stock" tagname="stock" />
         <attr fieldname="%master.%master.DocType" tagname="doctype" />
         <attr fieldname="%master.%master.WMSType" tagname="wmstype" />
         <attr fieldname="%master.%master.Heap" tagname="docheap" />
         <attr fieldname="%master.Articul" tagname="art" />
         <attr fieldname="%master.Heap" tagname="heap" />
         <attr fieldname="Certificate" tagname="cert" />
         <attr fieldname="Quantity" tagname="qty" />
       </subset>
     </subset>
   </ds2xml>
   <xml2ds>
     <subset fieldname="Goodies" line="%child.line">
       <subset fieldname="Certificates" line="line">
         <attr fieldname="%master.%master.Id" tagname="doc" key="true" />
         <attr fieldname="%master.%master.Partner" tagname="partner" key="true" />
         <attr fieldname="%master.%master.Stock" tagname="stock"  key="true"/>
         <attr fieldname="%master.%master.DocType" tagname="doctype"  key="true"/>
         <attr fieldname="%master.%master.WMSType" tagname="wmstype"  key="true"/>
         <attr fieldname="%master.%master.Heap" tagname="docheap"  />
         <attr fieldname="%master.Document" value="IIF(:GroupOperation,:CurrentDoc,0)"  key="true"/>
         <attr fieldname="%master.UniqueId" value="IIF(:GroupOperation or !doctype=1270 or !cert<>0,GetChildNumber(),0)"  key="true"/>
         <attr fieldname="%master.Articul" tagname="art"  key="true"/>
         <attr fieldname="%master.Heap" value="!heap" />
         <attr fieldname="Certificate" tagname="cert"  key="true"/>
         <attr fieldname="Quantity" value="IFEMPTY(Quantity,0)+GetAttrValue(0,'qty')" />
       </subset>
     </subset>
   </xml2ds>
 </line>