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.

 

#

is_default _value_null

default_value

Meaning

1

False

Null

No default value specified

2

False

Not Null

Default = value specified in default_value

3

True

Null

Default = Null

4

True

Not Null

Not Valid

 

 

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

| 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.