كيفية إصلاح STRING_TOO_LONG في عمليات نشر Salesforce

قيمة تتم كتابتها في حقل نصي أو قائمة اختيار أو بريد إلكتروني تتجاوز الحد الأقصى للطول المحدد لذلك الحقل.

يظهر أثناء: عمليات DML وقت التشغيل، وفي تحميل البيانات، واختبارات Apex، ومنطق بناء النصوص في Flow أو Apex

المعنى

يعني STRING_TOO_LONG أن عملية إدراج أو تحديث سجل تحاول كتابة أحرف أكثر في حقل مما تسمح به بياناته الوصفية. تمتلك الحقول النصية القياسية وقوائم الاختيار وحقول البريد الإلكتروني جميعها حدًا أقصى محددًا للطول، ويطبقه Salesforce بصرامة: لا يحدث الاختصار أبدًا بصمت.

تبلغ حقول Text القياسية حدًا أقصى قدره 255 حرفًا؛ أي شيء أطول يحتاج بدلًا من ذلك إلى حقل Long Text Area أو Rich Text، وهذا سبب كون هذا الخطأ إشارة شائعة إلى أن الحقل كان ببساطة من النوع الخطأ للمحتوى المطلوب منه استيعابه الآن.

التشخيص

الأسباب الشائعة

بيانات مرحّلة من نظام بحدود أقل صرامة
تحتوي بيانات المصدر، غالبًا من نظام CRM قديم أو جدول بيانات، على قيم أطول من الطول المضبوط للحقل الوجهة.
تم تقليص طول الحقل بعد وجود بيانات مسبقًا
تم تقليل الحد الأقصى لطول حقل في عملية نشر لاحقة، ولم تعد البيانات الموجودة أو الواردة تتناسب معه.
قيم مدمجة في Apex أو Flow
تبني صيغة أو Flow أو trigger من Apex نصًا بدمج عدة حقول، وتتجاوز النتيجة المجمّعة حد الحقل الوجهة.

الحل

  1. زد طول الحقل إذا كانت حالة العمل تدعم ذلك
    ارفع الحد الأقصى لطول الحقل في البيانات الوصفية إذا كانت القيم الأطول مشروعة ويسمح نوع الحقل بذلك.
  2. تحقق من الصحة عند نقطة الإدخال
    أضف حارسًا في Flow أو Apex يختصر أو يرفض القيم زائدة الحجم قبل وصولها إلى عملية DML.
    String safeValue = rawValue.length() > 255
        ? rawValue.left(255)
        : rawValue;
  3. دقّق البيانات المرحّلة مقابل المخطط الهدف
    قارن أطوال بيانات المصدر بحدود الحقل الهدف قبل الترحيل، لا بعد فشل التحميل.
من واقع الاستخدام

إزاي Serpent بتمنع ده

تشغّل خطوط أنابيب CI الخاصة بـ Serpent فحص تحقق من طول الحقل قبل وصول تحميل بيانات إلى مؤسسة مشتركة، بحيث تفشل قيمة زائدة الحجم بسرعة في خطوة من خط الأنابيب بدلًا من منتصف عملية النشر. راجع مكتبة أخطاء نشر Salesforce.

الـ metadata والبيانات في مسار نشر واحد داخل Serpent

الوقاية

اختر Long Text Area بدلًا من Text لأي حقل قد ينمو
اجعل حقول النص الحر ذات المحتوى المستقبلي غير المؤكد افتراضيًا من نوع long text area بدلًا من حقل Text بـ255 حرفًا، لأن التوسيع لاحقًا أكثر تعطيلًا من البدء بحجم أوسع.
قيّد النصوص المدمجة بحد الحقل الوجهة، لا حد المصدر
اختصر بشكل صريح في Apex أو Flow كلما دمجت صيغة عدة حقول في حقل واحد، مستخدمًا الطول الفعلي للحقل الوجهة كحد.
حلّل أطوال حقول المصدر قبل كل ترحيل
شغّل فحص MAX(LENGTH(column)) على بيانات المصدر لكل حقل نصي يتم ترحيله، وقارنه بالحد الأقصى لطول الحقل الوجهة قبل التحميل.
أسئلة شائعة

STRING_TOO_LONG، تمت الإجابة

هل ينطبق STRING_TOO_LONG أيضًا على حقول rich text وlong text area؟
تمتلك حقول long text area وrich text حدودًا أعلى بكثير وخطأً خاصًا بها هو TEXT_AREA_LENGTH_EXCEEDED. يغطي STRING_TOO_LONG حقول النص القياسية وقائمة الاختيار والبريد الإلكتروني.
ما هو الحد الأقصى لطول حقل Text قياسي؟
255 حرفًا هو السقف لحقل Text مخصص قياسي؛ أي شيء أطول يتطلب تحويل الحقل إلى Long Text Area أو نوع مشابه مصمم لمحتوى أكبر.
هل يحسب Salesforce الأحرف متعددة البايت بشكل مختلف لهذا الحد؟
لا. يعتمد حد الأحرف على عدد الأحرف، وليس البايتات، لذا فإن أحرف Unicode متعددة البايت (مثل كثير من النصوص غير اللاتينية) تُحسب في الحد بنفس طريقة أحرف ASCII أحادية البايت.

ابدأ مجانًا. بلا بطاقة ائتمان، بلا تثبيت، بلا التزام.

الإعداد في أقل من 15 دقيقة. لا حاجة لتوظيف DevOps.

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.