We’re experiencing failures when transferring configuration data from SAP PLM to ECC via IDoc (PLFMAS message type). The IDoc is being created but fails with error ‘Mandatory segment E1PLFML missing’ in WE02.
I’ve checked the partner profile in WE20 and the message type is configured correctly. When I look at the IDoc segment structure in WE30, E1PLFML is marked as mandatory but our configuration data doesn’t seem to populate it.
IDoc Status: 51 - Application document not posted
Segment: E1PLFMA (populated)
Segment: E1PLFML (missing)
Error: Mandatory segment E1PLFML not found
The configuration management module is active and data exists in PLM. What could cause this segment to not be populated during IDoc generation? Has anyone dealt with similar IDoc structure issues in configuration transfers?
I’ve seen this before. The issue is usually in the IDoc enhancement or the configuration determination logic. Go to transaction SALE and check your distribution model (BD64) to ensure the message type PLFMAS is properly configured with all required filters. Also verify in WE30 that the segment structure matches your PLM release - sometimes after upgrades the segment definitions get out of sync between systems. You might need to regenerate the partner profile after fixing the distribution model.
I encountered this exact issue last year with SAP PLM 2020. Here’s the complete solution addressing all three aspects:
IDoc Segment Structure Analysis:
First, verify in WE30 that your PLFMAS IDoc type includes the E1PLFML segment with proper release compatibility. For SAP PLM 2020, you should be using PLFMAS05 or higher. Check the segment documentation - E1PLFML requires fields KLART (class type) and CLASS (class name) to be populated.
* Verify segment structure in WE30:
IDoc Type: PLFMAS05
Segment E1PLFML - Min: 1, Max: 999
Required fields: KLART, CLASS, OBTAB, OBJEK
Partner Profile Mapping:
The issue often stems from incomplete partner profile configuration in WE20. Navigate to WE20, select your partner profile (logical system), and verify the outbound parameters for message type PLFMAS:
- Basic type must be PLFMAS05 (not PLFMAS04)
- Check ‘Process code’ is set to PLM1 or your custom processing code
- Verify ‘Output mode’ is set correctly (Transfer IDoc immediately)
- Most importantly, check the ‘Application’ field points to the correct configuration management application
Go to table EDPP to verify partner profile assignments programmatically if needed.
WE30/WE20 Transaction Usage:
The root cause is typically in the segment generation logic. Check transaction SE37 for function module IDOC_OUTPUT_PLFMAS and verify its implementation. The E1PLFML segment is populated from classification data, so ensure:
- Configuration materials have classification assignments (CL20N)
- The classification class is flagged for IDoc transfer (CL02, ‘IDoc relevant’ checkbox)
- Run program RBDSEPOS to check for any segment suppression rules
* Debug key function module:
CALL FUNCTION 'IDOC_OUTPUT_PLFMAS'
EXPORTING
pi_config_id = lv_config_id
TABLES
pt_edidd = lt_segments.
* Check if E1PLFML is in lt_segments
Verification Steps:
- Run transaction BD87 to reprocess failed IDocs after fixes
- Use WE19 to create a test IDoc manually and verify E1PLFML appears
- Check ST22 for any short dumps during IDoc creation
- Review SM58 for any transactional RFC errors that might block segment population
After implementing these fixes, regenerate the IDoc using BD87 or trigger a fresh configuration transfer. The E1PLFML segment should now populate correctly with classification data from your configuration objects.
Check your configuration profile settings in PLM. The E1PLFML segment typically contains material classification data. If your configuration objects aren’t properly linked to material master records or don’t have the required classification assignments, the segment won’t populate. Run transaction CU50 to verify your classification setup for the affected configuration materials.
Have you verified the configuration profile assignment in transaction CU41? The E1PLFML segment specifically requires certain configuration profile settings to be active. Also check if your configuration scenarios in PLM are set up to include material classification data in the transfer scope. Sometimes the issue is simply that the configuration profile doesn’t have ‘Transfer classification’ flag enabled, which prevents the segment from being populated even though the data exists in PLM.
Thanks for the suggestions. I checked CU50 and the classification is there. The distribution model in BD64 looks correct too. I’m wondering if this is a custom enhancement issue - we have some Z-programs that modify IDoc creation. Should I be looking at function module MASTERIDOC_CREATE_PLFMAS or are there other exit points that could affect segment population?
Yes, check for any implementations in BADI PLM_IDOC_OUTBOUND or customer exits in enhancement spot PLM_IDOC_ENHANCEMENT. These can suppress or modify segments during IDoc creation. Use transaction SE19 to check active BADI implementations. Also look at table EDISEGMENT to see if E1PLFML has any special processing flags set. Sometimes segment population is conditional based on configuration types or organizational data that might not be maintained in your scenario.