Here’s the comprehensive solution addressing all three focus areas:
WBS ID Uniqueness - Root Cause and Solution: SAP Project System (PS) enforces global WBS ID uniqueness across the entire system, stored in table PRPS (WBS element master data). Your legacy system likely allowed WBS ID reuse within different projects, causing the 15% conflict rate.
SAP’s uniqueness rule: WBS element (POSID field) must be unique in PRPS table regardless of project. Your error ‘W-1000 already exists’ means this ID was used in a previously migrated project.
Pre-Migration Validation Strategy: Before any data load, implement this validation process:
- Extract all WBS IDs from legacy system across ALL projects
- Run duplication analysis:
SELECT WBS_ID, COUNT(DISTINCT PROJECT_ID)
FROM LEGACY_WBS
GROUP BY WBS_ID
HAVING COUNT(DISTINCT PROJECT_ID) > 1
- Identify patterns in duplicate WBS IDs (often standard phase codes like W-1000=Planning, W-2000=Execution)
- Calculate transformation strategy based on collision frequency
For your 15% failure rate with WBS ID conflicts, the duplication analysis will show which IDs are reused across projects.
Mapping Table Usage - Complete Implementation: Create mapping table Z_PROJECT_WBS_MAP in SAP with this structure:
- LEGACY_PROJECT_ID (source project identifier)
- LEGACY_WBS_ID (original WBS element code)
- SAP_PROJECT_DEF (SAP project definition)
- SAP_WBS_ELEMENT (transformed globally unique WBS ID)
- WBS_LEVEL (hierarchy level 1-9)
- PARENT_WBS (SAP parent WBS for hierarchy)
- MIGRATION_BATCH (batch number for tracking)
- MIGRATION_DATE (timestamp)
- TRANSFORMATION_RULE (which rule was applied)
Transformation rule options:
Option 1 - Project Prefix (recommended for <10,000 projects):
Legacy: Project=PRJ-2024-001, WBS=W-1000
SAP: WBS=PRJ2024001-W-1000
Pros: Clear traceability, human-readable
Cons: Long IDs (watch 24-char limit)
Option 2 - Sequential Numbering:
Assign globally unique sequence: W-1000 becomes WBS-000001, WBS-000002, etc.
Pros: Short, guaranteed unique
Cons: Lost semantic meaning, requires mapping table for all references
Option 3 - Hash-Based:
Generate unique code using project+WBS hash
Pros: Algorithmic, no collision risk
Cons: Non-intuitive IDs, harder to troubleshoot
For your scenario with 15% conflicts, I recommend Option 1 (Project Prefix) with these implementation steps:
Step 1 - Mapping Table Population (2 days):
INSERT INTO Z_PROJECT_WBS_MAP
SELECT
LEGACY_PROJECT,
LEGACY_WBS,
SAP_PROJECT,
CONCAT(PROJECT_CODE, '-', LEGACY_WBS),
WBS_LEVEL,
PARENT_WBS
FROM LEGACY_PROJECT_STRUCTURE
Validate no duplicates in SAP_WBS_ELEMENT column after transformation.
Step 2 - ETL Transformation Enhancement (3 days):
Modify your ETL workflow to:
- Read legacy project data
- Lookup Z_PROJECT_WBS_MAP for transformed WBS ID
- Replace legacy WBS with SAP WBS in all fields (element, parent reference)
- Validate parent WBS exists before creating child
- Load to SAP using BAPI_PROJECT_MAINTAIN or LSMW
Step 3 - Hierarchical Loading (1 day):
Sequence migration by WBS level:
- Load all Level 1 WBS elements (project root)
- COMMIT WORK
- Load all Level 2 WBS elements (phase level)
- COMMIT WORK
- Continue through all hierarchy levels
This prevents ‘parent not found’ errors and maintains referential integrity.
Step 4 - Downstream Object Migration (ongoing):
When migrating related objects (activities, network, costs), use Z_PROJECT_WBS_MAP to translate WBS references:
- Activity assigned to WBS: Lookup SAP_WBS_ELEMENT from mapping table
- Cost planning by WBS: Use transformed WBS ID
- Resource assignment: Reference SAP WBS not legacy
Validation Queries Post-Migration:
- Check WBS uniqueness in SAP:
SELECT POSID, COUNT(*)
FROM PRPS
GROUP BY POSID
HAVING COUNT(*) > 1
Should return zero rows.
-
Verify hierarchy integrity:
Use transaction CJ20N to display project structure and confirm all WBS elements load correctly with proper parent-child relationships.
-
Reconcile counts:
Compare legacy project WBS element counts against SAP PRPS table counts. Should match 100%.
The mapping table approach eliminates the 15% WBS ID conflict rate and provides traceability for all downstream migrations. Budget 6-7 days for complete implementation including validation. This ensures clean project structure migration to SAP PLM 2020 Project Management.
This draft is based on general SAP PLM knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.