Entities, in Evoke, are the data structures (data objects) used by the User Interface that you define in your App. Each entity is sub-divided into Properties and Entities and Properties may be linked to data/fields in your backend database or used only in the App UI. In the Entities section of Evoke you can set up and manage the following for the selected App:
  • Properties

  • Calculated Properties

  • Entity Selections

  • Data Validation

  • Classifications

Each Entity is made up of Properties. Properties are set up with a Data Type of:
  • AlphaNumeric

  • Boolean

  • Currency

  • Date

  • DateTime

  • Decimal

  • ImagePath

  • Integer

  • Time

  • Classification

  • Entity

As you can see Entities can have properties that are entities, so that related entities with local or remote keys can be defined. In addition each Property can be defined to be singular or holding a list of properties. Properties may also be set to hold an initial value.

Calculated Properties
Properties can also be set to be "Calculated" and when this checkbox is checked you are given the option of defining the calculation for the property. A very common use for this would be a database that has a first name field and a surname field, these would be properties in Evoke (linked to the database fields in data mappings) and then a further "User Interface Only" Property would be defined that is "calculated" as Firstname + Space + Surname
However, there are many other uses for Calculated Properties and Properties can can be calculated using one or more of the following types:
  • Arithmetic Expression - this calculates a numeric value based on 2 or more Properties, so you can "sum", "divide", "multiply" or calculate the "difference" of all the values in the Properties provided.

  • Casing Conversion - this alters the case of a specified property value e.g. a name could be set to a) all lower case, b) First Letter Of All Words Is Uppercased or c) All Upper Case.

  • Collection Expression - this allows for a collection (multiple) properties to be a) averaged b) concatinated c) counted to return the number of values d) return the Highest of all the values e) return the lowest of all the values or f) summed

  • Concatinate - this allows mutiple values to be concatinated (joined), in any order you specifiy, with or without a) separators (as for the Full Name givin in the example above) b) changing the the case (as above) and c) being trimmed (removing initial, trailing or intermediate spaces).

  • Value Conversion - this will convert a value to specific type e.g a date can be converted to a) the day of the specified date b) the day of the week c) the full date d) the full year e) the ISo date f) the long date g) the month h) the month name i) a short date or j) just the year

  • Javascript - this allows a Javascript expression to be entered into Evoke that calculates the value of the Property

  • Custom - this will add software "hooks" to allow you to simply and easily add some specific cutom code into your Visual Studio project to calculate the value of the Property

Entity Selections
When the Entities are used to structure Data Sources, these Data Sources will often need to be populated with data from the back end databases. In order to do this the App, created by Evoke, will, depending on the database selected, invoke "Selections" or call Stored Procedures.
Against each Entity you can identify the different Selections that you may want to use within your App and define any parameters that you might want to pass to these.

Data Validation
You are able to specify any data validation that you wish to be performed on the Entity property. For example, if an entry field is mandatory then you simply check the "is required" checkbox for the property. You can also select "remote validation" that will add software "hooks" to allow you to simply and easily add some specific validation into your Visual Studio project if you wish.

It is probable that you will want some of your Properties to be populated by the App User selecting from a drop-down list of options. In Evoke these are "Classifications". Classifications are defined in the Evoke Classifications menu option and each Classification group is populated either from a) a Classification table in your backend database b) via a selection from multiple tables in your backend database or c) a fixed list that you define in your database.