داده ناموجود و محاسبه نامعتبر
صفر، متن خالی و NaN یک معنا ندارند؛ پیش از تفسیر شرط، اعتبار داده و مخرج را بررسی کنید.
پیشنیاز: آشنایی با مقایسه، محاسبات و منطق پایه.
صفر همیشه داده معتبر نیست
رفتار نبود داده به بلاک وابسته است. در قرارداد بررسیشده حقیقی حقوقی، بعضی مسیرها صفر برمیگردانند؛ در عرضه و تقاضا نبود snapshot معتبر میتواند NaN بدهد. بنابراین «خروجی صفر است» بهتنهایی ثابت نمیکند رویداد مورد نظر واقعاً صفر بوده است.
زمان داده، نماد، پوشش سرویس و مقادیر کمکی مانند تعداد را کنار خروجی بررسی کنید. برای نمونه شرط حجم فروش = صفر ممکن است بدون کنترل اعتبار داده، وضعیت فاقد داده را هم بپذیرد.
مخرج را پیش از تقسیم کنترل کنید
افزودن شرط مخرج > صفر در AND لزوماً اجرای بلاک تقسیم بالادست را متوقف نمیکند. برای مخرج عددی معتبر، با انتخاب شرطی مقدار مثبت اصلی را نگه دارید و در حالت غیرمثبت مقدار جایگزین غیرصفر بسازید؛ سپس شرط مثبتبودن مخرج اصلی را هم در خروجی نهایی الزام کنید.
عدد جایگزین صرفاً برای جلوگیری از تقسیم بر صفر است؛ نتیجه حاصل از آن نباید به عنوان سرانه یا نسبت واقعی نمایش داده شود. اگر خود داده ناموجود است، رفتار و روش تشخیص آن را از قرارداد همان بلاک بررسی کنید.
عیبیابی را از ورودی آغاز کنید
با یک نماد و یک شرط شروع کنید. مقدار ورودیها را در خروجی ببینید؛ سپس نماد و زمان و تایمفریم را کنترل کنید، بعد عملگر و ضریب را بررسی و در آخر شرطهای دیگر را اضافه کنید. تغییر همزمان چند تنظیم، علت را پنهان میکند.
عملگر IsNaN در مقایسه گزینه جداگانهای دارد. رفتار تساوی و NaN را از زبان برنامهنویسی دیگری حدس نزنید. نمونه نامعتبر باید جدا از نمونه معتبر آزموده شود.
نبود داده در صورتهای مالی
در بلاکهای صورت مالی، نبود نماد، رکورد یا قلم میتواند مقدار تهی یا مقدار پیشفرض مسیر اجرا را ایجاد کند. صفر را بدون بازخوانی گزارش، مقدار واقعی یا نبود گزارش فرض نکنید.
برای تشخیص، نام قلم، نوع اطلاعیه، دوره، واحد، تاریخ مرجع و تنظیمات تلفیقی/حسابرسی را کنار خروجی ثبت کنید و فقط یک تنظیم را در هر کنترل تغییر دهید.
تمرین و کنترل نتیجه
سرانه حجمی را با حجم ۱۰۰۰ و تعداد ۱۰ حساب کنید. سپس تعداد را صفر بگذارید. برای حالت دوم بنویسید چرا نمایش مقدار حاصل از مخرج جایگزین به عنوان سرانه واقعی غلط است.
نتیجه مورد انتظار: حالت معتبر سرانه ۱۰۰ دارد. با تعداد صفر، سرانه معتبر نداریم؛ حتی اگر تقسیم با مخرج جایگزین عدد تولید کند، شرط اعتبار باید آن را رد کند.