Context-Snapshot · docs/context/0008a · 2026-05-14 · P2503-127
FCSB · Live-Describe-Snapshot TR1__Job__c RecordType: Publication
TL;DR — Pre-Build-Gate für Slice 1 des project_offer-Sync-Plans. Live-Describe gegen FCSB-Sandbox
solcom--fcsbsolcom.sandbox.my.salesforce.com via OAuth-Refresh-Flow erfolgreich (HTTP 200, 271 Felder am Object). RecordTypeId für
Publication bestätigt:
012Wx000000C7ngIAC. SOQL-COUNT auf RecordType=Publication:
219 aktive Records. 22 Plan-Felder verifiziert,
4 Mapping-only-Felder existieren in Sandbox nicht (Drift gegen
0008-fcsb-bh4sf-publication-mapping:
SC_VISRequestNo__c,
SC_SolcomExternalId__c,
SC_BH4SFRequestNo__c,
SC_JobType__c), 1 Plan-Field-Name korrigiert (
hohr__Publishing_start_date_time__c →
hohr__Publishing_start_date__c, datetime trotz Name). Drift ist Mapping-Doc-Drift, kein Code-Drift — bestehende Migrate-YAMLs referenzieren die 4 fehlenden Felder nicht. Production-RecordTypeId ist noch TBD (FCSB-Sandbox ≠ FCSB-Prod, beide gemeinsam in Slice 1 zu setzen).
Run-Metadaten
Cron-Quota-Sizing
unkritisch
| Property | Value |
| Instance URL | https://solcom--fcsbsolcom.sandbox.my.salesforce.com |
| Token Endpoint | https://test.salesforce.com/services/oauth2/token |
| Describe Endpoint | /services/data/v59.0/sobjects/TR1__Job__c/describe |
| Token Access-Length | 112 chars (Bearer) |
| Drupal-Service | solcom_sf_publication.salesforce_client |
| Cred-Keys (drupal/key) | solcom_sf_fcsb_client_id, solcom_sf_fcsb_client_secret, solcom_sf_fcsb_refresh_token (Environment-Provider) |
RecordTypes auf TR1__Job__c
Bestätigt: Publication-RecordType in FCSB-Sandbox aktiv. Folgende RecordTypes haben mit dem solcom-Use-Case keinen direkten Bezug, sind aber zur Information dokumentiert.
| developerName | RecordTypeId (Sandbox) | name | active | solcom-Relevanz |
Publication | 012Wx000000C7ngIAC | Publication | true | PRIMARY — Inbound-Migrate-Filter |
Internal_Vacancy | 012Wx000000C7neIAC | Internal Vacancy | true | Karriere-Vacancy-Sync (separat) |
Pool_Vacancy | 012Wx000000C7nfIAC | Pool Vacancy | true | — |
Secondment | 012Wx000000C7niIAC | Request | true | — |
| Plus 6 weitere RecordTypes aktuell inactive (Consulting, Fixed_Term_Booking, Permanent, Recruitment_Selection, Retained, Try_and_Hire) — nicht für PPP relevant. |
Production-RecordTypeId: NICHT durch diese Sandbox abdeckbar. Vor Production-Cutover muss derselbe Describe-Aufruf gegen FCSB-Production gemacht werden — Sandbox-IDs werden in Drupal nicht funktionieren. Slice 1 trägt die Sandbox-ID als Config-Default ein und documents die Prod-RecordTypeId-Beschaffung als Deploy-Pre-Step.
Felder-Verifikation: 22 Plan-Felder gegen Sandbox
Alle 22 Inbound-Felder + 1 Outbound-Feld aus dem Plan-Mapping (0008) sind in der FCSB-Sandbox vorhanden. Typen + Labels stimmen mit dem Mapping-Doc überein.
Identity & Title
| Plan-Field | Status | Type | Label (live) |
TR1__Job_Title__c | OK | string | Job Title |
TR1__Sector1__c | OK | picklist | Industry |
Beschreibungstexte
| Plan-Field | Status | Type | Label (live) |
hohr__Long_description__c | OK | textarea | Tasks of the position |
hohr__Requirements_description__c | OK | textarea | Must-haves in experience and education |
hohr__Internal_description__c | OK | textarea | Framework conditions |
TR1__Experience_Requirements__c | OK | textarea | Nice to have |
hohr__Parent_Job__c | OK | reference | Parent Job |
Publishing-Window & Status
| Plan-Field | Status | Type | Label (live) | Note |
hohr__Publishing_start_date__c | NAME-DRIFT | datetime | Publishing Start Date Time | Plan/0008 sagt hohr__Publishing_start_date_time__c — existiert nicht. In der Sandbox heißt das Feld hohr__Publishing_start_date__c (datetime, trotz Name). Slice 1 muss das Migrate-Mapping nicht ändern (referenziert bereits korrekt), nur Field-Help-Texte korrigieren. |
hohr__Publishing_end_date_time__c | OK | datetime | Publishing End Date Time | — |
SC_PublicationStatus__c | OK | picklist | Publication Status | — |
Publishing-Channels (PPP-Filter)
| Plan-Field | Status | Type |
SC_Publishing_Channel_Freelance__c | OK | boolean |
SC_Publishing_Channel_Freelancermap__c | OK | boolean |
SC_Publishing_Channel_Gulp__c | OK | boolean |
SC_Publishing_Channel_Homepage__c | EXTRA | boolean |
Extra-Channel SC_Publishing_Channel_Homepage__c: Existiert in Sandbox, ist aber nicht im aktuellen Plan-Mapping referenziert. Optional Folgeschritt: Soll der PPP-Filter „PPP=true" über diesen Channel oder über SC_PublicationStatus__c=Online gehen? — Decision in Slice 1.
Lokation & Timing
| Plan-Field | Status | Type |
TR1__City__c | OK | string (Label: Location) |
TR1__Estimated_Start_Date__c | OK | date (Label: Desired start) |
SC_LatestStart__c | OK | date |
SC_Duration__c | OK | string |
SC_Utilisation__c | OK | string |
External Keys
| Plan-Field | Status | Type |
SC_AutoNumber__c | OK | string |
SC_ExternalPublicationNo__c | OK | string |
SC_ExternalRequestNo__c | OK | string |
Outbound
| Plan-Field | Status | Type |
hohr__Job_Application_URL__c | OK | url |
Drift gegen 0008-Mapping-Doc
Vier in 0008 als „Erweiterte / optionale Felder" geführte API-Namen existieren in der FCSB-Sandbox nicht. Das aktuelle Migrate-Mapping referenziert keinen dieser Namen — somit kein Code-Drift, nur Mapping-Doc-Drift.
| Mapping-Doc-Field | Existiert in Sandbox | Plausibler Substitute | Aktion in Slice 1 |
SC_VISRequestNo__c | FEHLT | VIS-Nr. nur via Relation hohr__Parent_Job__r.SC_ExternalRequestNo__c erreichbar (wie ursprünglich im Mapping-Doc primär dokumentiert) | Mapping-Doc-Annotation, dass direktes Job-Level-Feld in FCSB-Sandbox nicht (mehr) existiert |
SC_SolcomExternalId__c | FEHLT | SC_AutoNumber__c oder SC_ExternalRequestNo__c | Field-Lookup für External-Id auf SC_AutoNumber__c umstellen (Plan-Doc-Korrektur) |
SC_BH4SFRequestNo__c | FEHLT | SC_ExternalRequestNo__c | Mapping-Doc-Annotation; aktuelles Migrate-Mapping referenziert es nicht |
SC_JobType__c | FEHLT | SC_Type__c (picklist, Label „Type") — Werte unklar, in beiden Sample-Records null | Mapping-Doc-Annotation; Picklist-Werte separat per SC_Type__c/describe abzuholen wenn JobType-Filter in Phase 2 gebraucht wird |
Root-cause des Drift: Die Mapping-Doc 0008 wurde aus dem Excel-Interface-Mapping IC_I220_BH4SF_Publication_Website abgeleitet. Excel ist die SOLCOM/Entero-Soll-Beschreibung des Interfaces; die FCSB-Sandbox spiegelt den aktuellen Salesforce-Konfigurations-Stand. Excel scheint einen geplanten oder zurückgerollten Feld-Stand zu beschreiben. Für MVP irrelevant: Migrate-Mapping nutzt nur die 22 verifizierten Inbound-Felder.
Steady-State-Volume & Quota-Sizing
| Metric | Value | Source |
| SOQL | SELECT COUNT() FROM TR1__Job__c WHERE RecordTypeId='012Wx000000C7ngIAC' | Live |
| HTTP | 200 | — |
| Active Publications | 219 | Live |
| Geocoder-Quota-Stress | NIEDRIG — 219 City-Werte gesamt, Pre-Seed deckt die DE-Großstädte ab (Slice 8 Risk Med) | Plan §04 |
| Cron-Hourly-Load | NIEDRIG — Stunden-Cron-Diff vermutlich <10 Records, SOQL-Quota-Verbrauch unkritisch | Plan §01 Inbound-Pull |
| Pagination | Bei steady-state 219 Records kein Body-Paging notwendig (LIMIT 2000 reicht). SfHttpFetcher hat Paging-Support für zukünftiges Wachstum. | — |
Sample-Record
Ein Beispielsatz (gekürzt) als Sanity-Check der Live-Query mit verifizierten Field-Namen.
SOQL: SELECT Id, TR1__Job_Title__c, SC_PublicationStatus__c, hohr__Publishing_start_date__c,
hohr__Publishing_end_date_time__c, TR1__City__c, SC_AutoNumber__c, SC_Type__c, SC_RemoteShare__c
FROM TR1__Job__c WHERE RecordTypeId='012Wx000000C7ngIAC' LIMIT 2
Response (HTTP 200, totalSize=2, done=true):
Record 1:
Id: a1WAU000001xxoH2AQ
TR1__Job_Title__c: "Testshare"
SC_PublicationStatus__c: null
hohr__Publishing_start_date__c: 2025-08-12T11:07:12.000+0000
hohr__Publishing_end_date_time__c: null
TR1__City__c: null
SC_AutoNumber__c: "1000011"
SC_Type__c: null
SC_RemoteShare__c: null
Record 2:
Id: a1WAU000001xzA92AI
TR1__Job_Title__c: null
SC_PublicationStatus__c: null
...
Sample-Befund: In beiden ersten Records ist SC_PublicationStatus__c NULL. Das bedeutet: Die 219 Publication-Records sind nicht zwangsläufig alle „Online". Das aktuelle Migrate-Mapping (P2503-131) filtert beim Render-Time nur SC_PublicationStatus__c == "Online" → Slice 2 (Lifecycle-Window) muss diesen Filter sicher implementieren, sonst werden Test-Records sichtbar.
Implications für Slice 1
- FCSB-Sandbox-Credentials-Check ✅ erfolgreich — kein Blocker für Slice 1.
- RecordTypeId
012Wx000000C7ngIAC bestätigt — bleibt in Migrate-Config.
- Field-Drift: 1 Help-Text-Korrektur in
field.field.node.sf_publication.field_sf_publish_start.yml (description). Keine Migrate-Process-Änderung.
- 4 Mapping-Doc-Drift-Felder: nur Mapping-Doc-Annotation, kein Code-Impact (Migrate-YAML referenziert sie nicht).
- Production-RecordTypeId muss vor Production-Cutover separat ermittelt werden — als Deploy-Checklist-Item zu dokumentieren.
- Slice 2 (Lifecycle-Window): Render-Time-Filter auf
SC_PublicationStatus__c == "Online" ist kritisch (viele Sandbox-Records mit NULL-Status sichtbar wären sonst).