Hata : Value was either too large or too small for a Decimal (NaN)



 

 


Örnekteki süreçte, form üzerinde girilen iki tarih arasında kaç gün fark olduğu hesaplanıyor. Bu hesaplama sırasında, tarayıcı kaynaklı olduğunu düşündüğümüz bir sebepten, bu işlem integer yerine NaN (Not a number) sonucunu veriyor. Bu değerin veritabanına yazılması sırasında da "Value was either too large or too small for a Decimal (NaN)" hatası alınıyor 

 


Çözüm : İlgili iş adımını bulup, form xml'indeki gün bilgisini manuel düzeltmek. 

 



İşlem adımları:



  • Sürecin XML’ine erişilebiliyorsa arayüzden, erişilemiyorsa müşteri veritabanından alıyoruz. Bu çözümde süreci müşteri veritabanından aldık.( State = 0 olması sürecin aktif olduğu, 9 olması arşivde olduğu anlamına gelmekte. Bu şekilde de aktif süreci tespit edebilir veya Number alanından da versiyon bilgisi ile teyit edilebilir.)






  • Test bir Emakin platformunda süreç tekrar oluşturulur.
  • Hata alınan süreçteki izin tarih aralıklarını aynı şekilde girerek gün hesaplanır. 





  • Ardından sorun yaşannılan formdayken, form XML'ini açılıp, burada ki form Id alınır. Veritabanında FormData tablosunda Id ile aratılır.

 


 



Graph içeriği:






Text Editör ile Gün bilgisini NaN yerine hesaplanan değer olarak düzenlenir :



 



  • NaN bilgisini hesaplanan gün(8.000) ile text editör de düzenledikten sonra metni kopyalayıp veritabanında ilgili alan update edilir.