Jun 4, 2014

Σύντομος και ασφαλής υπολογισμός ενός inline if της Groovy στο ADF

Στο ADF μπορούμε σε πολλαπλά σημεία να χρησιμοποιήσουμε εκφράσεις της Groovy για διάφορες λειτουργίες. Ειδικά ως προς τους υπολογισμούς συχνά πρέπει να ελέγχουμε αν υπάρχει σωστή αρχικοποίηση τιμών ώστε να αποφύγουμε τιμές όπως null. Ευτυχώς στην Groovy υπάρχει μια βελτίωση του inline if ώστε να καλύπτεται με συντομία και ασφάλεια η απουσία τιμής. Για παράδειγμα στο σχήμα fod, ο υπολογισμός ενός πεδίου LineTotal που προκύπτει από δυο άλλα (UnitPrice και Quanity) μπορεί να οριστεί ως:

(Quantity ?: 0) * (UnitPrice ?: 0)

2 comments:

Anonymous said...

Τι μου εκανες τωρα !
Πες και το regexp που σβηνει μεταξυ του ?: :)
Tses

Apostolos Kitsopoulos said...

Σεραφείμ πολύ καλό.
Πάντως ισχύει μια χαρά και το εξής:

nvl(Quantity,0) * nvl(UnitPrice, 0)