beans [server] [database]
beans {RMI} {name} {rmiserver} {rmiport} [myip] [protocol] [certificate]
beans {RMI} {//rmiserver:rmiport/name}
The beans command runs the Beans personal financial manager. The options to the beans specify the database where financial information is saved. The database is configured by the system administrator. See Beans's installation instructions, or the system administrator, for information on the following options:
The name of the server where the database is installed. A literal "RMI" specifies that the database server should be accessed via a remote procedure calls to a server process on a remote machine.
The name of the database, on the server.
The name of the RMI process.
The name of the server where the RMI process is registered.
The port number on RMI server where the RMI process is registered.
An optional argument that specifies the IP address to use on multi-homed client machines for connecting to the RMI process.
An optional argument; the connection to the RMI server is encrypted if protocol is set to the literal string SSL.
An optional argument that specifies the server's certificate when using an encrypted RMI connection to the server. The default location is /usr/local/share/beans/certificate.
For RMI connections, server may also set to "//rmiserver:rmiport/name", however this notation does not permit myip to be set.
NOTE: | If an RMI server is used, it's assumed to be trusted. RMI sessions do not use a security manager. |
NOTE: | Encrypted RMI connections require some additional server configuration. See the beansnetserverd(8) manual page for more information. |
Alternative, the options will be read from $HOME/.beansrc, if this file exists. The contents of $HOME/.beansrc should be:
DATABASE=database SERVER=server RMISERVER=rmiserver RMIPORT=rmiport MYIP=myip PROTOCOL=protocol CERTIFICATE=certificate
These options directly correspond to the command line arguments. Unspecified options may be omitted.
A userid and a password must be entered when starting Beans, in order to log on to the server. Beans is a multiuser applications, and multiple users can log in, open, and work with files at the same times. The same file may also be opened by multiple users, this will generally work, although changes saved by one user may not be immediately seen by another user. Furthermore, at this time, only the login id that created a file may open it.
Each Beans login id may contain multiple "files". A "file" in this context is an abstraction for the collection of database tables that store all the financial information for a set of accounts. Transactions may freely move money between accounts in the same file, but may not move money between accounts in different files.
A file contains a list of accounts and transactions. An account may be what we commonly called an account: a bank checking account, a savings account, or a credit card account. In Beans, an account may also be what we commonly call an income or an expense category: "Salary" or "Groceries", for example. In Beans, all transactions simply transfer money from one account to another. For example, depositing a paycheck transfer the amount of the deposit from the "Salary" account to the "Checking" or the "Savings" account. Purchasing groceries on a credit card transfer the purchase amount from the "Credit Card" account to the "Groceries" account. Paying the credit card bill transfers the amount of the payment from the "Checking" account to the "Credit Card" account.
Every type of a transaction in Beans can be reduced to transfering money (TODO: or shares of stocks) between a list of accounts. Most transactions will only transfer some amount from one account to another account. Some transactions may involve transfers between three or more accounts. For example, one way to keep track of income taxes withheld from one's salary is to record each salary check as follows, for example: $1,000 from "Salary", $62.00 to "Social Security Tax", $14.50 to "Medicare Tax", $196.11 to "Federal Tax Withheld", and $727.39 to "Checking" (this being the actual amount of the paycheck, less taxes withheld).
In Beans, each transaction is simply a list of debits and credits applied against a set of accounts. All debits or credits in each transactions always add up to zero. In the previous example, the $1,000 transfer from the "Salary" account is recorded as a debit. Because the $1,000 amount is transferred from "Salary", it is recorded as a negative amount. The remaining credits to various tax accounts, and the checking account cancel out the negative $1,000 to zero.
In practice, Beans' user interface mostly hide the actual mechanical details of how transactions are saved in the database. The previous example is entered into Beans by beginning a Deposit entry, selecting "Edit" to enter the deposit details, and entering a "Salary" amount of $1,000, then "Social Security Tax", "Medicare Tax", and "Federal Tax Withheld" negative adjustments for their respective amounts. Beans automatically adds up all adjustments and automatically calculates $727.39 as the deposit amount.