- Formula language
The Formula language is a
scripting language used byLotus Notes .
It is often referred to as @Formula language (pronounced "at-formula") because many language elements start with the @-character.It was created by
Ray Ozzie during the early development of Lotus Notes. He borrowed the compiler and decompiler from theLotus 1-2-3 spreadsheet, but unlike the spreadsheet language Formula Language was designed primarily for string and list processing, not numerical processing. It was originally aFunctional programming language with unique text list-handling features inspired by Ray Ozzie's prior use of Icon and Lisp.The Formula language engine was [http://www.damienkatz.net/2005/01/formula-engine-rewrite.html rewritten from scratch by Damien Katz] for Notes and Domino 6. Many [http://www-10.lotus.com/ldd/today.nsf/f01245ebfc115aaf8525661a006b86b9/26a0c3184be98e6585256a7c0000b01d?OpenDocument new features] were added to the language, such as looping and dynamic execution, and performance was improved dramatically.
The Formula language has two parts:
* "@Functions" for calculations and simple logic
* "@Commands" for performing actions in the user interface"@Functions" can be used in several places throughout Lotus Notes. The most important uses are:
* to select documents to show to the user in a view (a kind of index) or to select documents for further processing. In this case, the formula will evaluate to a 'true' (selected) or 'false' value (not selected) for each document.
* to provide default values for fields, to transform the data entered by the user (like stripping off redundant spaces) and to validate this data.
* to get a list of values from a Notes database or even from a relational database (usingODBC ). This may be used to provide a user with a list of values to choose from.
* to process a set of documents. The formula is placed in an agent, a program or macro that can be started by a user or by the Notes server according to a schedule. When the agent is triggered, the formula executes for each selected document (this a very limited form of a loop). This is an efficient way of changing lots of documents, if the logic is not too complicated. In case of complicated changes,LotusScript is used."@Commands" are like menu commands: they perform actions in the Lotus Notes client. Examples of actions are:
* opening a Notes database
* creating an e-mail
* putting the cursor in a specific data-entry field
* closing a window
* starting an agent@Commands are primarily used in formulas that are triggered by user action, such as in button formulas. It is possible to combine them with @Functions, for example by making execution of an @command conditional on a field value.
Wikimedia Foundation. 2010.