در نسخهٔ جدید سیستم (5.2)، چندین تغییر اساسی در نحوهٔ تفسیر و پردازش خروجی‌های استاندارد و مقادیر پیش‌فرض پارامترها اعمال شده است که ممکن است رفتار ماژول‌های موجود را تحت تأثیر قرار دهد. تیم‌ توسعهٔ ماژول‌ باید این تغییرات را بررسی کرده و در صورت نیاز ماژول‌های خود را به‌روزرسانی نمایند.

1. 🔁 بازتعریف «خروجی استاندارد»

شرح تغییر:
از نسخهٔ 5.2 به بعد، یک خروجی فقط در صورتی به‌عنوان «استاندارد» شناخته می‌شود که دقیقاً دو ستون با نام‌های Result و Message داشته باشد.

تأثیرات:

  • سیستم دیگر نام‌گذاری ستون‌ها را بر اساس موقعیت (مثلاً "ستون اول = Result، ستون دوم = Message") قبول نمی‌کند.
  • اگر ستون دوم فاقد نام باشد (حتی اگر ستون اول Result باشد)، خروجی به‌عنوان استاندارد شناخته نمی‌شود.
  • خروجی‌های چندسطری بسته به محتوا پذیرفته می‌شوند، ولی معیار اصلی نام ستون‌هاست، نه تعداد ردیف‌ها.

اقدام لازم: تمام ماژول‌ها و سرویس‌هایی که خروجی استاندارد تولید می‌کنند باید خروجی خود را به‌صورت دقیق با دو ستون Result و Message ارائه دهند.

2. ⚠️ بررسی تمام خروجی‌های استاندارد (نه تنها اولی)

شرح تغییر:
در نسخه‌های قبلی، در صورت وجود چند خروجی استاندارد در یک سرویس یا گزارش، فقط اولین خروجی برای تصمیم‌گیری (مثلاً تشخیص موفق یا خطا بودن) مورد استفاده قرار می‌گرفت.
در نسخهٔ 5.2، تمامی خروجی‌های استاندارد بررسی می‌شوند و وجود حتی یک خروجی با Result = Error باعث شکست کلی عملیات می‌شود.

مثال قبل از تغییر:

  • خروجی ۱: Result=OK, Message=""
  • خروجی ۲: Result=Error, Message="..."
    → سیستم: ✅ موفق (فقط خروجی اول در نظر گرفته می‌شد)

مثال پس از تغییر:

  • خروجی ۱: Result=OK
  • خروجی ۲: Result=Error
    → سیستم: ❌ خطا (همه خروجی‌ها بررسی شدند)

اقدام لازم: ماژول‌هایی که چند خروجی استاندارد تولید می‌کنند باید اطمینان حاصل کنند که هیچ‌کدام از خروجی‌ها در شرایط عادی مقدار خطا برنمی‌گردانند، یا این رفتار را به‌صورت عمدی پیاده‌سازی کرده باشند.

3. 🧾 لغو اعمال خودکار مقادیر پیش‌فرض در گزارشات

شرح تغییر:
در نسخه‌های قبلی، در صورتی که کاربر یک فیلد پارامتر را خالی می‌گذاشت، سیستم به‌صورت خودکار مقدار پیش‌فرض آن پارامتر را جایگزین می‌کرد.
در نسخهٔ 5.2، مقادیر پیش‌فرض فقط جنبهٔ راهنمایی یا placeholder دارند و در صورت خالی ماندن فیلد، مقدار null ارسال می‌شود.

تأثیرات:

  • ماژول‌هایی که انتظار دارند مقادیر پیش‌فرض به‌صورت خودکار اعمال شوند، ممکن است با خروجی متفاوت گزارش یا منطق نادرست مواجه شوند.
  • رفتار سیستم اکنون صریح‌تر است: اگر کاربر ورودی ندهد، سیستم مقداری جایگزین نمی‌کند.

اقدام لازم:

  • ماژول‌ها باید مقادیر null را به‌درستی مدیریت کنند.
  • یا در لایهٔ UI/فرانت‌اند، اطمینان حاصل شود که مقادیر پیش‌فرض واقعاً ارسال می‌شوند (مثلاً با فیلد required یا اجباری کردن تکمیل آن).
  • No labels