Working with typed defaults in Viper

Release 1.0 - ...

As of RC2, Viper methods such as this.field(), itemdata.field() and datatable.getvalue() return typed internal defaults instead of reverting to an empty string if otherwise unresolved (when no explicit default parameter is passed):

Smartsite SXML CopyCode image Copy Code
{itemdata.field(ShowFrom)} ==> 0001-01-01T00:00:00 
{itemdata.field(ShowFrom, default=null)} ==> {itemdata.field(ShowFrom, default=null)}
{itemdata.field(ShowFrom, default='')} ==> 
{sxml.gettypename(itemdata.field(ShowFrom))} ==> datetime
{sxml.gettypename(itemdata.field(ShowFrom, default=''))} ==> string
{sxml.gettypename(itemdata.field(ShowFrom, default=true))} ==> boolean
{sxml.gettypename(itemdata.field(ShowFrom, default=null), default='null')} == null
{datetime.format(itemdata.field(showfrom, default=null), 'd MMMM yyyy', default='Not set')} ==> Not set

Since this behavior is a breaking change since RC1, a compatibility setting has been introduced. Setting compatibility to RC1 will make defaulting behave like in RC1.