Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Formula language
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{refimprove|date=August 2018}} The '''Formula language''' is a [[scripting language]] used by [[Lotus Notes]]. It is often referred to as '''@Formula''' language (pronounced ''at-formula'') because many language elements start with the @-character. Here is an example of a selection formula: <pre> SELECT @NoteId = "NT0050D26" </pre> == Development == It was created by [[Ray Ozzie]] during the early development of Lotus Notes. He borrowed the compiler and decompiler from the [[Lotus 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 a [[Functional programming]] language with unique text list-handling features inspired by Ray Ozzie's prior use of [[Icon (programming language)|Icon]] and [[Lisp (programming language)|Lisp]]. The Formula language engine was rewritten by Damien Katz for Notes and Domino 6.<ref>{{Cite web |title= Formula Engine Rewrite |author= Damien Katz |url= http://www.damienkatz.net/2005/01/formula-engine-rewrite.html |work= Personal blog |date= January 4, 2005 |accessdate= September 30, 2016 }}</ref> New features were added to the language, such as looping and dynamic execution, and performance was improved.<ref>{{Cite web |title=Enhancements to the formula language in Domino 6 |date= November 4, 2002 |url= http://www.ibm.com/developerworks/lotus/library/ls-formula_enhancements |url-status= dead |archiveurl= https://web.archive.org/web/20121022162650/https://www.ibm.com/developerworks/lotus/library/ls-formula_enhancements/ |archivedate= October 22, 2012 |publisher= IBM |accessdate= September 30, 2016 }}</ref> == Structure == 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 (using [[ODBC]]). 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 to change many 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. ==References== {{Reflist}} [[Category:Scripting languages]] [[Category:Functional languages]] [[Category:Lotus Software software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Refimprove
(
edit
)
Template:Reflist
(
edit
)