Context-Snapshot · docs/context/0008b · 2026-05-14 · P2503-146
FCSB · Skills + Remote-Anteil TR1__Job__c PRE-BUILD-GATE
TL;DR — Pre-Build-Gate für Slice 6 (Skill-Badges) und Slice 7 (Remote-Anteil-Slider). Live-Describe gegen FCSB-Sandbox bestätigt: Beide Datenpunkte existieren als first-class SF-Fields am TR1__Job__c, kein Tag-Parsing oder redaktioneller Default nötig. SC_RemoteShare__c (percent) ist direkt mappbar zu einem Drupal-Number-Field. TR1__Skills__c (textarea) ist die Primärquelle für Skill-Badges; TR1__Skills_Training_Experience__c und TR1__SEN_Additional_Experience__c (beide multipicklist) sind sekundäre Quellen. Entscheidung: Slice 6/7 nutzen direktes Migrate-Mapping (Plan §05 Option a).
Skills (Slice 6, US-24)
| SF-Field | Label | Type | Mapping-Strategie |
TR1__Skills__c | Skills | textarea | Primärquelle: Custom-Process-Plugin SkillsTextSplit splittet auf Komma/Newline/Semicolon, normalisiert (trim, lowercase), legt fehlende Vocabulary-Terms per solcom_project_offer.installer auto-create on miss an (analog Industry-Lookup-Pattern aus IndustryByValue). |
TR1__Skills_Training_Experience__c | Skills Training Experience | multipicklist | Sekundärquelle. Konkatenieren mit Primärquelle, dedup. |
TR1__SEN_Additional_Experience__c | SEN Skills, Quals and Training | multipicklist | Tertiärquelle (vermutlich nicht regelmäßig befüllt). Optional. |
Implementations-Empfehlung Slice 6: Vocabulary skill (Plan §01) anlegen, Reference-Field field_skills am project_offer-Bundle. Custom-Process-Plugin SkillTextSplitOrPicklist die als Source ['TR1__Skills__c', 'TR1__Skills_Training_Experience__c'] nimmt, alle Tokens vereinigt, splittet, dedupliziert, Vocabulary-Terms by-name lookup/create. Cardinality unbegrenzt. Card-Twig: max-5 visible + +N-Counter.
Remote-Anteil (Slice 7, US-26)
| SF-Field | Label | Type | Wertebereich | Mapping-Strategie |
SC_RemoteShare__c | Remote share | percent | 0–100 (SF-percent als Integer dargestellt) | Direkt: Drupal-Number-Field field_remote_share (integer, range 0–100), Migrate-Process ['plugin' => 'get', 'source' => 'SC_RemoteShare__c']. NULL bleibt NULL (kein Default). |
Implementations-Empfehlung Slice 7: Number-Field field_remote_share mit Range 0–100, Default-Display als 0/25/50/75/100-Steps in Card-Twig (visuelle Slider-Repräsentation). BEF-Filter „Mindest-Remote-Anteil" als Number-Greater-Than oder Range-Slider (Tools-Modul).
Sample-Records (Sanity-Check)
3 Sample-Records aus der FCSB-Sandbox mit den 4 oben gefundenen Feldern. Alle Test-Records haben aktuell NULL-Werte in Skills + Remote — das ist OK (Sandbox-Datenqualität), die Migrate-Pipeline behandelt NULL korrekt mit empty-multivalue + NULL-default.
| Id | Job Title | Skills | Skills Training | SEN Skills | Remote Share |
a1WAU000001xxoH2AQ | Testshare | null | null | null | null |
a1WAU000001xzA92AI | null | null | null | null | null |
a1WAU000001yAdR2AU | null | null | null | null | null |
Beobachtung: Sandbox-Daten sind primär Schema-Test-Records, nicht reale Job-Inhalte. Realistische Test-Cases müssen vor Production-Cutover separat erstellt werden (entweder Sandbox-Test-Records mit echten Skills-Listen oder eine Migrate-Smoke gegen Production read-only).
Entscheidung & Folgeslices
- Slice 6 unblocked: direktes Migrate-Mapping aus
TR1__Skills__c + TR1__Skills_Training_Experience__c
- Slice 7 unblocked: direktes Migrate-Mapping aus
SC_RemoteShare__c
- Plan §05 Option (a) ist die Implementation-Strategy für beide Slices; Option (b) (Tag-Parsing + redaktioneller Default) wird obsolet
- Vocabulary-Pre-Seed für
skill bleibt leer (free-tagging V1); Editor:innen pflegen Synonyme manuell nach