We’ve extended the demand planning data model to include custom attributes for seasonal factors and promotional impact indicators. These fields are properly defined in the system and display correctly in the UI when manually entered.
However, when we import forecast data using the standard Excel template, all custom attribute columns are completely ignored - the data imports successfully but those columns come through as null values. The standard fields (SKU, Location, Period, Quantity) import perfectly.
Our Excel template includes columns: SKU, Location, ForecastPeriod, Quantity, SeasonalFactor, PromoImpact. The last two are our custom attributes. We’ve verified the column headers exactly match the attribute names defined in the system.
Is there specific import mapping configuration required for custom attributes? The documentation only covers standard field mapping, and we can’t find any settings that control custom attribute import behavior.
The ‘Import Mapping’ setting is crucial - it must be set to ‘Value-to-Code’ for direct Excel value matching.
Test Import Capability:
Use the Data Model Validator tool:
System Tools > Data Validation > Custom Attribute Import Test
Select Attribute: attr_seasonal_factor
Test Value: 1.25
Result: Should show 'Valid - Import Supported'
Data Model Extension Considerations:
When extending the demand planning data model, ensure proper configuration:
Attribute Registration:
Custom attributes must be registered with the import framework:
This configuration is in: System Configuration > Import/Export Framework > Attribute Registry
2. **Excel Template Generation:**
After configuring your custom import profile, generate a new template:
- Import Profiles > Select 'Demand_Forecast_Custom_Attributes' > Actions > Generate Template
- This creates an Excel file with proper column headers and data validation rules
- Use this generated template instead of creating your own
3. **Data Type Formatting:**
The generated template includes pre-configured data validation:
- SeasonalFactor column: Number format, 2 decimal places, range 0.01-10.00
- PromoImpact column: Dropdown list with exact enum values
- This prevents type mismatch issues during import
**Troubleshooting Your Specific Issue:**
For the PromoImpact null value problem:
1. **Verify Enum Configuration:**
Export the enum definition:
```sql
SELECT enum_value, enum_code, display_order
FROM custom_attribute_enums
WHERE attribute_name = 'attr_promo_impact'
Check for hidden characters, trailing spaces, or unexpected case variations.
Check Import Log:
After import, review the detailed log:
Data Management > Import History > Select your import > View Details
Look for warnings like:
Row 2: PromoImpact value 'HIGH' not found in enumeration
Row 3: PromoImpact value 'NONE' rejected - invalid format
Test Individual Values:
Use the API test console to verify enum values:
POST /api/v1/demandplanning/forecasts
{
"productCode": "TEST-001",
"attr_promo_impact": "HIGH"
}
If this API call fails, the enum value itself is misconfigured.
Complete Implementation Steps:
Verify custom attributes have ‘Import Enabled’ = TRUE
Create custom import profile with explicit field mappings
Generate new Excel template from the custom profile
Test import with 2-3 sample rows
Review import log for validation errors
Adjust enum configurations if needed
Re-test with full dataset
Best Practices:
Always use generated templates rather than manually created Excel files
Set up import validation rules to catch data quality issues before import
Enable detailed logging during initial testing
Create separate import profiles for different forecast scenarios (promotional vs. regular)
Document your custom attribute mappings in the profile description field
The most common cause of custom attributes being ignored is the ‘Import Enabled’ flag not being set on the attribute definition. Verify this first before troubleshooting mapping configurations.
This draft is based on general Infor CloudSuite knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.
Custom attributes require explicit mapping in the import profile configuration. The default Excel import template only handles standard schema fields. You need to create a custom import profile that defines the mapping between your Excel columns and the extended data model attributes.
Thanks, but where do we configure custom import profiles? I’ve looked in Demand Planning > Configuration > Import Settings but don’t see an option to define custom attribute mappings. Is this in a different admin area?
Go to System Administration > Data Management > Import Profiles. Create a new profile specifically for demand planning forecasts. In the field mapping section, you’ll see the standard fields pre-mapped. Click ‘Add Custom Field Mapping’ and select your custom attributes from the dropdown. Map each to the corresponding Excel column name. Save the profile and then use this profile when importing your Excel file instead of the default template.
One gotcha with custom attribute imports: the data types must match exactly. If SeasonalFactor is defined as Decimal in your data model, the Excel column must be formatted as Number not Text. If PromoImpact is an enumeration type, the Excel values must exactly match the enum values defined in the system (case-sensitive). Mismatched types cause silent failures where the row imports but custom fields stay null.
We created the custom import profile and mapped the fields. SeasonalFactor is importing correctly now, but PromoImpact is still coming through as null. It’s defined as an enumeration with values: NONE, LOW, MEDIUM, HIGH. Our Excel has those exact values. Could there be a case sensitivity issue even though they look identical?
Check if your enumeration attribute has a default value set in the data model definition. Sometimes enums require explicit null handling in the import profile. Also verify that the enum values don’t have trailing spaces in the system definition - that’s a common source of match failures. You can test by exporting existing records that have PromoImpact set and comparing the exported values character-by-character with your import data.