if( or( rule!APN_isBlank( ri!document ), tointeger( ri!document ) <= 0 ), { fullName: "", name: "", ext: "", size: "" }, with( local!value: a!fileUploadField( value: ri!document ), if( rule!APN_isBlank( property( local!value, "uploadedDocumentName", null() ) ), /* get properties as rendered in 17.1+ process forms */ if( rule!APN_isBlank( property( property( local!value, "contents", null() ), "name", null() ) ), { fullName: "", name: "", ext: "", size: "" }, { fullName: local!value.contents.name & "." & local!value.contents.extension, name: local!value.contents.name, ext: local!value.contents.extension, size: local!value.contents.size } ), /* for old style form rendering (pre-17.1, or in 17.1 interface designer) */ with( local!fullName: local!value.uploadedDocumentName, local!parts: split( local!fullName, "." ), local!extension: if( length( local!parts ) > 1, index( local!parts, length( local!parts ), "" ), "" ), local!name: if( length( local!parts ) > 1, joinarray( rdrop( local!parts, 1 ), "." ), index( local!parts, 1, "" ) ), { fullName: local!fullName, name: local!name, ext: local!extension, size: local!value.uploadedDocumentSize } ) ) ) )