Data types¶
DATE / TIME TYPES¶
TimeZone¶
All dates and times are stored at the server in UTC (GMT) values without time zone information. The server has no knowledge of time zones and does not involve time zones in any calculations or filtering. The browser time zone and language settings control the display format of the time and date and which time zone is used to convert them. Input and display is considered to be in the time zone as set in the browser or overridden in User settings.
Filtering dates¶
Date filtering is relative to the user's time zone doing the filtering.
When viewing data in AyaNova that is filtered, the browser's current time and time zone setting is taken into account when the filtering query is built in order to ensure that the user sees data relative to their time zone.
This means that two people with browsers in different time zones using a filter of TODAY for a date field may see different list of results from each other because each user has a different "today" relative to their own time zone.
NUMBER TYPES¶
Currency¶
Currency values are stored with 28 digit precision and 8 digit scale. This means up to 20 digits to the left of the decimal point and 8 digits to the right of the decimal point. This level of precision and scale is more than adequate for most circulating currencies but is necessary to accomodate potential future support for crypto currencies such as Bitcoin.
This applies to any item which is a currency amount or a rate used to calculate a currency amount (except taxes see below)
AyaNova is a single-currency program, it assumes all currency values entered are for the same currency and values entered are stored at the server as Decimal numbers.
Currency as entered is interpreted and displayed with a combination of settings specified in the user's Currency setting and the locale / language setting of the browser (or the override if overriden).
Decimal numbers¶
Decimal numbers used typically for quantities of items are stored internally with 19 digit precision and 5 digit scale meaning 19 total digits can be stored 14 to the left of the decimal and 5 to the right.
They are displayed and accepted from entry according to the capabilities and rules of the locale / language setting of the browser (or the override if overriden).
Tax¶
Taxes are stored and displayed in "face" value and not as fractions.
For example, a 7% sales tax is entered displayed and stored as 7.0 and not .07.
Taxes are stored with 10 digits precision and 5 digits scale so maximum 5 digits to the left and 5 digits to the right of the decimal point.
Geographic coordinates¶
Latitude and longitude are entered and stored in decimal notation format and internally support 9 digits of precision and 6 digits of scale (9 total digits of which 6 can be after the decimal point).
Object Identities / id values¶
Records created in AyaNova are automatically assigned a sequential id value (per object type) of a large-range 8 byte integer starting at 1 and extending to a maximum id value of 9223372036854775807.
TEXT TYPES¶
General text entry fields¶
AyaNova general text fields are not artificially limited in length and fully support Unicode text (including emojis).
There will always be some practical limitations around the length of text fields for display, entry and storage imposed by the browser it's device operating system, the network and the hardware involved at the database server but AyaNova does not constrain the length of text fields.
While it's possible to store an large amount of text in some fields, it is best to limit the length for practical reasons in areas like Names of objects due to the limited space to display them in some user interface devices.
For example, it's possible to use a 1000 character name for a Customer but that would be impractical in display. Keep names short and store any extra data in the Notes or other proviced fields or set up custom fields.
Tags¶
Tags are special variation of Text type and are stored internally as an unlimited array of maximum 255 characters each. Spaces are not allowed instead a dash symbol - is substituted for spaces and all tags are lower case by default.
Custom fields¶
Custom fields can represent many types but are all stored in the database as a fragment of JSON formatted data in a text field in each business object and rules for JSON data are applicable regardless of type.