« NOTE: THIS PAGE IS UNDER DEVELOPMENT. »
- arrays & sets
- the ability to design & create custom object types with any methods (functions) you like
- variable types (like very large integers, symbols)
- and statements (like conditionals (if...else), custom function construction (function) or iteration (do...while), etc).
- A trigger script, with event & phase options to perform custom calculations at certain crucial times, like before or after saving an entry or when a library or a field is opened
- An action script, applying to the current entry or library to perform actions including actions on fields across all libraries in a user's database inundated by the touch or click of a button.
- Shared scripts for use by trigger & action scripts to hold standard & often repeated code. The scripts are available to any other script, so you can change it in one place and have the effect in ask other scripts.
- A custom data source script to guide source data from sources around the web or within the user's sphere of influence to the appropriate destination fields within the user's database.
Sample simple expression scripts
- the value a hundred and twenty-three
- the characters M e m e n t o as a string
- 2 * currentWeight
- If currentWeight is 23 lbs, then 46 lbs
- (hours * 60) + 10
- If hours is 5 and minutes is 10, then 310
Sample complex expression script
Before release 4.10.0 on the mobile edition & 1.10.0 on the desktop edition, we had to validate entered data with a script like this one:
// Validate entered value: var StdLimit = 100 // Our std for all products value = field("Value") // Fetch value of field if (value <= StdLimit) // If within limit, value // Result is the value else // Otherwise, StdLimit // Result is the std limit
- a value that has a string (text) value or a numeric (number) value.
- String literal
- "This is a string of textual characters"
- String constant
- Sol or PlanetMars
- Number literal
- 123 or 314e-2 or -28.5
- Numeric constant
- Age or ListPrice
- Symbol constant
- a name representing a constant value, like pi or surname
- a name representing a value that may change over time, like sum, currentValue, or orderDate
- one or more characters that represent an expression, like + for plus or - for minus or * for multiplied by or / for divided by.
- Some operators are made up of other operators used in combination, like <= for less than or equal to or && for and also.
- in x++, ++ is a unary operator.
- in b - 5, - is a binary operator.
A library can have any number of trigger scripts, of action scripts, & of custom data source scripts. If there are things you do repetitively in scripts, you can put them in a shared script, and they will be available to any other script that runs.
For instance, trigger scripts are the most often used type of script, and in trigger scripts, it is very common and common practice to define a variable e to contain the current Entry object — var e = entry(). Then, you can say e.field() instead of entry().field. This not only saves keystrokes & makes the code more readable, but also runs a bit faster, because the entry() function is run only once in the script. This might be the first thing you'd think of to share. Of course, entry() is not called at all in library action scripts, for instance, so e will not be used in such scripts, but it doesn't hurt much at all, so it's OK that the code is shared also to these scripts.
Custom data source script