Validate
NF tool has the feature to validate how the entity objects – methods, tables, fields, lookups etc. are got created. It will validate all these entity objects whether properly get created, needed settings are done proper or not.
If there is any inconsistency/improper in the setting of the entity/entity table/entity field, or if the steps that need to be followed in creating the entity is not followed, then it will create various validation errors, warnings, and information’s.
It is the responsibility of the developer to execute the validation, by clicking the “Recompute” button regularly to check for validation issues, and get all of them cleared. Especially where any new additions or changes are done in any of the entities, validation should be get executed and verified.
And for each of the validation cases, NF will provide the details of that validation issue, details of how to get it fixed.
There will be situations that, when you clear one NF validation error, it will create some more new validation errors for different case. So, need to check it up properly.
This validation can be run for all of the entity objects that are there in that application or for a particular entity object name.
Also, can be run for all the cases or just errors or for warnings or for information’s.
Though the application will run properly, it is for the developer to fix all the validation errors, warnings and information’s.
Click here to view all these NF Validation cases.
Entity elements :-
Entity elements which are refer the following Entity objects.
1 - entity_name
2 - method_name
4 - table_name
8 - field_name
16 - lookup_name
32 - view_name
Basically NF validations errors that are related to entity elements, it can be a single or combinations of elements.
For Example : Validation #2 element value is 1 | 2 | 4, so #2 that are related to entity_name, method_name and table_name.
Validation Cases:-
Validation Cases
Validation # | Category | Elements | Message | Cure (help to fix) | ||||||||||||||||||||
1 | Error | 4 | Validate tables and fields. Unable to create tables with fields
provided, as demonstrated in the create_sql. | 1. Verify temp table name starts with "#" and name
contains valid characters. 2. Verify table field names contain valid characters. | ||||||||||||||||||||
2 | Error | 1 | 2 | 4 | Read Response tables must have keys. | Add key(s) to response tables. | ||||||||||||||||||||
3 | Error | 4 | Root Table not set for primary/unique key fields. | Add root_table_name to fields in ef.fields. A root table is defined as: where the data originates or input
into the table for the First time. The root table should always have CUD methods attached to it. | ||||||||||||||||||||
4 | Warning | 4 | Database has keys, but it is not defined under table_fields. | Define key(s) for table_fields based on database key(s). | ||||||||||||||||||||
5 | Warning | 4 | Keys that are declared in table_fields, but are not keys in
database. | 1. Modify table_fields
key(s) to match database key(s). 2. Remove all key(s) that are not in database. | ||||||||||||||||||||
6 | Warning | 1 | 2 | 4 | It is nice to have keys for CUD method responses. | Define key(s) for CUD method responses. | ||||||||||||||||||||
7 | Information | 4 | Entity tables appearing in multiple entities. | Check validity of entity table(s) existing in more than 1
entity. | ||||||||||||||||||||
8 | Error | 1 | 2 | 4 | db_column_name does not exist in database, for method_type =
"Table". | Correct the db_column_name in entity table. | ||||||||||||||||||||
9 | Error | 1 | 2 | 4 | target_method_source does not exist in database for method_type
= "Table" and "SP". | 1. Correct the "table name" or "SP name" in
target_method_source. 2. If method_type is "Table" and target_method_source
contains multiple table names: A.
Create separate table-level entries
for each table: 1. Open "Table Read Target
Method" Tab (bottom grid). 2. Enter method_name, method_type, and
target_method_source. B.
Blank out method-level "method_type" and
"target_method_source". | ||||||||||||||||||||
10 | Error | 1 | 2 | 4 | SP parameter (db_column_name) does not exist in database for
method_type = "SP". | Correct the db_column_name used for SP parameter. | ||||||||||||||||||||
11 | Warning | 1 | 2 | 4 | Database has column, but it is not defined in table_fields. | Define the missing column in table_fields. | ||||||||||||||||||||
12 | Error | 1 | 2 | 4 | SP has parameter in database, but it is not defined in
table_fields. | Define the missing SP parameter in table_fields. | ||||||||||||||||||||
13 | Error | 4 | 8 | Lookup should not be applied to a field in a table, when that
table is the root table of the field, and the field is not derived from
another field. Check if the root table is correct for the field or remove the
lookup for the field. | OPTION 1: a. Create a new entity-specific field name in EF Tool under
"Entity Fields" menu. b. Change the generic field name to the new entity-specific
field name in EF Tool under "Table Fields" grid in “Entity Tables”
menu. OPTION 2: If the field name should be generic, set "generic"
flag for the field in EF Tool under "Entity Fields" menu. | ||||||||||||||||||||
14 | Error | 1 | 2 | 4 | At least one field of the CUDE method response table must be
mapped to the read response table by setting response_for_update = 1. | Map at least one field of CUDE Response table to read response
table by setting response_for_update = 1.
| ||||||||||||||||||||
15 | Error | 4 | Field db_data_type is not in sync with database table column
data type from method_type = "Table". | Correct the data type in db_data_type to match the table column
data type. | ||||||||||||||||||||
16 | Error | 4 | Field db_data_type is not in sync with SP parameter data type
for method_type = "SP". Check with admin before changing. | Correct the data type in db_data_type to match the SP parameter
data type. | ||||||||||||||||||||
17 | Information | 1| 2 | 4 | 8 | Inconsistent data_type for same field_name. | The db_data_type must be the same in "Entity Fields (field_db_data_type)"
and "Entity Table_fields (table_field_db_data_type)". Correct the db_data_type in either fields
or table_fields table. | ||||||||||||||||||||
18 | Error | 1 | 2 | 4 | For method_type= "Table", table_index not set with 0. | Table Index values must start with 0. Change Table Index to 0. | ||||||||||||||||||||
19 | Error | 1 | 2 | 4 | db_column_name exists in database, but not in table_fields, for
the operation and method_type="Table". | Define missing column(s) in table_fields. | ||||||||||||||||||||
20 | Error | 16 | For Lookup Definition, specified entity_name does not exist. | Check for misspelled entity name or create missing entity. | ||||||||||||||||||||
21 | Error | 16 | For Lookup Definition, specified method_name does not exist for
corresponding entity. | Check for misspelled method name or create missing method. | ||||||||||||||||||||
22 | Error | 16 | For Lookup Definition, response_table_name is not set. | Set response_table_name for the lookup. | ||||||||||||||||||||
23 | Error | 16 | For Lookup Definition, specified response_table_name does not
exist. | Check for misspelled response_table_name or create missing
response table. | ||||||||||||||||||||
24 | Error | 16 | For Lookup Definition, specified view_name is not valid. | Check for misspelled view_name or create missing view. | ||||||||||||||||||||
25 | Error | 16 | For Lookup Definition, data_text_field and data_value_field are
not set. | Set data_text_field and data_value_field for the lookup. | ||||||||||||||||||||
26 | Error | 16 | For Lookup Definition, specified data_text_field and
data_value_field are not valid. | Check for misspelled data_text_field and data_value_field or
create missing data_text_field and data_value_field. | ||||||||||||||||||||
27 | Error | 16 | For Lookup Definition, specified show columns fields are not
valid. | Check for misspelled "show_columns" fields. | ||||||||||||||||||||
28 | Error | 4 | 8 | For method_type = “SP”, field db_data_type is not in sync with,
database table column data type. | Adjust db_data_type for entity table_fields or for SP output
field. So, they are matching. | ||||||||||||||||||||
29 | Error | 4 | For method_type in "SP" or "Query",
db_column_name exists in SP/Query result but not in entity table_fields. | Add db_column_name to entity table_fields or check for mismatch
due to misspelling. The error is also likely to occur when default values for the
request tables of this method is not set with the values defined in SP's as
default values. | ||||||||||||||||||||
30 | Error | 2 | 4 | Field is set in method - entity table field. But did not exists
in DB read response. | Remove db_column_name from entity table_fields or check for
mismatch due to misspelling. | ||||||||||||||||||||
31 | Error | 4 | 8 | Multiple visible fields in an entity table have the same label
text. | Field Label or table-field level are used in UI as display name
for the fields. When two fields in a table has the same label text, the UI
will appear as if the fields are duplicated. Resolve as below. 1. Change the name of the label at the field level. 2. If two fields in a table should have same label, create
multiple "Field Clusters" for the table, and assign the fields with
same label in different field clusters. 3. Change the name of the label at the table-field level. This
should be the approach, when field label text is different at table level. 4. If one of the fields is meant as reference/computed field and
user need not have to see such field, set the field as hidden. | ||||||||||||||||||||
32 | Error | 1 | 2 | CUD methods are set on non-existing read response table. | To perform CUD operations on table, it must be first read using
read methods. A CUD method is set on a table (specified in
read_response_table_name) that was never read using a read method. To
resolve: 1. Check if this is a valid CUD method (method_name) used in any
of the pages. If it is unused CUD method, set enable = false or delete the
method. 2. If the method is used, search in Entity tables, if it is a
response table of any read method. This error found that no read methods are
available and hence there should be not be any read methods. Create the read
method that outputs a response with table specified in
"read_response_table_name" 3. It is possible that orphaned records are present in entity
tables that is not visible in EF tool. It can be read and cleaned up
(carefully) using queries as in example below.
select * from ef.table_methods tm where tm.read_response_table_name =
'AccountCreate';
begin tran delete tm from ef.table_methods tm where tm.read_response_table_name =
'AccountCreate'; commit | ||||||||||||||||||||
33 | Error | 1 | 2 | 4 | 8 | CUD (Non-read) methods must have response tables to return
Computed or Identity field values. On a read response table, select
"Table Non-read Target method", and make sure
"response_table_name" is set. | 1. Select response table and click "Table Non-Read Target
Method" tab. 2. Select affected method name. 3. Select field from "Non-Read Response for Read Response
Table" drop-down list. | ||||||||||||||||||||
34 | Error | 2 | 4 | Database table used for the entity method has identity column,
but not set in table fields. | Add missing identity column to entity table_fields or check for
mismatch due to misspelling. | ||||||||||||||||||||
35 | Error | 2 | 4 | 8 | Database table used for the entity method does not have identity
column, but set in table fields. | Remove missing identity column from entity table_fields or check
for mismatch due to misspelling. | ||||||||||||||||||||
36 | Error | 2 | 4 | 8 | For method_type="SQL", field db_data_type is not in
sync with database table column data type. | Adjust db_data_type for entity table_fields or for query output field,
so they match. | ||||||||||||||||||||
37 | Error | 2 | 4 | db_column_name exists in query result, but not available in
entity table_fields. | Add db_column_name to entity table_fields or check for mismatch
due to misspelling. If the value in db_column_name = "a", then it is due to
another error. Error #61-Invalid method or missing parameters in request
tables. Unable to execute query or SP method. Clear the Error #61 first. | ||||||||||||||||||||
38 | Error | 1 | 2 | 4 | 8 | For method_type="SQL", field is set in entity
table_field, but it did not exist as a field in query response. | Remove db_column_name from entity table_fields or check for
mismatch due to misspelling. | ||||||||||||||||||||
39 | Error | 8 | If a field is derived from a base field, then “Root Table Name”
must be specified. | Add Root Table Name to Fields. A root table is table where the data originates (first created
manually). For example, Field: AddressTypeId is originally created in
AddressType table. AddressTypeId is then used in other tables as
reference. Hence AddressType is the
root table for the field AddressTypeId | ||||||||||||||||||||
40 | Error | 1 | 2 | Execute Operations must be true for either or both fields:
supports_batch_mode or supports_non_batch_mode. | Set "supports_batch_mode" and/or
"supports_non_batch_mode" to true. | ||||||||||||||||||||
41 | Warning | 4 | Read Request tables must have keys. | Add key(s) to read request table. Or, set
"table_has_no_keys” = “true", in request table. | ||||||||||||||||||||
42 | Error | 16 | Table-field level lookup’s data_value_field must match
field_name, base_field_name, or array_of_base_field_name. | Lookup "data_value_field" must match "field_name",
"base_field_name", or "array_of_base_field_name". | ||||||||||||||||||||
43 | Error | 8 | Missing array_of_base_field_name and root_table_name for fields.
Fieldname ending with List is assumed to be array of another field. | In Fields, setup "array_of_base_field_name" and/or
"root_table_name". | ||||||||||||||||||||
44 | Error | 8 | Field Data Type and Base Field Data Type must match. | Set field data type and base field data type to the same value. | ||||||||||||||||||||
45 | Error | 4 | 32 | View Field does not exist in Table Field list. | Add View Field to Table Field List. | ||||||||||||||||||||
46 | Error | 4 | A Table’s Primary key cannot be a Partial Key. | A key cannot be both partial key and primary key. To resolve: Find the tables in Entity Tables, Open "Key” tab. Edit the row. Either Set Partial Key or Primary key, but not
both. | ||||||||||||||||||||
47 | Error | 1 | 2 | For method_type= ”Table”, request table db_column_name does not
exist in the database table. | A method that uses database table (method type =1), the request
tables db_column_name must be present in the database table. Check the
db_column_name. | ||||||||||||||||||||
48 | Error | 8 | Field name should not be a reserved keyword. | Change the field name. Also get it changed in places where it is
used under table fields. | ||||||||||||||||||||
49 | Error | 2 | Compilation error in these methods for method type
"SQL". | Incorrect syntax in your query. Execute the query manually and replace corrected query in
target_method_source. | ||||||||||||||||||||
50 | Error | 2 | For method_type="SQL", Parameters exist in queries,
but do not exist in request tables. | Query has parameter, but it is not specified in request table. Add the missing column in request table. | ||||||||||||||||||||
51 | Error | 2 | Key fields are specified in request tables, but are not used in
the read query as parameters. This will result entire table getting
duplicated, when this table is a child table during navigation. If key fields
are not used in request tables, update method will update all records and
delete method will delete all records. | Change the query used in target_method_source, with proper
parameters. | ||||||||||||||||||||
52 | Error | 4 | 8 | Length of (Table Name + Field Name) must be less than or equal
to 80 characters. | Decrease the size of (Table Name + Field Name), so that the size
is not greater than 80 characters. | ||||||||||||||||||||
53 | Warning | 0 | Multiple Request Tables with identical columns. | Ignore. Obsolete validation | ||||||||||||||||||||
54 | Warning | 0 | Multiple Response Tables with identical columns. | Ignore. Obsolete validation | ||||||||||||||||||||
55 | Error | 1 | 2 | Read method_type and target_method_source specified both
entity_methods (cumulative) level and table level. Specify only at one level. | Target Method Source is specified in two places. Remove the entry from “Table Read Target
Method” Tab at bottom of page (Table Details). | ||||||||||||||||||||
56 | Error | 1 | 2 | In CUD methods, with method_type = “Table”, CUD method's
response fields must match exactly with Read method's response table fields. | In CUD operations, saving directly to a database table, and if
there is a response table from CUD operations (that returns identity or
computed column values), the returned Db column names must match to the
identity or computed column name in database table. - Check and correct the Db column name. - Check if the CUD response table field is set as either
identity or computed fields in read response table. | ||||||||||||||||||||
57 | Error | 1 | 2 | 4 | 8 | Missing field name. The missing field name must always be
present with the stated field name as "pairs". | Some fields are always have to present together, to be
meaningful. They are defined as "Polymorphic fields". Add the
missing fields to the table. | ||||||||||||||||||||
58 | Error | 8 | Invalid root_table_name specified. | In Fields, set root_table_name with available entity table name or
leave it empty. | ||||||||||||||||||||
59 | Error | 4 | 8 | Must specify a lookup name when editor_type =
"DropDownList", or set editor_type = "TextBox". | When editor_type = "DropDownList”, a lookup name must be
specified. If lookup is not needed, set editor_type = “TextBox”. | ||||||||||||||||||||
60 | Error | 16 | Field level lookup data_value_field must be same as field_name
OR its base_field_name OR array_of_field_name. | The lookup used for this field must be same as field_name OR its
base_field_name OR array_of_field_name. | ||||||||||||||||||||
61 | Error | 2 | Invalid method or missing parameters in request tables. Unable
to execute query or SP method. | This error will happen for one or more of the following issues. i) The SP/Query is
incorrect, and unable to compile. ii) Fields/Db columns in
the request table are incorrect. iii) Default values should be set for the fields. If no default
values are set, null values will be used for validation. iv) If the method expects
any temp tables (# or ## tables) to be created/available prior to execution,
create the tables in the target_method_source, as a first step, as in example
below. if object_id('tempdb..#a') is not null create table #a(a int, b varchar(10)) --- the table
name/definition must be whatever the method is expecting. | ||||||||||||||||||||
62 | Information | 16 | Unused Lookups. | The lookups listed are not used. Use or disable or remove them. | ||||||||||||||||||||
63 | Error | 4 | 8 | Abstract fields must not be used in table fields. | Do not use abstract fields as table fields. Use another
available and relevant field. If no fields are available, create a new non-abstract field,
possibly using abstract field as "base_field_name", and use the new
field. | ||||||||||||||||||||
64 | Error | 4 | 8 | Generic fields must not be used in table key fields. | Do not use generic fields as table key fields. Relations between
tables will not be generated for generic fields. Uncheck generic flag in Fields, or use a different field. | ||||||||||||||||||||
65 | Error | 8 | Invalid Editor for a bit/boolean field. | Set the field Editor Type = "CheckBoxBinary" or
"CheckBoxTristate" or "RadioButtonList", when
db_data_type = bit. | ||||||||||||||||||||
66 | Error | 16 | All Lookup fields, except bit fields, must be a simple
searchable field. The search bar on lookup should be able to search on all
fields. | In table fields, set the simple_search = 1 for these fields or
remove the field from lookup display fields list. | ||||||||||||||||||||
67 | Error | 8 | Field Name must be different from base_field_name and must be
different from array_of_base_field_name. | In Entity Fields, set the field_name, base_field_name,
array_of_base_field_name with different values. Or set base_field_name to
null, if the field_name is derived from another field. Set the
array_of_base_field_name to null, if the field_name does not represent an
array/list of another field. | ||||||||||||||||||||
68 | Error | 8 | For a Field, both base_field_name and array_of_base_field_name
cannot be specified. | Set either base_field_name or array_base_field_name, but not
both. | ||||||||||||||||||||
69 | Error | 4 | For a table, there must be only one primary key defined. | In Entity Table Keys, set only one key as primary key. | ||||||||||||||||||||
70 | Error | 4 | 8 | Missing Field Labels. | Define a field label at either table level or field level. | ||||||||||||||||||||
71 | Error | 8 | Default value, if specified, must be either NULL or some value.
But not both. | In Table fields, examine the data in these four fields:
entity_default_value, target_default_value, is_entity_default_value_null, is_target_default_value_null.
Compute the following formulas: default_value = isnull(entity_default_value,
target_default_value) ---> entity
default value overrides target default value
is_default_value_null = isnull(is_entity_default_value_null,
is_target_default_value_null) --> is_entity_is_default_value_null always
overrides the is_target_is_default_value_null
if, is_default_value_null = true and default_value is not null -
then this sets default value is NULL and to some non-null value. This is #4 below, which is not valid. Use
#1, #2 or #3 below.
| ||||||||||||||||||||
72 | Error | 4 | 8 | Invalid db_column_name specified. | Invalid db_column_name is specified for the field_name. The
ef.table_fields.db_column name must be stated either in ef.fields.db_column_name
(primary db_column_name) or in ef.field_db_columns.db_column_name (alternate
db_column_name). Check first if the field_name specified is correct in the
table_fields. If field_name is correct, check the output of the method name
if the db_column_name is correct. If correct, add the alternate
db_column_name in ef.field_db_columns. | ||||||||||||||||||||
73 | Error | 8 | Field Level lookup is using a disabled lookup method. | In ef.fields, the lookup used for the field is disabled in
Lookups. Enable the lookup or use alternate lookup for the field. | ||||||||||||||||||||
74 | Error | 4 | 8 | Table Field lookup is using a disabled lookup method. | In ef.table_fields, the lookup used for the field is disabled in
Lookups. Enable the lookup or use alternate lookup for the field. | ||||||||||||||||||||
75 | Information | 8 | Enclose db_column_name in square brackets for possible special
characters or keywords or space in the column name. | db_column_name should be in this format: [db_column_name]. | ||||||||||||||||||||
76 | Error | 8 | 16 | Lookup Value Field length should be indexable, and hence the
size of value field should not exceed 900 characters. | In Lookups, choose a different value field that has shorter
length. It is incorrect to choose a long field as value field. | ||||||||||||||||||||
77 | Error | 4| 8 | 16 | When a table field is an array, lookup data_value_field must
match to array_of_base_field_name. | A field is an array (as indicated by ef.fields with
array_of_base_field_name is not null). The lookup for this field should have
data_value_field same as array_of_base_field_name. Check if the proper lookup is used for the field name. | ||||||||||||||||||||
78 | Error | 4| 8 | When a table field is an array, multi_select_format must be
specified as text or json or xml or bitwise. When using text format, provide
field delimiter. | A field is an array (as indicated by ef.fields with
array_of_base_field_name is not null). The value of the array can be stored
in one of these formats: text, json, xml, bitwise. Specify a storage format. When text format is used, provide
field delimiter also. | ||||||||||||||||||||
79 | Error | 2| 4 | Invalid response table name for a table level read method. | It is more likely, that these records are left as orphaned
records, when switching between cumulative methods and table methods. The following sample query will provide the records: select * from
ef.table_methods where method_name = @method_name
If the tables are not
valid, carefully delete using the following queries: begin tran delete from ef.table_method_request_tables where method_name =
@method_name --and request_table_name = @request_table_name,
read_response_table= @table_name
delete from ef.table_methods where method_name = @method_name
and read_response_table = @table_name commit | ||||||||||||||||||||
80 | Error | 2| 4 | Invalid request table name for a table level read method. | It is more likely, that these records are left as orphaned
records, when switching between cumulative methods and table methods. The following sample query will provide the records: select * from ef.table_method_request_tables where method_name =
@method_name and read_response_table_name = @table_name --and
request_table_name = @request_table_name
If the tables are not valid, carefully delete using the
following queries: begin tran delete from ef.table_method_request_tables where method_name =
@method_name and read_response_table=
@table_name --and request_table_name = @request_table_name commit | ||||||||||||||||||||
81 | Error | 2 | Read method must be specified either as cumulative method or as
a table level read method, for every response table. But not as both. For the following records, read method are specified at both
levels. | Set the method at only one level. Cumulative read method is
specified by setting (method_type AND target_method_source) at Entity
Methods. Table level read method is specified by setting (method_type AND
target_method_source) at "Table Read Target Method" tab, for each
response table. | ||||||||||||||||||||
82 | Error | 4 | 8 | Numeric, Decimal or varchar fields exceeding 900 bytes cannot be
used as key fields. | Review if proper fields are used as key fields. Use of Numeric or
decimal fields as key fields should be avoided. Reduce the sizes of varchar
or nvarchar key fields. Set alternate fields as keys. If the table has no meaningful keys, set table_has_no_keys =
true. | ||||||||||||||||||||
83 | Error | 4 | 32 | Table Hierarchy is specified with View name. However, the view
does not have either parent or child field name or both. | Remove the View Name from Table Hierarchy, or include both
parent and child fields of the hierarchy in the view. | ||||||||||||||||||||
84 | Error | 2 | Invalid CUD query methods. | Correct the query. | ||||||||||||||||||||
85 | Error | 2 | Invalid CUD SP methods. | This error checks if the SP compiles properly. It does not
execute the SP, as it may change the data. Correct the SP with compile
errors. | ||||||||||||||||||||
86 | Error | 4 | 32 | Views missing RowIdentifer field. | The views in these tables are marked as “Audit tracked tables”,
to see the data changes. The views in such table must include field
"RowIdentifier", or a field with base field =
"RowIdentifier". | ||||||||||||||||||||
87 | Error | 2 | 4 | Non-read methods are missing response tables. | Open the method_name. For the "table_name", in the
"Table Non-Read Target Method" tab, "response_table_name"
is missing or incorrect, for the method "non_read_method_name". It is expected to have
the value as in the field "non_read_response_table_name". | ||||||||||||||||||||
88. | Error | 2 | 4 | Non-read methods are missing request tables. | Open the method_name. For the "table_name", in the
"Table Non-Read Target Method" tab, "request_table_name"
is missing or incorrect, for the method "non_read_method_name". It is expected to have the value as in the field
"non_read_request_table_name”. | ||||||||||||||||||||
89 | Error | 2 | Non-existent or disabled derived method used in a polymorphic
method. | Correct the value specified in "derived_method_name"
in the JSON field "derived_method_field_mapping". | ||||||||||||||||||||
90 | Error | 4 | In a table, for the field lookups, more than one lookup method
sends results to the same response table. | Such Lookup methods do not have request table or set with
has_internal_parameters=null or 0. Either combine the different lookup methods into one lookup
method. Or, use different response table for each lookup method, making
sure multiple methods do not output to the same response table. | ||||||||||||||||||||
91 | Information | 4 | When a field editor_type =
“RadioButtonList”, default value must be specified in any one of these
columns: entity_default_value, target_default_value, default_value_lookup. | All Radio buttons must have default value, per UI standards.
Specify a value in any one of these columns:
entity_default_value, target_default_value. | ||||||||||||||||||||
92 | Error | 4 | 8 | Editor Type = "Checkbox Binary" OR "Checkbox
Tristate" can only be used with fields with bit datatype. | Change the field data_type or Editor Type. | ||||||||||||||||||||
93 | Error | 4 | 8 | Fields with editor type =
"Checkbox Binary" must have entity_default_value NOT NULL
and is_entity_default_value_null = 0 and have either 0 or 1 for
entity_default_value. | Set field default value as 1 or 0. | ||||||||||||||||||||
94 | Error | 2 | 4 | Response table(s) are not indexed properly. | response_table_index should start from 0 and sequentially
incremented by 1, like 0,1,2,3... The following tables are incorrectly
sequenced. Incorrectly sequenced response tables will result in method's
output data sent to wrong tables. "likely_correct_index" is a suggested index, and
should be verified with output of the method for correctness. | ||||||||||||||||||||
95 | Error | 4 | 8 | Invalid default value specified for the specified datatype,
either in entity_default_value and/or target_default_value. | Default values does not match with data type. Correct the values
in entity_default_value and/or target_default_value. | ||||||||||||||||||||
96 | Error | 4 | 32 | More than one default view or filter or hierarchy is set on a
table. | Limit to one default view or filter or hierarchy on a table | ||||||||||||||||||||
97 | Error | 1 | 2 | Method type not specified for the Cumulative method, non-derived
method. Specify method_type | If a method is a cumulative method, and is not specified as
"Derived Method", Method Type must be specified. Set Method type to
a not null value. | ||||||||||||||||||||
98 | Error | 4 | 8 | Lookup Table must include the parent field. | A parent field is using a Drop-Down List (DDL) lookup for the
purpose of assigning a parent value. The assigned parent value must not
include the self or its descendants.
For example, consider a hierarchy of AccountNo = 3, which child
AccountNo =4, and grandchild AccountNo = 5.
The parent account of AccountNo=3, must not include AccountNo(s) =
3,4,5 .. i.e., it must not have a
value of self (AccountNo=3) or its descendants (AccountNo=4,5) For a record with AccountNo=3, EF
eliminates the sub-tree starting from AccountNo=3 for the possible list of
values in the DDL of ParentAccountNo.
To facilitate such elimination, ParentAccountNo must exist as one of
the fields in the lookup response table (lookup_table_name). Add the field stated in "missing_field_name_in_lookup_table"
to the table stated in "lookup_table_name". In addition, hierarchical display of DDL
will help user to understand the structure and assign appropriate parent. The Lookup table must have Hierarchy
definition set in (Table Details-Hierarchy) tab, and set with Is Default =
true, so that the UI displays hierarchy in the DDL. | ||||||||||||||||||||
99 | Error | 8 | Derived Method Field Name should not be array field. | The polymorphic method listed below has "Derived method
field name" specified with an array of another base field. It must be
scalar field. Specify a field that is not array field. | ||||||||||||||||||||
100 | Error | 4 | 8 | Root table name is incorrectly assigned for the field. | Fields are assigned with Root table Name, that does not have
"Create" method to input data. The "Create" method should
be marked as enabled=true, not_used=false.
Root table is defined as where data is actually manually input for the
first time, and is not a referenced data.
If the root table is a system defined "constant" data that
does not change - such as JSON data or table data that is hard-defined in the
system that user cannot change, mark the root table as read-only. For each field, change the root table
appropriately. Guidance on root
table assignment
---------------------------------
1. Root table is defined as where data is actually manually input for
the first time, and is not a referenced data.
2. A request table cannot be set as root table (as this is not where
the data is entered). It must be a response table, that has a create
method. 3. Root table are mandatory
for key fields only. For non-key fields it is optional, there will not any
validation errors for non-key fields.
4. In case of key fields, Root table for a field - is the table that has the field as primary
key. But two or more tables may have the same primary key. For example, tables - “Account” and
“AccountLookup” may have “AccountNo” as primary key. Account is where the data is actually
entered for AccountNo field, and hence this should be the root table.
AccountLookup is just a queried copy of
Account table. Root table
is necessary for this purpose: Amonng the tables with the same primary key
field, which one started first (the root)?. The root table is the parent and
the rest are child tables. This helps
EF to auto-generate relations properly. This also provides the system as to
where to enter the data (allow the field to be create new key value), and
where to reference it (Drop Down List).
| ||||||||||||||||||||
101 | Error | 1 | 2 | 4 | temp_db_table_name is not specified for the method. | All methods must have temp_db_table_name, representing a valid
sql server temp table name, e.g., #tbl, [#tb1] | ||||||||||||||||||||
102 | Error | 4 | 8 | For a field, decimals must be specified when format is specified
for numeric datatype or any datatype involving fractional numbers. If
decimals=null, it would be assumed as 0, which will result in Field value
displayed as a whole number. | Set decimal value to a non-null integer number. This represents
the precision required for the field value. | ||||||||||||||||||||
103 | Error | 8 | #103 - Fields that have datatypes in (date, datetime) and having field names contains "*StartDate*"
(or "*EndDate*"), must have base field of "StartDate" (or
"EndDate"). | Fields that have datatypes in (date, datetime) and having field
names contains "*StartDate*" (or "*EndDate*") - These
fields are considered "date range" fields. These fields must be dervied from the NF
defined abstract field "StartDate" and "EndDate". In addition, all date fields must contain
is_field_parent_of_base=0, as date fields cannot be used in hierarchy. | ||||||||||||||||||||
104 | Error | 4 | 8 | Fields must define in pairs. The table is missing either
*StartDate or *EndDate. | Fields that have datatypes in (date, datetime) and having field
names contains "*StartDate*" (or "*EndDate*") - These
fields are considered "date range" fields. These fields must be used in pairs. A
table must have both StartDate and EndDate.
- Add the missing Start or End date,
Alternatively, rename the fields, as with logic below. - If the field is an aggregate field
computed from min or max of start or end date, follow the naming convention
of : FromDate & ToDate - use BeginDate & FinishDate for Start
and End date respectively. |
Entity Framework Validation Result
It will list all the NF validation cases, with error count for each of them.
If no errors for that case, it will show as 0 errors.
Need to navigate through all the rows in the validation result grid.
When clicking on a row in the validation result grid, in the right side it will show the details of that error, cure options (suggestions on how to clear the error for that case).
And in the right-side bottom grid, will list the affected entity objects for that case, if available.
Field's Description
ApplicationDb Will show the application (target) database for that application.
ValidationNo Internal field to store the validation case number.
Message Small description message for that validation case.
Cure Help details on how to clear that validation case will be given.
Error If that validation case is error, it will show the count of errors there for that validation case.
Warning If that validation case is warning, it will show the count of warnings that are there for that validation case.
Information If that validation case is information, it will show the count of information that is there for that validation case.
Validation Category Used to show whether that validation case is of error or warning or information.
Total Validation Count
Error Message and Cure for Validation
Field's Description
ApplicationDb Will show the application (target) database for that application.
ValidationNo Internal field to store the validation case number.
Message Small description message for that validation case.
Cure Help details on how to clear that validation case will be given.
Error List
Field's Description
ApplicationDb Will show the application (target) database for that application.
Entity Framework Validation Parameters
Field's Description
Specify Validation Type Need to choose whether the validation is for “All Validations” or having “Error”, “Warning”, “Information”.
Specify Validations Need to choose whether the validation is for “All Validations” or having “Error”, “Warning”, “Information”.
All Entity Objects/Specific Entity Objects
Need to choose whether validation going to be done for all the entity objects or for a specific object.
If “Specific Object” is selected, need to select the entity object type from “Object Type” dropdown list, and its object name from “Object Name” dropdown list.
Object Type This option will be enabled when “Specific Object” option is selected. Can select any one option from Entity or Method or Field or Table or View or Lookup.
Object Name This option will be enabled when “Specific Object” option is selected. And also need to select any one item from the “Object Type”. Items that are there for the selected object type will be bind. Need to select an entity object name to validate.
Debug/Write Log?
If this option is checked true, then the validation run that happened will be written to the NF validation log table. Once the validation gets completed, will be taken to the page to view the validation log. Also, it can be viewed from “Validation Log” menu.
If this option is unchecked and when the validation is run (by clicking “Recompute” button), validation will be get executed and result will be get shown in the bottom grid. Log will not be written.
By default, this option is false.
Re Validate? Used for the “Recompute” button.
Clear Log?
If this option is checked, before the validation steps get executed, it will delete the existing rows in the validation log table, for that logged-in user, if it is available.
By default, this option is false.
ApplicationDb Will show the application (target) database for that application.