Read-Side-Replikation von SOLCOM-Projektausschreibungen aus der FCSB-Salesforce-Sandbox
(BH4SF-Package) in Drupal als node:project unter dem Projektpartnerportal,
plus einem schmalen Outbound-Pfad für die publizierte Detail-URL.
F-290 (Jira P2503-108) verbindet
die Salesforce-Welt der internen SOLCOM-Vertriebsprozesse mit der öffentlichen Website.
Quelle ist das SF-Custom-Objekt TR1__Job__c mit RecordType Publication
in der FCSB-Sandbox (Instance solcom--fcsbsolcom.sandbox.my.salesforce.com).
Ziel ist node:project unter /projektportal/<slug>.
Vier Bausteine tragen die Integration:
test.salesforce.com) — kein User-Login, langlebige Service-Identity website.integrationuser@solcom.de.fcsb.LastModifiedDate alle 15 Min, plus nightly Reconciliation-Sweep gegen Full-Id-Liste (Hard-Delete-Erkennung).hohr__Job_Application_URL__c) wird bei Publish/Unpublish via hook_node_update → Queue zurückgeschrieben.
Das Custom-Modul web/modules/custom/solcom_sf_publication ist die einzige
Implementations-Stelle; die Drupal Salesforce Suite (drupal/salesforce) wird
bewusst nicht installiert (siehe ADR-0026).
| Strand | Ref | Inhalt |
|---|---|---|
| adr | 0033-solcom-sf-publication-custom-module | Connector-Topologie: schlankes Custom-Modul statt Drupal Salesforce Suite. Modul-Struktur, OAuth-Refresh, Token-Cache, Retry, Credential-Discipline via drupal/key. |
| adr | 0034-sf-publication-rest-pull-over-platform-event | Transport-Entscheidung: REST-Pull statt Platform-Event-Subscription oder Boomi-Hop. Frequenz, Reconciliation, Outbound-Trigger. |
| context | 0008-fcsb-bh4sf-publication-mapping | Kunden-Spec: Endpoint, SOQL-Sample, Feld-Mapping TR1__Job__c → node:project, Industry-Picklist (TR01, 24 Branchen), RecordType-IDs, Sample-Payload-Schema. |
| context | 0001-it-landscape | SF/CRM-Position in der SOLCOM-Systemlandschaft, Job-Posting-Box, Verbindung zu Projektpartnerportal. |
| context | 0006-website-terminology | PPP / Projektportal — Live-Site-Begriffe, URL-Basis, Sitemap-N14, F-290-/F-400-Abgrenzung. |
| story | F-290 · Salesforce-Publication-Sync (BH4SF) | Refined Story mit User-Story, 11 Akzeptanzkriterien, Scope (in/out), Sub-Task-Tabelle, Abhängigkeiten und offenen Punkten. |
| jira | P2503-108 + Sub-Tasks P2503-127 … P2503-134 |
8 Slices: Foundation+SfClient, node:project, Taxonomy industry, Delta-Pull, Reconciliation, URL-Push, Drush-Commands, Tests+Status-Page. |
SF_FCSB_CLIENT_ID, SF_FCSB_CLIENT_SECRET, SF_FCSB_REFRESH_TOKEN über drupal/key. Lokal in .ddev/config.local.yaml (gitignored), Mittwald im mStudio-env.drush solcom-sf:bootstrap [--dry-run] für Initial-Load oder Re-Sync, solcom-sf:reconcile für Hard-Delete-Sweep, solcom-sf:push-urls für Backfill der URL-Outbound.cron['time'=>120]); Reconciliation nachts 03:00.node:project ist publiziert ⇔ publish_start ≤ now < publish_end AND SC_PublicationStatus__c == 'Published'. Außerhalb: unpublished, nicht gelöscht.p, h2-h4, ul, ol, li, strong, em, br, a[href]; style-Attribute strippen; img-Tags entfernen; Links mit Host *.force.com / *.salesforce.com droppen.*.my.salesforce.com.v66.0 in Modul-Settings. Upgrade-Pfad bewusst manuell.solcom_sf_publication ist im Repo unter web/modules/custom/solcom_sf_publication/; Build-Status und Sub-Task-Progress in Jira (P2503-108).