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-FieldLabelTypeMapping-Strategie
TR1__Skills__cSkillstextareaPrimä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__cSkills Training ExperiencemultipicklistSekundärquelle. Konkatenieren mit Primärquelle, dedup.
TR1__SEN_Additional_Experience__cSEN Skills, Quals and TrainingmultipicklistTertiä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-FieldLabelTypeWertebereichMapping-Strategie
SC_RemoteShare__cRemote sharepercent0–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.

IdJob TitleSkillsSkills TrainingSEN SkillsRemote Share
a1WAU000001xxoH2AQTestsharenullnullnullnull
a1WAU000001xzA92AInullnullnullnullnull
a1WAU000001yAdR2AUnullnullnullnullnull
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