PT-Excel demo — различия между версиями
(→Stored Procedures) |
(→Лист RoutingAttributes) |
||
(не показаны 73 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | == | + | Ниже описан пример работы [[PlanetTogether]] с Excel файлом из шаблона: |
− | === pt_import_procedures === | + | [[Файл:PlanetTogether Excel Import Template 08212020.zip|мини]] |
+ | *Также смотри видео: https://www.youtube.com/watch?v=8JB8e9j2Nv4 | ||
+ | == Подготовка к работе с Excel == | ||
+ | Пример архитектуры с excel | ||
+ | [[Файл:PT excel arch.PNG|мини|центр|Пример архитектуры интеграции PlanetTogether и MS Excel]] | ||
+ | *In order to query excel from SQL you'll need to perform the following 3 steps... Выполнить следующие шаги | ||
+ | *Step1: Install 64-bit Microsoft.ACE.OLEDB.12.0 driver. Установить драйвер | ||
+ | **http://www.microsoft.com/en-us/download/details.aspx?id=13255 | ||
+ | *Step2: Configure ACE OLE properties. Выполнить скрипт ниже | ||
+ | <pre> | ||
+ | EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 | ||
+ | GO | ||
+ | EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 | ||
+ | GO | ||
+ | </pre> | ||
+ | *Step3: Configure DB properties. Выполнить скрипт ниже | ||
+ | <pre> | ||
+ | EXEC sp_configure 'show advanced options', 1; | ||
+ | RECONFIGURE; | ||
+ | GO | ||
+ | EXEC sp_configure 'Ad Hoc Distributed Queries', 1; | ||
+ | RECONFIGURE; | ||
+ | GO | ||
+ | </pre> | ||
+ | *Step4: Set SQL Server Windows Service Login as Local Account. Запустить службу SQL Server под локальным аккаунтом | ||
+ | |||
+ | == Template_Demo.xlsx - описание Excel файла из примера == | ||
+ | *Столбцы на листах названия которых выполнено красным цветом - это обязательно требуемые для заполнения столбцы | ||
+ | ===Лист ColorNamePicker === | ||
+ | *Лист для справки по названиям цветов, не используется для импорта, нужен только для информации и примера цвета | ||
+ | |||
+ | ===Лист MetaData=== | ||
+ | Основная информация о предприятии. | ||
+ | *Строка '''PlantName''', столбец '''DataValue''': название предприятия/заказчика или проекта | ||
+ | Столбцы: | ||
+ | *DataName | ||
+ | *'''DataValue''' | ||
+ | |||
+ | ===Лист Resources=== | ||
+ | *Перечень ресурсов: оборудования, людей, инструмент, оснастка | ||
+ | *Обязательные для заполнения столбцы в excel выделены красным, ниже жирным | ||
+ | Столбцы: | ||
+ | *'''ResourceName''' - название конкретного экземпляра оборудования, например Миксер1, Миксер2 | ||
+ | *'''WorkCenterName''' - класс оборудования, например миксеры или линии упаковки и прочее | ||
+ | *'''ResourceCapability''' - название функции оборудования, основной задачи, например: перемешивание, упаковка | ||
+ | *IsTankResource - оборудование является местом для хранения? | ||
+ | *IsInfiniteCapacity - поставить 1 если емкость оборудования не ограничена, например для поточной линии, иначе можно пропустить или поставить 0 | ||
+ | *SortId - по этому полю производиться сортировка ресурсов при отображении. Чем больше номер, тем выше в списке показывается ресурс. Оборудование с SortId=200, будет выше в списке чем оборудование с SortId=10 | ||
+ | |||
+ | ===Лист ResourceProductRules=== | ||
+ | *Возможность связать конкретное изделие/готовый продукт с ресурсом и установить ограничения по производительности. Например ПРОДУКТ1 может быть произведен на РЕСУРС1 или РЕСУРС2, но РЕСУРС2 позволяет производить 100 изд/ч, а РЕСУРС1 80 изд/ч | ||
+ | Столбцы | ||
+ | *'''ResourceName''' - Название ресурса, должно совпадать с названием указанным в столбце с тем же именем на листе Resources | ||
+ | *'''ItemName''' - название продукта/изделия, продукт должен быть занесен на листе Items | ||
+ | *'''QuantityPerHour''' - номинальная производительность работы оборудования, количество единиц продукции в 1 час | ||
+ | |||
+ | ===Лист Items=== | ||
+ | *Перечень используемых материалов: сырых, промежуточных, готовой продукции, вспомогательных и пр. Любой материал который используется в процессе производства | ||
+ | Столбцы: | ||
+ | *'''ItemName''' - название | ||
+ | *ItemDescription - описание | ||
+ | *UnitOfMeasure - единицы измерения | ||
+ | *'''IsMade''' - установить 1 для тех материалов, которые производятся. Например готовая продукция, промежуточные изделия. Для сырых материалов поставить или 0 или пропустить | ||
+ | *Cost - стоимость, для расчета и использования при анализе оптимальных вариантов | ||
+ | *LeadTimeDays - количество дней для поставки материалов, например требуется 5 дней для поставки сырых материалов | ||
+ | *BatchSize - размер партии, если требуется. Например если поставить 100, но для очередного заказа из ERP потребуется произвести 150, то будет запланировано 2 партии, размерами 100 и 100 | ||
+ | *MaxBatches - максимальное кол-во партий для планирования | ||
+ | *OnHandQty - кол-во "под рукой", в непосредственной доступности, например на складе рядом, то кол-во для которого срок LeadTimeDays не применим или не требуется для учета или близок к нулю | ||
+ | *StoreInTank - сохранять на складе/емкости для хранения, поставить 1 для тех материалов которые нужно отправлять в место промежуточного хранения | ||
+ | *ItemColor - цвет item для подсветки на плане | ||
+ | |||
+ | ===Лист Routings=== | ||
+ | *Перечень маршрутов (рецепты, маршрутные карты и пр.) при необходимости с разбивкой по операциям | ||
+ | Столбцы: | ||
+ | *'''ItemName''' - имя/идентификатор материала должно совпадать с '''ItemName''' на закладке '''Items''' | ||
+ | *'''OperationNumber''' - номер операции, просто число для сортировки операция с одинаковым именем указанным в поле '''CapabilityRequired''' | ||
+ | *OperationDescription - описание операции | ||
+ | *'''CapabilityRequired''' - имя операции и требования к функционалу оборудования. Т.е. оборудование/ресурс должно поддерживать эту операцию. Должно совпадать с полем '''ResourceCapability''' на листе '''Resources''' | ||
+ | *DefaultResourceName - на каком оборудовании/ресурсе запускать операцию, должно совпадать с именем ресурса - c полем '''ResourceName''' на листе '''Resources'''. Указывать если данный материал может быть произведен только на требуемом оборудовании | ||
+ | *FixedRunHours - указать кол-во часов, если данная операция требует фиксированного времени, например операция проверки качества всегда требует минимум 1 часа | ||
+ | *'''StandardQtyPerHour''' - производительность операции в час | ||
+ | *StandardSetupHours - количество часов для работ с переналадкой оборудования при подготовке к выполнению операции. Используется при смене материала? (требует подтверждения) | ||
+ | *HelperCapabilityRequired | ||
+ | |||
+ | ===Лист BOMs=== | ||
+ | *Перечень спецификаций, BOM. В контексте PlanetTogether - BOM определяет количественные характеристики материалов. Например: для изготовления мороженного требуется взять 200 г сливок для взбивания, 100 г сгущённого молока. Источник рецепта: https://lifehacker.ru/domashnee-morozhenoe-recepty/ | ||
+ | Столбцы: | ||
+ | *'''ItemName''' - имя/идентификатор материала должно совпадать с '''ItemName''' на закладке Items | ||
+ | *'''OperationNumber''' номер операции, просто число для сортировки операция с одинаковым именем, должно совпадать с полем '''OperationNumber''' листа "Routings" | ||
+ | *'''ConsumedItemName''' - какие материалы потребляются для производства, должно совпадать с '''ItemName''' на закладке Items | ||
+ | *'''ConsumedItemQuantity''' - количество требуемое для производства в долях требуемых для производства 1 единицы продукции. Например 0.1, означает что для производства готовой продукции 1 кг, требуется 100 грамм данного материала | ||
+ | *IsFixedQty - число, используется если при изготовлении всегда используется одинаковое кол-во, например для производства требуется всегда пачка из 100 упаковок, вне зависимости от того сколько изделий производится | ||
+ | |||
+ | ===Лист RoutingAttributes=== | ||
+ | *Атрибуты для операций. Используются для подсвечивания данных (цветом) и для корректирования времени наладки/переналадки оборудования перед операцией | ||
+ | Столбцы: | ||
+ | *'''ItemName''' - имя/идентификатор материала должно совпадать с '''ItemName''' на закладке '''Items''' | ||
+ | *'''OperationNumber''' - номер операции, просто число для сортировки операция с одинаковым именем, должно совпадать с полем '''OperationNumber''' листа '''"Routings"''' | ||
+ | *'''AttributeName''' - название атрибута, например длинна, ширина, плотность, цвет, производитель и пр | ||
+ | *'''AttributeValue''' - значение атрибута | ||
+ | *AttributeSetupHours - требования, часов для наладки оборудования перед запуском операции, при использовании этого атрибуты. Любое изменение атрибута между операциями потребует данного времени наладки/переналадки оборудования. | ||
+ | *AttributeColor - цвет | ||
+ | *ShowInGantt - показывать на диаграмме Ганта (1 или 0). При этом показ атрибутов должен быть на диаграмме включен | ||
+ | |||
+ | ===Лист AttributeSetupMatrix=== | ||
+ | *Используется для более сложной и точной настройки времени наладки/переналадки ('''SetupHours''') при смене атрибутов. Когда Атрибут '''AttributeName''' меняется по значения '''FromCode''' до '''ToCode''' | ||
+ | Столбцы: | ||
+ | *'''AttributeName''' - название атрибута для которого нужно настроить время наладки | ||
+ | *'''FromCode''' - предыдущее значение атрибута, то что было на предыдущей операции | ||
+ | *'''ToCode''' - новое значение атрибута, то которое на следующей операции | ||
+ | *'''SetupHours''' - время, часы, для наладки при указанной смене атрибутов | ||
+ | |||
+ | ===Лист AttributeRanges=== | ||
+ | *Используется для задания ограничений для ресурсов. Например, если РЕСУРС1 ('''ResourceName''') может производить только изделие с АТРИБУТОМ1 ('''AttributeName''') со значением от 10 до 20 (от '''RangeStart''' до '''RangeEnd''') | ||
+ | Столбцы: | ||
+ | *'''ResourceName''' - название ресурса | ||
+ | *'''AttributeName''' - название атрибута ресурса | ||
+ | *'''RangeStart''' - начало разрешенного диапазона (граница диапазона включена в него) | ||
+ | *'''RangeEnd''' - окончание разрешенного диапазона (граница диапазона включена в него) | ||
+ | |||
+ | ===Лист SalesOrders=== | ||
+ | *Сбытовые заказы. | ||
+ | **Столбец '''PreCreateWorkOrders''' == 1 - создать WO автоматически при импорте данных. WO создаются в таблицах pt_workorder_gen... | ||
+ | **Также создаются все вспомогательные WO для производства промежуточных материалов согласно маршрутной карты ('''routing''') данного '''item''' | ||
+ | Столбцы: | ||
+ | *'''SalesOrderID''' - идентификатор сбытового заказа | ||
+ | *'''SalesOrderItemName''' - какое готовое изделие/продукт требуется произвести | ||
+ | *'''SalesOrderItemQuantity''' - число, сколько произвести | ||
+ | *'''RequiredShipDate''' - дата в формате системной даты/времени к которой требуется выполнить заказ | ||
+ | *CustomerName - имя заказчика | ||
+ | *SalesAmount - количество для продажи по этому заказу. Может отличаться от количества которое требуется произвести. Например заказ на 1000, но для выполнения можно взять 100 изделий со склада. В этом случае из ERP заходят цифры SalesAmount = 1000, SalesOrderItemQuantity=900? (требует уточнения) | ||
+ | *IsHot - возможно повысить приоритет/важность заказа | ||
+ | *SalesOrderColor - цвет для подсветки в плане | ||
+ | *PreCreateWorkOrders если равно 1, то система автоматически сгенерирует нужные WO для выполнения заказа | ||
+ | |||
+ | ===Лист PurchaseOrders=== | ||
+ | *Заказы на поставку исходных материалов и компонентов | ||
+ | Столбы: | ||
+ | *'''PurchaseOrderId''' - Идентификатор | ||
+ | *'''PurchasedItemName''' - Наименование материала | ||
+ | *'''PurchasedItemQuantity''' - количество материала в поставке в единицах измерения материала | ||
+ | *'''ReceiptDate''' - планируемая дата поставки | ||
+ | |||
+ | ===Лист ForecastOrders=== | ||
+ | *Планируемое изготовление готовой продукции, например для поставки на склад, для создания запаса, для прогнозирования нагрузки | ||
+ | *WO из них по умолчанию не создаются, только идет учет при планировании инвентарных запасов. WO можно создать использую MRP Optimize (но нужна лицензия на MRP) | ||
+ | Столбцы: | ||
+ | *'''ForecastOrderId''' - идентификатор заказа | ||
+ | *'''ForcastItemName''' - наименование готовой продукции/материала | ||
+ | *'''ForecastItemQuantity''' - количество в единицах измерения материала/продукта | ||
+ | *'''ForecastShipDate''' - планируемая дата изготовления | ||
+ | |||
+ | ===Лист WorkOrderHeader=== | ||
+ | *Стоблец LinkedSalesOrderID - связь со столбцом SalesOrder.'''SalesOrderID''' | ||
+ | **Если для указанного в '''LinkedSalesOrderID''' WO SalesOrder.'''PreCreateWorkOrders'''==1 то система не генерирует новый WO, а берет информацию из '''WorkOrderHeader''' | ||
+ | |||
+ | ===Лист WorkOrderRoutings=== | ||
+ | ===Лист WorkOrderBOMs=== | ||
+ | ===Лист WorkOrderActivityUpdates=== | ||
+ | |||
+ | == DB Template_Demo == | ||
+ | === Stored Procedures: pt_import_procedures === | ||
*Получает имя Excel файла (@FilePath) для обработки и вызывает: | *Получает имя Excel файла (@FilePath) для обработки и вызывает: | ||
#dbo.'''get_excel_data''' @FilePath | #dbo.'''get_excel_data''' @FilePath | ||
#dbo.'''build_pt_tables''' | #dbo.'''build_pt_tables''' | ||
− | === get_excel_data === | + | === Stored Procedures: get_excel_data === |
Из листов Excel получает данные и заносит их с таблицы | Из листов Excel получает данные и заносит их с таблицы | ||
+ | *Старые данные при этом из таблиц теряются, т.к. перед занесением выполняется drop table | ||
*Имена листов Excel нельзя менять | *Имена листов Excel нельзя менять | ||
+ | *Можно на существующие листы добавлять новые касмотные столбцы, процедура их тоже перенесет в таблицы data... | ||
*Лог работы процедуры ведется в таблице '''_log_get_excel_data''' | *Лог работы процедуры ведется в таблице '''_log_get_excel_data''' | ||
*Создает следующие таблицы: | *Создает следующие таблицы: | ||
Строка 27: | Строка 190: | ||
**data_WorkOrderActivityUpdates | **data_WorkOrderActivityUpdates | ||
− | === build_pt_tables=== | + | === Stored Procedures: build_pt_tables=== |
Из таблиц куда импортированы даныые из Excel получает данные и заносит их с таблицы для работы PlanetTogether | Из таблиц куда импортированы даныые из Excel получает данные и заносит их с таблицы для работы PlanetTogether | ||
+ | *Старые данные при этом из таблиц теряются, т.к. перед занесением выполняется drop table | ||
*Лог работы процедуры ведется в таблице '''_log_build_pt_tables''' | *Лог работы процедуры ведется в таблице '''_log_build_pt_tables''' | ||
*Создает следующие таблицы: | *Создает следующие таблицы: | ||
Строка 48: | Строка 212: | ||
**pt_purchase_orders | **pt_purchase_orders | ||
**pt_forecasts | **pt_forecasts | ||
+ | **data_WorkOrdersGenerated, создается из [dbo].['''build_data_workorders_generated'''] | ||
**pt_workorder_gen_header | **pt_workorder_gen_header | ||
**pt_workorder_gen_operations | **pt_workorder_gen_operations | ||
Строка 78: | Строка 243: | ||
**pt_all_attributes | **pt_all_attributes | ||
**pt_all_successors | **pt_all_successors | ||
+ | |||
+ | === Описание таблиц БД === | ||
+ | ====data_Plants==== | ||
+ | ====data_Resources==== | ||
+ | ====data_ResourceProductRules==== | ||
+ | ====data_Items==== | ||
+ | ====data_Routings==== | ||
+ | ====data_BOMs==== | ||
+ | ====data_RoutingAttributes==== | ||
+ | ====data_AttributeSetupMatrix==== | ||
+ | ====data_AttributeRanges==== | ||
+ | ====data_SalesOrders==== | ||
+ | *Столбец PreCreateWorkOrders == 1 - создать WO автоматически при импорте данных. WO создаются в таблицах pt_workorder_gen... | ||
+ | |||
+ | ====data_PurchaseOrders==== | ||
+ | ====data_ForecastOrders==== | ||
+ | ====data_WorkOrderHeader==== | ||
+ | ====data_WorkOrderRoutings==== | ||
+ | ====data_WorkOrderBOMs==== | ||
+ | ====data_WorkOrderActivityUpdates==== | ||
+ | ====pt_resources==== | ||
+ | ====pt_items==== | ||
+ | ====pt_routing_header==== | ||
+ | ====pt_routing_operations==== | ||
+ | ====pt_routing_activities==== | ||
+ | ====pt_routing_resource_requirements==== | ||
+ | ====pt_routing_required_capabilities==== | ||
+ | ====pt_routing_paths==== | ||
+ | ====pt_routing_products==== | ||
+ | ====pt_routing_bom==== | ||
+ | ====pt_routing_attributes==== | ||
+ | ====pt_attribute_setup_matrix==== | ||
+ | ====pt_attribute_ranges==== | ||
+ | ====pt_product_rules==== | ||
+ | ====pt_sales_orders==== | ||
+ | ====pt_purchase_orders==== | ||
+ | ====pt_forecasts==== | ||
+ | ====data_WorkOrdersGenerated==== | ||
+ | *создается из [dbo].['''build_data_workorders_generated'''] | ||
+ | |||
+ | ====pt_workorder_gen_header==== | ||
+ | ====pt_workorder_gen_operations==== | ||
+ | ====pt_workorder_gen_activities==== | ||
+ | ====pt_workorder_gen_resource_requirements==== | ||
+ | ====pt_workorder_gen_required_capabilities==== | ||
+ | ====pt_workorder_gen_paths==== | ||
+ | ====pt_workorder_gen_products==== | ||
+ | ====pt_workorder_gen_bom==== | ||
+ | ====pt_workorder_gen_attributes==== | ||
+ | ====pt_workorder_gen_successors==== | ||
+ | ====pt_workorder_excel_header==== | ||
+ | ====pt_workorder_excel_operations==== | ||
+ | ====pt_workorder_excel_activities==== | ||
+ | ====pt_workorder_excel_resource_requirements==== | ||
+ | ====pt_workorder_excel_required_capabilities==== | ||
+ | ====pt_workorder_excel_paths==== | ||
+ | ====pt_workorder_excel_products==== | ||
+ | ====pt_workorder_excel_bom==== | ||
+ | ====pt_workorder_excel_attributes==== | ||
+ | ====pt_workorder_excel_successors==== | ||
+ | ====pt_all_headers==== | ||
+ | *Столбец '''Template''': Одна из задач таблицы показать что является шаблоном (маршрутной картой, рецептом, Template==1), а что является конкретным экземпляром (WorkOrder - наряд заказом, Template==0) | ||
+ | |||
+ | ====pt_all_operations==== | ||
+ | ====pt_all_activities==== | ||
+ | ====pt_all_resource_requirements==== | ||
+ | ====pt_all_required_capabilities==== | ||
+ | ====pt_all_paths==== | ||
+ | ====pt_all_products==== | ||
+ | ====pt_all_bom==== | ||
+ | ====pt_all_attributes==== | ||
+ | ====pt_all_successors==== | ||
+ | |||
+ | == Скачать шаблон == | ||
+ | [[Файл:PlanetTogether Excel Import Template 08212020.zip|мини]] | ||
+ | |||
+ | == Возможные ошибки и проблемы == | ||
+ | *ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath = 'D:\PlanetTogether\Template_Demo.xlsx''. | ||
+ | SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online. SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online. Cannot find the object "dbo.data_Resources" because it does not exist or you do not have permissions. SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online. | ||
+ | **Выполнить скрипт | ||
+ | <pre> | ||
+ | EXEC sp_configure 'show advanced options', 1; | ||
+ | RECONFIGURE; | ||
+ | GO | ||
+ | EXEC sp_configure 'Ad Hoc Distributed Queries', 1; | ||
+ | RECONFIGURE; | ||
+ | GO | ||
+ | </pre> | ||
+ | |||
+ | *ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath = 'D:\PlanetTogether\Template_Demo.xlsx''. The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error. Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". | ||
+ | **Выполнить скрипт | ||
+ | <pre> | ||
+ | EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 | ||
+ | GO | ||
+ | EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 | ||
+ | GO | ||
+ | </pre> | ||
+ | *ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath=':\PT_TR\Template_Demo.xlsx''. The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered. | ||
+ | **Установить install AccessDatabaseEngine https://www.microsoft.com/en-us/download/details.aspx?id=13255 | ||
+ | |||
+ | *Источник: https://www.planettogether.com/en/knowledge/importing-from-excel |
Текущая версия на 10:48, 31 мая 2021
Ниже описан пример работы PlanetTogether с Excel файлом из шаблона: Файл:PlanetTogether Excel Import Template 08212020.zip
- Также смотри видео: https://www.youtube.com/watch?v=8JB8e9j2Nv4
Содержание
- 1 Подготовка к работе с Excel
- 2 Template_Demo.xlsx - описание Excel файла из примера
- 2.1 Лист ColorNamePicker
- 2.2 Лист MetaData
- 2.3 Лист Resources
- 2.4 Лист ResourceProductRules
- 2.5 Лист Items
- 2.6 Лист Routings
- 2.7 Лист BOMs
- 2.8 Лист RoutingAttributes
- 2.9 Лист AttributeSetupMatrix
- 2.10 Лист AttributeRanges
- 2.11 Лист SalesOrders
- 2.12 Лист PurchaseOrders
- 2.13 Лист ForecastOrders
- 2.14 Лист WorkOrderHeader
- 2.15 Лист WorkOrderRoutings
- 2.16 Лист WorkOrderBOMs
- 2.17 Лист WorkOrderActivityUpdates
- 3 DB Template_Demo
- 3.1 Stored Procedures: pt_import_procedures
- 3.2 Stored Procedures: get_excel_data
- 3.3 Stored Procedures: build_pt_tables
- 3.4 Описание таблиц БД
- 3.4.1 data_Plants
- 3.4.2 data_Resources
- 3.4.3 data_ResourceProductRules
- 3.4.4 data_Items
- 3.4.5 data_Routings
- 3.4.6 data_BOMs
- 3.4.7 data_RoutingAttributes
- 3.4.8 data_AttributeSetupMatrix
- 3.4.9 data_AttributeRanges
- 3.4.10 data_SalesOrders
- 3.4.11 data_PurchaseOrders
- 3.4.12 data_ForecastOrders
- 3.4.13 data_WorkOrderHeader
- 3.4.14 data_WorkOrderRoutings
- 3.4.15 data_WorkOrderBOMs
- 3.4.16 data_WorkOrderActivityUpdates
- 3.4.17 pt_resources
- 3.4.18 pt_items
- 3.4.19 pt_routing_header
- 3.4.20 pt_routing_operations
- 3.4.21 pt_routing_activities
- 3.4.22 pt_routing_resource_requirements
- 3.4.23 pt_routing_required_capabilities
- 3.4.24 pt_routing_paths
- 3.4.25 pt_routing_products
- 3.4.26 pt_routing_bom
- 3.4.27 pt_routing_attributes
- 3.4.28 pt_attribute_setup_matrix
- 3.4.29 pt_attribute_ranges
- 3.4.30 pt_product_rules
- 3.4.31 pt_sales_orders
- 3.4.32 pt_purchase_orders
- 3.4.33 pt_forecasts
- 3.4.34 data_WorkOrdersGenerated
- 3.4.35 pt_workorder_gen_header
- 3.4.36 pt_workorder_gen_operations
- 3.4.37 pt_workorder_gen_activities
- 3.4.38 pt_workorder_gen_resource_requirements
- 3.4.39 pt_workorder_gen_required_capabilities
- 3.4.40 pt_workorder_gen_paths
- 3.4.41 pt_workorder_gen_products
- 3.4.42 pt_workorder_gen_bom
- 3.4.43 pt_workorder_gen_attributes
- 3.4.44 pt_workorder_gen_successors
- 3.4.45 pt_workorder_excel_header
- 3.4.46 pt_workorder_excel_operations
- 3.4.47 pt_workorder_excel_activities
- 3.4.48 pt_workorder_excel_resource_requirements
- 3.4.49 pt_workorder_excel_required_capabilities
- 3.4.50 pt_workorder_excel_paths
- 3.4.51 pt_workorder_excel_products
- 3.4.52 pt_workorder_excel_bom
- 3.4.53 pt_workorder_excel_attributes
- 3.4.54 pt_workorder_excel_successors
- 3.4.55 pt_all_headers
- 3.4.56 pt_all_operations
- 3.4.57 pt_all_activities
- 3.4.58 pt_all_resource_requirements
- 3.4.59 pt_all_required_capabilities
- 3.4.60 pt_all_paths
- 3.4.61 pt_all_products
- 3.4.62 pt_all_bom
- 3.4.63 pt_all_attributes
- 3.4.64 pt_all_successors
- 4 Скачать шаблон
- 5 Возможные ошибки и проблемы
Подготовка к работе с Excel
Пример архитектуры с excel
- In order to query excel from SQL you'll need to perform the following 3 steps... Выполнить следующие шаги
- Step1: Install 64-bit Microsoft.ACE.OLEDB.12.0 driver. Установить драйвер
- Step2: Configure ACE OLE properties. Выполнить скрипт ниже
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO
- Step3: Configure DB properties. Выполнить скрипт ниже
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO
- Step4: Set SQL Server Windows Service Login as Local Account. Запустить службу SQL Server под локальным аккаунтом
Template_Demo.xlsx - описание Excel файла из примера
- Столбцы на листах названия которых выполнено красным цветом - это обязательно требуемые для заполнения столбцы
Лист ColorNamePicker
- Лист для справки по названиям цветов, не используется для импорта, нужен только для информации и примера цвета
Лист MetaData
Основная информация о предприятии.
- Строка PlantName, столбец DataValue: название предприятия/заказчика или проекта
Столбцы:
- DataName
- DataValue
Лист Resources
- Перечень ресурсов: оборудования, людей, инструмент, оснастка
- Обязательные для заполнения столбцы в excel выделены красным, ниже жирным
Столбцы:
- ResourceName - название конкретного экземпляра оборудования, например Миксер1, Миксер2
- WorkCenterName - класс оборудования, например миксеры или линии упаковки и прочее
- ResourceCapability - название функции оборудования, основной задачи, например: перемешивание, упаковка
- IsTankResource - оборудование является местом для хранения?
- IsInfiniteCapacity - поставить 1 если емкость оборудования не ограничена, например для поточной линии, иначе можно пропустить или поставить 0
- SortId - по этому полю производиться сортировка ресурсов при отображении. Чем больше номер, тем выше в списке показывается ресурс. Оборудование с SortId=200, будет выше в списке чем оборудование с SortId=10
Лист ResourceProductRules
- Возможность связать конкретное изделие/готовый продукт с ресурсом и установить ограничения по производительности. Например ПРОДУКТ1 может быть произведен на РЕСУРС1 или РЕСУРС2, но РЕСУРС2 позволяет производить 100 изд/ч, а РЕСУРС1 80 изд/ч
Столбцы
- ResourceName - Название ресурса, должно совпадать с названием указанным в столбце с тем же именем на листе Resources
- ItemName - название продукта/изделия, продукт должен быть занесен на листе Items
- QuantityPerHour - номинальная производительность работы оборудования, количество единиц продукции в 1 час
Лист Items
- Перечень используемых материалов: сырых, промежуточных, готовой продукции, вспомогательных и пр. Любой материал который используется в процессе производства
Столбцы:
- ItemName - название
- ItemDescription - описание
- UnitOfMeasure - единицы измерения
- IsMade - установить 1 для тех материалов, которые производятся. Например готовая продукция, промежуточные изделия. Для сырых материалов поставить или 0 или пропустить
- Cost - стоимость, для расчета и использования при анализе оптимальных вариантов
- LeadTimeDays - количество дней для поставки материалов, например требуется 5 дней для поставки сырых материалов
- BatchSize - размер партии, если требуется. Например если поставить 100, но для очередного заказа из ERP потребуется произвести 150, то будет запланировано 2 партии, размерами 100 и 100
- MaxBatches - максимальное кол-во партий для планирования
- OnHandQty - кол-во "под рукой", в непосредственной доступности, например на складе рядом, то кол-во для которого срок LeadTimeDays не применим или не требуется для учета или близок к нулю
- StoreInTank - сохранять на складе/емкости для хранения, поставить 1 для тех материалов которые нужно отправлять в место промежуточного хранения
- ItemColor - цвет item для подсветки на плане
Лист Routings
- Перечень маршрутов (рецепты, маршрутные карты и пр.) при необходимости с разбивкой по операциям
Столбцы:
- ItemName - имя/идентификатор материала должно совпадать с ItemName на закладке Items
- OperationNumber - номер операции, просто число для сортировки операция с одинаковым именем указанным в поле CapabilityRequired
- OperationDescription - описание операции
- CapabilityRequired - имя операции и требования к функционалу оборудования. Т.е. оборудование/ресурс должно поддерживать эту операцию. Должно совпадать с полем ResourceCapability на листе Resources
- DefaultResourceName - на каком оборудовании/ресурсе запускать операцию, должно совпадать с именем ресурса - c полем ResourceName на листе Resources. Указывать если данный материал может быть произведен только на требуемом оборудовании
- FixedRunHours - указать кол-во часов, если данная операция требует фиксированного времени, например операция проверки качества всегда требует минимум 1 часа
- StandardQtyPerHour - производительность операции в час
- StandardSetupHours - количество часов для работ с переналадкой оборудования при подготовке к выполнению операции. Используется при смене материала? (требует подтверждения)
- HelperCapabilityRequired
Лист BOMs
- Перечень спецификаций, BOM. В контексте PlanetTogether - BOM определяет количественные характеристики материалов. Например: для изготовления мороженного требуется взять 200 г сливок для взбивания, 100 г сгущённого молока. Источник рецепта: https://lifehacker.ru/domashnee-morozhenoe-recepty/
Столбцы:
- ItemName - имя/идентификатор материала должно совпадать с ItemName на закладке Items
- OperationNumber номер операции, просто число для сортировки операция с одинаковым именем, должно совпадать с полем OperationNumber листа "Routings"
- ConsumedItemName - какие материалы потребляются для производства, должно совпадать с ItemName на закладке Items
- ConsumedItemQuantity - количество требуемое для производства в долях требуемых для производства 1 единицы продукции. Например 0.1, означает что для производства готовой продукции 1 кг, требуется 100 грамм данного материала
- IsFixedQty - число, используется если при изготовлении всегда используется одинаковое кол-во, например для производства требуется всегда пачка из 100 упаковок, вне зависимости от того сколько изделий производится
Лист RoutingAttributes
- Атрибуты для операций. Используются для подсвечивания данных (цветом) и для корректирования времени наладки/переналадки оборудования перед операцией
Столбцы:
- ItemName - имя/идентификатор материала должно совпадать с ItemName на закладке Items
- OperationNumber - номер операции, просто число для сортировки операция с одинаковым именем, должно совпадать с полем OperationNumber листа "Routings"
- AttributeName - название атрибута, например длинна, ширина, плотность, цвет, производитель и пр
- AttributeValue - значение атрибута
- AttributeSetupHours - требования, часов для наладки оборудования перед запуском операции, при использовании этого атрибуты. Любое изменение атрибута между операциями потребует данного времени наладки/переналадки оборудования.
- AttributeColor - цвет
- ShowInGantt - показывать на диаграмме Ганта (1 или 0). При этом показ атрибутов должен быть на диаграмме включен
Лист AttributeSetupMatrix
- Используется для более сложной и точной настройки времени наладки/переналадки (SetupHours) при смене атрибутов. Когда Атрибут AttributeName меняется по значения FromCode до ToCode
Столбцы:
- AttributeName - название атрибута для которого нужно настроить время наладки
- FromCode - предыдущее значение атрибута, то что было на предыдущей операции
- ToCode - новое значение атрибута, то которое на следующей операции
- SetupHours - время, часы, для наладки при указанной смене атрибутов
Лист AttributeRanges
- Используется для задания ограничений для ресурсов. Например, если РЕСУРС1 (ResourceName) может производить только изделие с АТРИБУТОМ1 (AttributeName) со значением от 10 до 20 (от RangeStart до RangeEnd)
Столбцы:
- ResourceName - название ресурса
- AttributeName - название атрибута ресурса
- RangeStart - начало разрешенного диапазона (граница диапазона включена в него)
- RangeEnd - окончание разрешенного диапазона (граница диапазона включена в него)
Лист SalesOrders
- Сбытовые заказы.
- Столбец PreCreateWorkOrders == 1 - создать WO автоматически при импорте данных. WO создаются в таблицах pt_workorder_gen...
- Также создаются все вспомогательные WO для производства промежуточных материалов согласно маршрутной карты (routing) данного item
Столбцы:
- SalesOrderID - идентификатор сбытового заказа
- SalesOrderItemName - какое готовое изделие/продукт требуется произвести
- SalesOrderItemQuantity - число, сколько произвести
- RequiredShipDate - дата в формате системной даты/времени к которой требуется выполнить заказ
- CustomerName - имя заказчика
- SalesAmount - количество для продажи по этому заказу. Может отличаться от количества которое требуется произвести. Например заказ на 1000, но для выполнения можно взять 100 изделий со склада. В этом случае из ERP заходят цифры SalesAmount = 1000, SalesOrderItemQuantity=900? (требует уточнения)
- IsHot - возможно повысить приоритет/важность заказа
- SalesOrderColor - цвет для подсветки в плане
- PreCreateWorkOrders если равно 1, то система автоматически сгенерирует нужные WO для выполнения заказа
Лист PurchaseOrders
- Заказы на поставку исходных материалов и компонентов
Столбы:
- PurchaseOrderId - Идентификатор
- PurchasedItemName - Наименование материала
- PurchasedItemQuantity - количество материала в поставке в единицах измерения материала
- ReceiptDate - планируемая дата поставки
Лист ForecastOrders
- Планируемое изготовление готовой продукции, например для поставки на склад, для создания запаса, для прогнозирования нагрузки
- WO из них по умолчанию не создаются, только идет учет при планировании инвентарных запасов. WO можно создать использую MRP Optimize (но нужна лицензия на MRP)
Столбцы:
- ForecastOrderId - идентификатор заказа
- ForcastItemName - наименование готовой продукции/материала
- ForecastItemQuantity - количество в единицах измерения материала/продукта
- ForecastShipDate - планируемая дата изготовления
Лист WorkOrderHeader
- Стоблец LinkedSalesOrderID - связь со столбцом SalesOrder.SalesOrderID
- Если для указанного в LinkedSalesOrderID WO SalesOrder.PreCreateWorkOrders==1 то система не генерирует новый WO, а берет информацию из WorkOrderHeader
Лист WorkOrderRoutings
Лист WorkOrderBOMs
Лист WorkOrderActivityUpdates
DB Template_Demo
Stored Procedures: pt_import_procedures
- Получает имя Excel файла (@FilePath) для обработки и вызывает:
- dbo.get_excel_data @FilePath
- dbo.build_pt_tables
Stored Procedures: get_excel_data
Из листов Excel получает данные и заносит их с таблицы
- Старые данные при этом из таблиц теряются, т.к. перед занесением выполняется drop table
- Имена листов Excel нельзя менять
- Можно на существующие листы добавлять новые касмотные столбцы, процедура их тоже перенесет в таблицы data...
- Лог работы процедуры ведется в таблице _log_get_excel_data
- Создает следующие таблицы:
- data_Plants
- data_Resources
- data_ResourceProductRules
- data_Items
- data_Routings
- data_BOMs
- data_RoutingAttributes
- data_AttributeSetupMatrix
- data_AttributeRanges
- data_SalesOrders
- data_PurchaseOrders
- data_ForecastOrders
- data_WorkOrderHeader
- data_WorkOrderRoutings
- data_WorkOrderBOMs
- data_WorkOrderActivityUpdates
Stored Procedures: build_pt_tables
Из таблиц куда импортированы даныые из Excel получает данные и заносит их с таблицы для работы PlanetTogether
- Старые данные при этом из таблиц теряются, т.к. перед занесением выполняется drop table
- Лог работы процедуры ведется в таблице _log_build_pt_tables
- Создает следующие таблицы:
- pt_resources
- pt_items
- pt_routing_header
- pt_routing_operations
- pt_routing_activities
- pt_routing_resource_requirements
- pt_routing_required_capabilities
- pt_routing_paths
- pt_routing_products
- pt_routing_bom
- pt_routing_attributes
- pt_attribute_setup_matrix
- pt_attribute_ranges
- pt_product_rules
- pt_sales_orders
- pt_purchase_orders
- pt_forecasts
- data_WorkOrdersGenerated, создается из [dbo].[build_data_workorders_generated]
- pt_workorder_gen_header
- pt_workorder_gen_operations
- pt_workorder_gen_activities
- pt_workorder_gen_resource_requirements
- pt_workorder_gen_required_capabilities
- pt_workorder_gen_paths
- pt_workorder_gen_products
- pt_workorder_gen_bom
- pt_workorder_gen_attributes
- pt_workorder_gen_successors
- pt_workorder_excel_header
- pt_workorder_excel_operations
- pt_workorder_excel_activities
- pt_workorder_excel_resource_requirements
- pt_workorder_excel_required_capabilities
- pt_workorder_excel_paths
- pt_workorder_excel_products
- pt_workorder_excel_bom
- pt_workorder_excel_attributes
- pt_workorder_excel_successors
- pt_all_headers
- pt_all_operations
- pt_all_activities
- pt_all_resource_requirements
- pt_all_required_capabilities
- pt_all_paths
- pt_all_products
- pt_all_bom
- pt_all_attributes
- pt_all_successors
Описание таблиц БД
data_Plants
data_Resources
data_ResourceProductRules
data_Items
data_Routings
data_BOMs
data_RoutingAttributes
data_AttributeSetupMatrix
data_AttributeRanges
data_SalesOrders
- Столбец PreCreateWorkOrders == 1 - создать WO автоматически при импорте данных. WO создаются в таблицах pt_workorder_gen...
data_PurchaseOrders
data_ForecastOrders
data_WorkOrderHeader
data_WorkOrderRoutings
data_WorkOrderBOMs
data_WorkOrderActivityUpdates
pt_resources
pt_items
pt_routing_header
pt_routing_operations
pt_routing_activities
pt_routing_resource_requirements
pt_routing_required_capabilities
pt_routing_paths
pt_routing_products
pt_routing_bom
pt_routing_attributes
pt_attribute_setup_matrix
pt_attribute_ranges
pt_product_rules
pt_sales_orders
pt_purchase_orders
pt_forecasts
data_WorkOrdersGenerated
- создается из [dbo].[build_data_workorders_generated]
pt_workorder_gen_header
pt_workorder_gen_operations
pt_workorder_gen_activities
pt_workorder_gen_resource_requirements
pt_workorder_gen_required_capabilities
pt_workorder_gen_paths
pt_workorder_gen_products
pt_workorder_gen_bom
pt_workorder_gen_attributes
pt_workorder_gen_successors
pt_workorder_excel_header
pt_workorder_excel_operations
pt_workorder_excel_activities
pt_workorder_excel_resource_requirements
pt_workorder_excel_required_capabilities
pt_workorder_excel_paths
pt_workorder_excel_products
pt_workorder_excel_bom
pt_workorder_excel_attributes
pt_workorder_excel_successors
pt_all_headers
- Столбец Template: Одна из задач таблицы показать что является шаблоном (маршрутной картой, рецептом, Template==1), а что является конкретным экземпляром (WorkOrder - наряд заказом, Template==0)
pt_all_operations
pt_all_activities
pt_all_resource_requirements
pt_all_required_capabilities
pt_all_paths
pt_all_products
pt_all_bom
pt_all_attributes
pt_all_successors
Скачать шаблон
Файл:PlanetTogether Excel Import Template 08212020.zip
Возможные ошибки и проблемы
- ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath = 'D:\PlanetTogether\Template_Demo.xlsx.
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online. SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online. Cannot find the object "dbo.data_Resources" because it does not exist or you do not have permissions. SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online.
- Выполнить скрипт
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO
- ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath = 'D:\PlanetTogether\Template_Demo.xlsx. The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error. Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
- Выполнить скрипт
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO
- ERROR 2850: Error running pre-import SQL 'EXEC pt_import_procedures @FilePath=':\PT_TR\Template_Demo.xlsx. The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered.
- Установить install AccessDatabaseEngine https://www.microsoft.com/en-us/download/details.aspx?id=13255