So beheben Sie STRING_TOO_LONG in Salesforce-Deployments

Ein in ein Text-, Picklist- oder E-Mail-Feld geschriebener Wert überschreitet die für dieses Feld definierte maximale Länge.

Tritt auf bei: DML zur Laufzeit, bei Datenladevorgängen, Apex-Tests und Flow- oder Apex-Zeichenkettenlogik

Was das bedeutet

STRING_TOO_LONG bedeutet, dass ein Einfügen oder Aktualisieren eines Datensatzes versucht, mehr Zeichen in ein Feld zu schreiben, als dessen Metadaten zulassen. Standardtextfelder, Picklists und E-Mail-Felder haben alle eine definierte maximale Länge, und Salesforce setzt diese strikt durch: Ein Kürzen geschieht nie stillschweigend.

Standard-Text-Felder sind maximal auf 255 Zeichen begrenzt; alles Längere benötigt stattdessen ein Long-Text-Area- oder Rich-Text-Feld, weshalb dieser Fehler oft ein Zeichen dafür ist, dass ein Feld einfach vom falschen Typ für den Inhalt war, den es nun aufnehmen soll.

Diagnose

Häufige Ursachen

Daten aus einem System mit lockereren Grenzwerten migriert
Quelldaten, oft aus einem Legacy-CRM oder einer Tabelle, haben Werte, die länger sind als die konfigurierte Länge des Zielfeldes.
Feldlänge verkleinert, nachdem bereits Daten existierten
Die maximale Länge eines Feldes wurde in einem späteren Deployment verringert, und bestehende oder eingehende Daten passen nicht mehr.
Verkettete Werte in Apex oder Flow
Eine Formel, ein Flow oder ein Apex-Trigger baut eine Zeichenkette durch das Zusammenfügen mehrerer Felder auf, und das kombinierte Ergebnis überschreitet das Limit des Zielfeldes.

Die Lösung

  1. Die Feldlänge erhöhen, wenn der Geschäftsfall es rechtfertigt
    Erhöhen Sie die maximale Länge des Feldes in den Metadaten, wenn die längeren Werte legitim sind und der Feldtyp dies zulässt.
  2. Am Eingabepunkt validieren
    Fügen Sie eine Flow- oder Apex-Absicherung hinzu, die übergroße Werte kürzt oder ablehnt, bevor sie die DML-Operation erreichen.
    String safeValue = rawValue.length() > 255
        ? rawValue.left(255)
        : rawValue;
  3. Migrierte Daten gegen das Zielschema prüfen
    Vergleichen Sie die Längen der Quelldaten mit den Zielfeldgrenzen vor einer Migration, nicht nachdem der Ladevorgang fehlschlägt.
In der Praxis

Wie Serpent das verhindert

Die CI-Pipelines von Serpent führen eine Feldlängenprüfung durch, bevor ein Datenladevorgang eine gemeinsam genutzte Org erreicht, sodass ein übergroßer Wert schnell in einem Pipeline-Schritt fehlschlägt statt mitten im Deployment. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Metadaten und Daten in einem einzigen Deployment-Flow in Serpent

Prävention

Für jedes potenziell wachsende Feld Long Text Area statt Text wählen
Nutzen Sie standardmäßig eine Long Text Area statt eines 255-Zeichen-Text-Feldes für Freitextfelder mit ungewissem zukünftigem Inhalt, da eine spätere Erweiterung störender ist, als von Anfang an breiter zu beginnen.
Verkettete Zeichenketten auf das Limit des Zielfeldes begrenzen, nicht der Quelle
Kürzen Sie explizit in Apex oder Flow, wann immer eine Formel mehrere Felder zu einem zusammenfügt, wobei die tatsächliche Länge des Zielfeldes als Grenze dient.
Quellfeldlängen vor jeder Migration profilieren
Führen Sie für jedes zu migrierende Textfeld eine MAX(LENGTH(column))-Prüfung der Quelldaten durch und vergleichen Sie sie vor dem Ladevorgang mit der maximalen Länge des Zielfeldes.
Häufige Fragen

STRING_TOO_LONG, beantwortet

Gilt STRING_TOO_LONG auch für Rich-Text- und Long-Text-Area-Felder?
Long Text Areas und Rich Text haben ihre eigenen, deutlich höheren Limits und ihren eigenen Fehler, TEXT_AREA_LENGTH_EXCEEDED. STRING_TOO_LONG betrifft Standardtext-, Picklist- und E-Mail-Felder.
Wie lang darf ein Standard-Text-Feld maximal sein?
255 Zeichen ist die Obergrenze für ein benutzerdefiniertes Standard-Text-Feld; alles Längere erfordert den Wechsel zu Long Text Area oder einem ähnlichen Typ, der für größere Inhalte konzipiert ist.
Zählt Salesforce Multi-Byte-Zeichen für dieses Limit anders?
Nein. Das Zeichenlimit basiert auf der Anzahl der Zeichen, nicht der Bytes, sodass Multi-Byte-Unicode-Zeichen (wie viele nicht-lateinische Schriften) genauso zum Limit zählen wie Single-Byte-ASCII-Zeichen.

Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.

Einrichtung in unter 15 Minuten. Keine DevOps-Einstellung nötig.

Neugierig auf schnelleres Shipping, bevor Sie einsteigen? Sprechen wir

Unverbindlich.