| Status | |
|---|---|
| Owner | |
| Stakeholders | |
| Jira Request ID | |
| Jira Development ID |
| Implementing System | Kinaxis Maestro |
|---|---|
| Invoked by/Invokes | |
| Business Process Reference | 04.04.06.01. Data provisioning ERP to Maestro |
This table contains data related to historical actual customer demand (shipments and/or actual demand) for a given period. This table supports Demand Planning and Statistical Forecasting in Maestro, and is needed for statistical forecasting, forecast, disaggregation, and forecast accuracy.
May also contain data related to consumption of inventory by a customer or point of sale data from a customer.
The scope of this interface is between Global Integration Suite and Maestro. This document includes details of the HistoricalDemandInvoiced.tab object.
The objective is to populate the HistoricalDemandActual and it's referenced tables based on the file provided by Global Integration Suite.

Step | Description |
|---|---|
1 | Global Integration Suite transfers transformed Composites / Rest of World data from S/4, and performs some formatting, and sends the data to Maestro. |
2 | China Integration Suite transfers transformed China data from S/4, and performs some formatting, and sends the data to Maestro. |
3 | Transferred files will be sent to Maestro’s Client SFTP server. This sits outside of the Maestro firewall and is accessible by client using a user id/ password. Files are transferred from this component to the Planning Server SFTP by a Kinaxis automatic process once the trigger file has been placed (see below) |
4 | Files are moved to this SFTP server automatically, where they await loading into Maestro. |
5 | Maestro uses the configured DSM (Data Sources and Mapping) setup to load the data into the HistoricalDemandActual table, with the load initiated either manually or through a scheduled system task. |
6 | The Data Tables which store information in Maestro |
See OnHand.tab System Interface document for dependencies.
See Application Architecture Kinaxis Maestro for security requirements for SFTP/REST based authentication and security.
Configuration Requirements
The Data Sources and Mapping for this interface should be configured once, according to the structure in the Data Structure section below.
The Data Model needs to be configured with the Syway-specific fields shown in the Data Model Custom Fields section below.
None
The base of this design has been taken from the existing Maestro implementation, as designed during the Advanced Planning System (APS) Project.
A fit-gap analysis was undertaken within Syway, and changes were identified which have been incorporated into the Syway spec as shown.
The data object provided by either Integration Suite will be consumed by Maestro.
For more information see the Data Integration Document.
| Column Number | Field Name | Technical Field Name | Data Type | Key | Field Type | Autocreate | Description |
|---|---|---|---|---|---|---|---|
1 | Category | Header.Category.Value | String | Y | ExtractField | N | The demand category associated with this group of historical demands |
2 | Customer Id | Header.PartCustomer.Customer.Id | String | Y | ExtractField | N | A value that identifies thecustomer. |
3 | Part | Header.PartCustomer.Part.Name | String | Y | ExtractField | N | Part number or item number. |
4 | Site | Header.PartCustomer.Part.Site.Value | String | Y | ExtractField | N | List of valid site codes. These include manufacturing/physical and inventory/logical. |
4 | Order Site | Order.Site.Value | String | N | ExtractField | N | List of valid site codes. These include manufacturing/physical and inventory/logical. |
5 | Date | Date | Date | Y | ExtractField | Default | The date associated with this historical demand. This is the date on which the record would be considered for use in statistical forecasting, forecast disaggregation, and/or inventory optimization algorithm calculations |
6 | Customer Name | Header.PartCustomer.Customer.Name | String | N | ExtractField | N | The name of the customer. |
7 | Customer Group Id | Header.PartCustomer.Customer.CustomerGroup.Id | String | N | ExtractField | N | The group name. |
8 | Order Id | Order.Id | Y | ExtractField | Default | ||
9 | Line | Line | String | Y | ExtractField | Default | The order line number associated with this record. |
10 | Quantity | Quantity | Quantity | N | ExtractField | Default | The total quantity of actual demands (shipments, requests, etc.) for the period identified by Date |
11 | Unit Price | UnitPrice | Money | N | ExtractField | Default | The unit price for the historical demand |
See File Formats - SFTP section in the Data Integration Document.
Data Model HistoricalDemandActual table settings:
| Allow Data update to: | Currency | |||
|---|---|---|---|---|
| Insert, Modify and Delete records | Insert and Modify records only | Allow automatic record creation | Determined by Maestro | Expression |
| _ | Y | N | N/A | N/A |
Field name | Description | Data type | Key |
RawPrice | Used in the MTP solution to import records with different currencies and convert them to EUR. | Quantity | N |
See Processing Logic - SFTP section in the Data Integration Document.
This file will be a Partial Load, sent 3 times a day, so the file has been loaded at the beginning of day for each global region. If HistoricalDemandInvoiced is omitted from any of these loads, the HistoricalDemandActual data within Maestro will be unchanged.
This file will contain data for 2 months (current and previous month), while retaining 3 years of history, on a rolling basis, for planning purposes. A Maestro Scheduled System Task will run each week to remove records over 3 years old.
For more information on the difference between Full and Delta loads, see the Full Loads and Delta Loads - SFTP section in the Data Integration Document.
See the Interface Alert & Monitoring - SFTP section in the Data Integration Document,
None
Not required.
Reference tables to support HistoricalDemandActual table data have to be either loaded manually before loading the HistoricalDemandActual table or at the same time as the HistoricalDemandActual table is loaded or set to be created automatically in data model or in DSM.
Below tables need to be taken into account before HistoricalDemandActual table data load:
Table | SyWay configuration |
HistoricalDemandOrder | Set to allow automatic record creation |
HistoricalDemandHeader | Set to allow automatic record creation |
HistoricalDemandCategory | Control table; Auto create not allowed |
HistoricalDemandCategoryType | Control table; Auto create not allowed |
Part | Auto create not allowed |
Customer | Auto create not allowed |
Current APS Volume of HistoricalDemandActual records is 1,043,268. Because APS makes up approximately 60% of Syway projected records, an expected estimate for Syway is therefore 16,69,229.
This value is expected to grow by 1-2% per year.
Since the initial data load for Historical demand data will be for a 3 year horizon, the performance of the system will have to be monitored.
See OnHand.tab System Interface document for information on how to test.
There are no HistoricalDemandActual-specific testing requirements.
| 1 | Data Load Successful | The Data in the data file matches the data in the Maestro table, and there are no errors. | |||||
| 2 | Data File contains 0 records | The Data Update should fail with a status of Pending. | |||||
| 3 | Data File contains invalid references (or other error) | The Data Update should Fail, the invalid references should be visible in the error log and the records with the error are not loaded into Maestro, and an alert is sent to the Admin team <Or whatever action is needed> Fields for HistoricalDemandInvoiced.tab which should be checked for invalid references are shown in the Data Structure table above as "Ref String" and are:
| |||||
| 4 | Data file contains duplicates | The HistoricalDemandInvoiced.tab file must be checked further for data uniqueness with respect to the key fields, in case data is available in file but not in Maestro |
Dependent files should already be loaded into Maestro for these tests to complete. See Sequencing section above.
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.
