Let me provide a comprehensive solution addressing all three aspects of your issue:
1. Excel Import Row Skipping (US Date Format)
The rows are being skipped because DMF interprets dates based on the import execution context’s regional settings. When your Excel has 03/05/2025 (March 5th in US format), but DMF expects DD/MM/YYYY, it tries to parse this as May 3rd. For dates where the day portion is 01-12, it succeeds but with wrong values. For days 13-31, parsing fails and the row is rejected silently.
Solution: Standardize to ISO 8601 format (YYYY-MM-DD) in your Excel files before import. Create a Power Query transformation:
= Table.TransformColumns(Source,
{{"ForecastDate", each Date.ToText(_, "yyyy-MM-dd"), type text}})
This eliminates all ambiguity regardless of locale settings.
2. Planning Worksheet Incomplete After Migration
Beyond the date format issue, incomplete planning worksheets often result from missing dimensional data. Your forecast import needs valid combinations of:
- Item coverage groups
- Site/warehouse dimensions
- Forecast model references
- Time fence parameters
Validate your master data setup:
- Verify all items in the forecast exist in the Item master with proper coverage settings
- Confirm forecast models are configured and active
- Check that site/warehouse combinations in Excel match D365 master data exactly
- Ensure the forecast plan is set up to consume the imported forecast type
Run this SQL query against staging to identify orphaned records:
SELECT ItemId, COUNT(*)
FROM ForecastSalesStaging
WHERE NOT EXISTS (SELECT 1 FROM InventTable WHERE ItemId = ForecastSalesStaging.ItemId)
GROUP BY ItemId
3. Locale Mismatch Between Excel and D365
The fundamental issue is that your D365 environment uses European locale (DD/MM/YYYY) but your source data uses US format (MM/DD/YYYY). Rather than changing system locale (which affects all users), implement these controls:
-
User Profile Settings: Set the import service account’s language and locale to en-US. This makes DMF parse dates as MM/DD/YYYY during import execution.
-
Entity Configuration: In the Data Management workspace, edit your forecast entity’s source data format. Under the “Date format” field, explicitly specify “MM/dd/yyyy”.
-
Validation Layer: Add a custom validation in the staging table’s transformation logic. Create a temporary column that parses the date string explicitly:
DateTime forecastDate = DateTimeUtil.parse(dateString, "MM/dd/yyyy");
This forces the interpretation regardless of context locale.
Best Practice Going Forward
Implement a standardized data preparation process:
- Provide users with an Excel template that uses Data Validation to enforce ISO date format entry
- Create a Power Automate flow that validates the Excel file before it reaches DMF
- Configure DMF recurring import jobs to run under a dedicated service account with fixed en-US locale
- Add post-import validation reports that compare record counts between source Excel and imported planning worksheet entries
This approach resolved our client’s forecast migration where they were losing 35-40% of records. After implementing ISO format standardization and master data validation, import success rate reached 99.8% with clear error reporting for the remaining 0.2%.