Workflows are a fundamental part of examination. They organize any number of separate tests and checks in a hierarchy of steps. This document is a more detailed discussion of the backing data model and options to create workflows, or adjust them as needed. They are fully customizable by the jurisdiction.
Imported data contains properties that define the type of plan or submission. Depending on the type, the associated workflow is loaded and is visible in the Workflow Control window. An overview and operational details of the workflow use in the application UI is available here.
The data model for the workflows used in PlanTest is our first concern. The XML schema, which is addressed at the end of the document, is best represented in the XSD file. There are a few differences between the data model terminology and the XML implementation.
A workflow is collection of steps for a particular plan (data set) type. It is always associated with a particular purpose and data set type (plan type).
A step is a documented unit of analysis. In our framework, each step is independent. Workflows reference steps. Steps can have UI components, or rely only on core reporting. Steps with UI components are not suitable for reuse in batch processing of an analysis. Each step may have both an automated pass/fail result, related to a specific automated test, and a user decision pass/fail if the step is run interactively.
A view is a collection of visualization parameters for specific data types in the subject data set. Currently, they are ArcGIS layer files that are read and modified dynamically.
Workflows are defined in special XML files. The best way to create a new workflow is to modify an existing workflow, especially if there is a core of steps that must be followed for all plans.
The following is a technical description of the analysis and workflow objects used in PlanTest. If you are involved in the business processes analysis and implementation of PlanTest in your organization, these notes will be essential reading.
A core concept of PlanTest is the ability to easily create custom workflows. These are built through simple edits of the standard workflow template XML. This approach can easily set steps, documentation, messages, map visualization and automated tests for specific types of data. The control over the workflows empowers continued refinement and adaptation of business processes.
PlanTest workflows specialize in spatial visualization and numerical analysis. This section clarifies the objects and relationships central to the sequencing of steps in the analysis. The Object Model Diagram below shows the objects and relationships of PlanTest's analysis models.
The following is an excerpt of a workflow file showing only a few steps. In practice, there are usually more than one hundred steps, depending on the jurisdiction.
<Exam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Identifier>Registered</Identifier>
<Description>Registered Plan Workflow</Description>
<Owner>Jason Argonaut</Owner>
<Version>4.0</Version>
<LastModified>20/03/2019</LastModified>
<DataSetType>SIdata</DataSetType>
<RootStep>
<Name>Registered</Name>
<Tip>All tests for Registered Plans</Tip>
<Description>Registered Plan Workflow</Description>
<Test>NoCheck</Test>
<Auto>false</Auto>
<Decide>false</Decide>
<Children>
<Step>
<Name>1 Diagnostic Reports</Name>
<Tip>Reports relevant diagnostic results</Tip>
<Test>NoCheck</Test>
<Auto>false</Auto>
<Decide>false</Decide>
<Children>
<Step>
<Name>1.1 Load Report</Name>
<Tip>Reports any load issues</Tip>
<Description>Reports any errors or important information generated during the Extract Translate Load (ETL) modules processing the CEXML fabric.</Description>
<Test>ETL_Messages</Test>
<Auto>true</Auto>
<Decide>false</Decide>
<Views>
<View>Parcels_Standard.lyr</View>
<View>Lines_Standard.lyr</View>
<View>Points_Standard.lyr</View>
<View>Control_Standard.lyr</View>
</Views>
<Children />
</Step>
<Step>
<Name>1.2 Burdened Land</Name>
<Tip>Establish relationship between lots and easements.</Tip>
<Description>Sets parcel property to indicate parcel burdened by easement.</Description>
<Test>Fabric_BurdenedLand</Test>
<Auto>true</Auto>
<Decide>false</Decide>
<Views>
<View>Parcels_EasementName.lyr</View>
<View>Lines_Standard.lyr</View>
<View>Points_Standard.lyr</View>
<View>Control_Standard.lyr</View>
</Views>
<Children />
</Step>
</Children>
</Step>
</Children>
</RootStep>
</Exam>