إصلاح تنزيلات عروض الأسعار التي تفشل أو لا تصل أبدًا
اكتشف سبب رفض تصدير عرض الأسعار بصيغة CSV أو PDF أو XLSX للتنزيل، أو ظهور نجاح دون ملف، أو عدم وصوله أبدًا بعد وضعه في قائمة الانتظار.
تُنتَج ملفات CSV وPDF لعروض الأسعار داخل نظام ملفات التطبيق في المتصفح وتُسلَّم إلى المتصفح كتنزيل عادي، يتبعه إشعار 'Successfully downloaded files'. إذا كان الملف المُنشأ موجودًا لكنه فارغ، يرفض التطبيق مع إشعار الخطأ 'Cannot download empty content' — والأسباب المعتادة هي جدول عرض أسعار فارغ (لا شيء مسعّر ضمن النطاق/عوامل التصفية الحالية) أو إجهاض التوليد في منتصفه؛ أعد توليد عرض الأسعار وحاول مجددًا. هناك مشكلتان تابعتان: (1) بعد تنزيل ناجح يُحذف الملف المؤقت من نظام ملفات التطبيق وتُلغى صلاحية رابط blob فورًا، لذا سيؤدي استخدام 'retry download' الخاصة بالمتصفح على ذلك الإدخال إلى الفشل — يجب إعادة تشغيل التصدير من داخل التطبيق؛ (2) تُطلق التنزيلات عبر نقرة رابط محاكاة، لذا قد تبتلع إعدادات حظر التنزيل الصارمة في المتصفح الملف بينما لا يزال التطبيق يُظهر النجاح؛ اطلب من العميل التحقق من أذونات التنزيل في المتصفح للموقع. بالنسبة لتصديرات XLSX يكون اسم الملف pricing_quotation.xlsx، أو output-<timestamp>-<random>.xlsx المُولَّد تلقائيًا عندما لا يوفّر المحرك اسمًا.
عند فشل تنزيل عرض أسعار بصيغة XLSX، فإن تصديرات عرض الأسعار بصيغة CSV وPDF إجراءات منفصلة داخل المتصفح ويمكن تنزيلها رغم ذلك.
يحذف إخراج CSV الصور، لذا ليس بديلًا عندما تكون الصور مطلوبة.
✓ تم التحقق منه في المنتج في 19 أكتوبر 2026كل تصدير لعرض أسعار/الإنتاج يشغّل أولًا فحوصات ما قبل الإخراج بالإضافة إلى تمريرة الانتهاكات (يعرض المُحمِّل 'Checking for violations...'). إخراجات المجموعات الفرعية للوحات استثناء: تتخطى تمريرة الانتهاكات وتُسلَّم لمعالجتها على الخادم الخلفي، لذا لا يظهر لها إشعار انتهاكات. يمكن لتفضيلات المسؤول أن تحظر التنزيل، ولكل منها إشعار خطأ خاص يفوته العملاء كثيرًا: (1) Enforce active sales channel — إذا كان مفعّلًا ولم يكن للتصميم قناة مبيعات نشطة محددة: 'Downloading output for design without active sales channel preference is not permitted'؛ (2) No outputs for unapproved designs — يحظر إخراجات فئة حجز الطلبات/ERP/أمر الشراء على التصاميم غير المعتمدة؛ (3) No outputs for unlocked designs — الأمر نفسه للتصاميم غير المقفلة؛ (4) No Outputs For Designs With Violations And Issues — إذا وُجدت انتهاكات قيود الكتالوج، يطلب إشعار ثابت حل جميع الانتهاكات أو إيقاف التفضيل. تصديرات عروض الأسعار (تنزيل عرض الأسعار وتصديرات عرض الأسعار بصيغة CSV/XLSX) معفاة من تفضيلات الاعتماد والقفل: فقط تفضيلات قناة المبيعات النشطة والانتهاكات يمكنها حظرها. يمكن إعفاء تصميم فردي من حظر الانتهاكات (إشعار معلومات: 'Design Exempted from blocking output due to violations'). يتجاوز مستخدمو السوق/البائع كل هذه البوابات، ولا تنطبق بوابات الاعتماد/القفل على مستخدمي MES. نص الفرز: اسأل أي إشعار ومض؛ إذا لم يُرَ أي منها، أعد إنتاج المشكلة مع العميل وراقب أعلى الشاشة، ثم تحقق من تفضيلات المسؤول ولوحة الانتهاكات لذلك التصميم.
تُوضع الإخراجات المولَّدة على الخادم (ملفات PDF لورقة العرض، إخراجات CAM/المنشار، إخراجات التصميم المولَّدة بالمحرك) في قائمة انتظار على الخادم الخلفي. ينشر التطبيق المهمة، ويعرض إشعارًا ثابتًا 'Generating your output' تفيد تفاصيله 'Added to the download queue' (وأثناء الانتظار، موضع في قائمة الانتظار أو 'Processing…')، ثم يستعلم عن حالة المهمة كل 5 ثوانٍ من علامة تبويب المتصفح تلك. عند الاكتمال يعرض 'Your output is ready' ويطلق تنزيل الملف تلقائيًا؛ وعند الفشل يظهر 'Your output could not be generated. Please try again later.' ثابت. قواعد صامتة تفسر معظم التذاكر: (1) يعيش المستعلِم فقط في تلك العلامة — إذا حدّث المستخدم الصفحة أو انتقل بعيدًا أو أغلق العلامة، تكتمل المهمة على الخادم لكن لن يُنزَّل شيء أبدًا؛ يجب عليه إعادة تشغيل التصدير؛ (2) لا توجد مهلة للمستعلِم، لذا تترك مهمة عالقة في قائمة الانتظار إشعار 'Generating your output' (تفاصيل 'Added to the download queue' أو موضع في قائمة الانتظار) معروضًا إلى ما لا نهاية — بقاء ذلك الإشعار لعدة دقائق يعني أن قائمة الانتظار متأخرة أو أن المهمة ماتت بصمت، ويستحق التحقق من قائمة انتظار الإخراج على الخادم الخلفي؛ (3) إذا حدث خطأ في فحص الحالة نفسه، يتوقف الاستعلام مع 'Something went wrong with output generation. Please try again later'. يكبت التنزيل التلقائي تحذير مغادرة الموقع في المتصفح لفترة وجيزة؛ وهذا مقصود.