skip to main content
Data Object Exchanges
Accounting
Data Object Exchanges
As an alternative to the RiverWare Exchange utility, (see “Exchange Description” for details), some RiverWare users employ a data object-based approach to track water exchanged between accounts. In this approach, the user tracks the exchange with rules that reference specifically named slots on data objects. This section describes a utility, called the Data Object Exchange Builder, that helps to create this type of exchange by adding slots to the data object and creating supplies on the workspace. The rules must be defined by the user; no further discussion is provided as to what the rules do or how they are written.
Topics
Data Object Exchange Overview
The data object exchange builder has the following capabilities:
• A row is created in a table on a data object. The row is labeled with the name of the exchange and the various columns in the table represent exchange characteristics.
• Series slots may be created on the data object to keep track of the amount of water exchanged. The slots are named <exchange name>Borrow and <exchange name>Payback.
• Borrow and payback supplies are created between desired accounts to create paths over which the exchange water moves. Optionally, the borrow supplies can be given a Destination Type of “Borrow” and the payback supplies can be given the Destination Type of “Payback”. Both borrow and payback supplies can be given a Release Type that is the name of the exchange.
• The Water Type of the source accounts for payback supplies may be given a type describing the exchange purpose.
Again, these are simply pieces of a Data Object Exchange, that when accessed with the RiverWare Policy Language (RPL), can be used to move water between accounts and track the water that was moved.
Data Object Exchange User Interface
The Data Object Exchange Builder dialog is accessed from the Accounting, then Data Object Exchange Builder menu of the main RiverWare workspace. This dialog is a modal dialog (no other dialogs can be accessed or edited while this dialog is open) and is used to create components for the data object exchange. Figure 4.1 shows the dialog.
Figure 4.1   
The dialog has four main areas as described in the following sections. When creating a data object exchange, the user typically follows the order as specified on the figure and noted in the text.
Figure 4.2   
Exchange Name
An Exchange Name (1) must be entered for the data object exchange. The name will be used as the row label for the exchange row in the Data Object Table. The name may also be used as a Release Type for the supplies and as part of the name for the Borrow and Exchange series slots created on the data object.
Borrow Supply Specification
In the accounting system, the creation of supplies is always from the destination account (downstream) to the source account (upstream). It is the same in this dialog; first the destination account is selected, then the source account is selected. A Borrow Supply Specification is created by selecting the Destination Acct button (2) in the New Borrow Supplies frame of the dialog. This opens an account selector dialog where the destination account for the new supply can be chosen. The Source Account combo box (3) is then populated with potential source accounts for the supply based on the destination account that was selected. After selecting a source account, selecting the Add button (4) will create an entry for the borrow specification in the borrow list box. If the supply is not valid, a message will be posted to a warning dialog and the supply will not be added to the list. Additional borrow specifications can be created and added to the list by repeating the above steps. At least one borrow supply must be specified to create a data object exchange. A specification can be removed from the list by selecting the row and selecting the Remove button.
The check boxes in the New Borrow Supplies frame optionally allow the user to select a Destination Type (5) and a Release Type (6) to be assigned to borrow supplies when they are created. The Destination Type combo box (7) is populated with all destination types defined in the model plus a type called “Borrow” if it does not already exist. The Release Type combo box (8) is populated with all release types defined in the model plus a type with the name of the exchange.
Payback Supply Specification
Payback Supply Specifications are created with controls that behave the same as those described above for borrow specifications. (9-11) At least one payback supply must be specified to create a data object exchange.
The New Payback Supplies frame of the dialog also has check boxes for optionally setting the destination type (12) and release type (13) of the new payback supplies. The Destination Type combo box (14) is populated with all the destination types defined in the model plus a type called “Payback” if it does not already exist. The Release Type combo box (15) is populated with all release types defined in the model plus a type with the name of the exchange. The New Payback Supplies frame also has a check box (16) to optionally set the water type of upstream accounts of the new payback supplies. The Water Type box (17) is populated with all the water types defined in the model, plus this box allows typing in a new water type, if desired.
Data Object Specification
A Data Object Table must be specified for the exchange. Selecting the Data Object Table button (18) will bring up a slot selector that is restricted to selecting tables on data objects. Once the data object table is chosen, its selection will persist between invocations of the dialog and is saved into the model file so that the selection will persist when saved with the model. When the Create button is selected, a row is inserted or appended after the last named row on the table and is labeled with the exchange name.
The check box (19) in the Add Exchange to Data Object frame allows the optional creation of a borrow and a payback series slot on the data object for the exchange. The slots will be named with the exchange name and the suffix “Borrow” and “Payback”.
Exchange Creation
Clicking the Create button (20) will create the specified components of the data object exchange. A warning dialog is generated if required information is missing or if some component cannot be successfully created. A final summary message box is generated listing the components that were successfully created for the exchange. Closing the message box will then dismiss the Data Object Exchange Builder dialog.
Data Object Exchange Example
Figure 4.3 shows an example where a data object exchange (named Article8S) could be created to track water transfers. Water is borrowed from the TahoeFRW account on Tahoe reservoir to be released for fish and wildlife purposes. The water is paid back on Stampede reservoir by a transfer of water from a fish and wildlife account to a TahoeFRW account. This exchange requires that two new supplies be created, as shown by the colored arrows.
Figure 4.3   
Figure 4.4 shows the selections in the Data Object Exchange Builder dialog that are made to create a data object exchange for this example.
Figure 4.4   
Clicking the Create button generates the summary message of what was created for the exchange, as shown in Figure 4.5.
Figure 4.5   
Figure 4.6 shows the row that was created on the Trades and Exchanges table slot for the new data object exchange. The user would need to fill in the column data to define the characteristics of the exchange.
Figure 4.6   
On the TradesAndExchanges data object, two new series slots for borrow and payback have been added for the exchange, as shown in Figure 4.7.
Figure 4.7   
Figure 4.8 shows the borrow supply that was created for the exchange.
Note:  According to the specifications in the Data Object Exchange Builder dialog, the release type of the new borrow supply was set to Article8S, and the destination type was set to Borrow.
Figure 4.8   
Figure 4.9 shows the payback supply that was created.
Note:  According to the specifications in the Data Object Exchange Builder dialog, the release type was set to Article8S and the destination type was set to Payback.
Figure 4.9   
Figure 4.10 shows the water type for the upstream account of the payback supply has been set to FishW as specified in the Data Object Exchange Builder dialog.
Figure 4.10   
This example has shown how the various pieces related to a data object exchange can be specified and created from the Data Object Exchange Builder.
 
Revised: 06/03/2019