© 2016 Assisi Software Corp

  • LinkedIn - Black Circle
  • YouTube - Black Circle
Dec 31, 2016

Configuration of Validation

1 comment

How "configurable" are the validation rules? For example, how would I add validation rules to a user-specific field that I have added to the core data tables? Or is it possible to add specific range validation (for example, the DBH must be between 7 and 110 cm)?

Dec 31, 2016

Brian,

Validation occurs in many places, so this answer is a bit lengthy,

Operation Validation When performing operations like compiling, growing and simulating, Assisi has two levels of validation: Warnings and Errors. Warnings occur when a calculation is suspect, but does not prevent the operation from proceeding. For example a taper calc that puts a merch height at something other than what was measured. Many warnings change the result of the suspect calc to null or 0. In the above example, merch height is lowered if the taper says its less than measured. Warnings appear as gold text in the Progress Viewer during an operation, but the operation continues and the results are saved. Errors on the other hand occur when a calculation cannot continue. For example a required measurement or coefficient is missing. Errors stop the operation for the stand being processed and a red text line appears in the Progress Viewer. No changes are made to the database for that stand, but the process continues for other stands when compiling or growing. A error during simulation will most likely cause the simulation to stop.

Handheld Validation Validation during handheld import is done in two places: the Cruise Entry sheet and the Data Import tool. The Cruise Entry sheet is an Excel sheet used by cruisers to enter their cruise data on. There is a validation process that cruisers are typically required to run. The validation is written in VBA code for the sheet and can be changed for each client and cruise if needed. It’s a good approach because it puts a level of data awareness and integrity on the cruiser’s own data collection. The sheet is often just emailed to the office after the cruiser is done validating. At the office, the data is exported from the Cruise Entry sheet to the CSV and schema files required by Assisi’s Data Import. The export is all in VBA code and is easily changed for different clients/cruises. Works good. The files are then loaded into Assisi’s Data Import tool. Here it undergoes another layer of validation checks. The errors are noted in a validation column and must be fixed before that row will import. After importing, another column notes that the row is now in the database.

Database Validation The third place of validation is what is hardcoded into the database tables themselves. Assisi takes, what I think is a middle ground here. Assisi is fully relational so you can’t have field data records that are not contained in plots or misspell species names for example. These are enforced using relationships between tables. Then there are requirements on the data fields themselves. Assisi requires that the more obvious fields have things like positive values or are one of a few possible look up values. But you can of course add further restrictions. The huge variety of sampling approaches in the world of forestry means that Assisi has to have a fairly open design so data can get in. But, it is when data is processed that most of the data checks are made.

So where can you make changes to validation? On the Cruise Entry Sheet and in the database. The internal checks at the moment are not that much configurable. They are configurable in the sense that they reflect what taper, growth and sampling approaches you are doing. Which is what you want, but I think in the future we should also make more of them user configurable too.

Rich

New Posts
  • Wanted to give a quick update on Assisi Cruiser, our upcoming data collector. Our prototype in PowerApps is working OK, but PowerApps has too many restrictions like meant to be online and can only share apps with members of the same computer domain. So now I am also prototyping in Xamarin: the cross platform (iOS, Android & Windows) tool of choice for most serious developers. It's going well and I should have something for others to test soon. Send me a note if you are interested in beta testing! Rich
  • Is is possible to change the BAF in the middle of a cruise?
  • This afternoon we are starting our seasonal inventory cruising program. Radial growth measurement. I would like a 5 year growth measurement. You have a field in Assisi for this, but I don’t see one on the spreadsheet. Just add it before the first segment call?