Introduction

As explained in the previous section, in order to modify and update the Analysis schema, a set of entry tables are injected with data that defines how the Analysis schema will be altered.

Entry tables

The following is an exhaustive list of entry tables ordered by function. Each table and its function is described in more detail below.

Error management
  • CI_ERRORS
Object modification
  • GUID_OBJECTS
  • CI_OBJECTS
  • CI_NO_OBJECTS
Parent type link modification
  • CI_PARENTS
Object property modification
  • CI_STR_PROPERTIES
  • CI_INT_PROPERTIES
  • CI_NO_PROPERTIES
Link modification
  • CI_NO_LINKS
  • CI_LINKS
Link property modification (available in ≥ 8.3.45)
  • CI_INT_LINK_PROPERTIES
  • CI_STR_LINK_PROPERTIES
  • CI_NO_LINK_PROPERTIES

CI_ERRORS

This table will be injected with data if any errors or data inconsistencies are found during the data check process (this takes place when the job is executed).

Column

Type (Length)

Null

Misc.

ERROR_ID

int

Not Null


CATEGORY

int

Not Null


MESSAGE

varchar(500)

Not Null


Note also that all other tables have an ERROR_ID column, which will be used if any errors or data inconsistencies are found during the data check process. You can find out more about how errors are handled and how you can debug them in chapter KB Update SQL Tool - Error handling.

GUID_OBJECTS

This table is disabled in AIP Core ≥ 8.3.45. Attempting to use it will generate and ERROR_ID = 5 on each returned row. If you have scripts using this table to generate custom OBJECT_GUIDs, for legacy technologies VisualBasic and PowerBuilder, you should update those scripts to use the OBJECT_ID (which is always available) instead of generating a custom OBJECT_GUID using this table.

When the results of a CAST analysis are stored in the Analysis schema, all objects (regardless of the analyzer type) are always given a unique numerical OBJECT_ID to identify the object – this OBJECT_ID is then used throughout the Analysis schema to identify the object. At the same time, some objects are also given a unique OBJECT_GUID to provide more details about the object, however, this is not the case for the results of all CAST analyzers. The results of the following CAST analyzers are awlays given an OBJECT_ID and an OBJECT_GUID:

  • ABAP Analyzer
  • C++ Analyzer
  • Mainframe Analyzer
  • J2EE Analyzer
  • SQL Analyzer
  • SSRS Analyzer
  • SSIS Analyzer
  • TIBCO Analyzer
  • Universal Analyzer
  • Universal Importer

You can query the CAST System View "CTV_GUID_OBJECTS" (providing the view is up-to-date) to see which objects have an OBJECT_GUID and which do not.

The KB Update SQL Tool always requires an object's OBJECT_GUID to function correctly and to determine which object your update is being performed on. As a result, if any of the objects involved in the update do NOT have an OBJECT_GUID, then you must either:

  • Manually create a unique OBJECT_GUID for the objects in question as part of your query that will enter data in the entry tables (i.e. enter values in the GUID_OBJECTS table) – modification based on the object's ID.
  • Or use the OBJECT_ID extracted from the CTV_GUID_OBJECTS view (in which case the KB Update SQL Tool will create the OBJECT_GUID itself and there is no need to enter values in the GUID_OBJECTS table) – modification based on the objects' GUID.

Thus, to conclude, the GUID_OBJECTS table only needs to be filled with data when you want to modify objects that do NOT have an OBJECT_GUID and you want to create the OBJECT_GUID manually yourself. If you are using the OBJECT_ID (as oppose to the OBJECT_GUID), then you do not need to enter values in the GUID_OBJECTS table.

Column

Type (Length)

Null

Misc.

OBJECT_ID

int

Null

== the real IdKey from the table Keys

OBJECT_GUID

varchar(1015)

Null


OBJECT_SHORTGUID

varchar (600)

Null

Not currently used

ERROR_ID

int

Not Null

== send 0

To find out more about OBJECT_GUIDs, how to create them and the naming convention in use, please see Creating OBJECT_GUIDs.

CI_OBJECTS

This table is used when you want to add a new object to the Analysis schema.

Column

Type (Length)

Null

Misc.

OBJECT_GUID

varchar(590)

Not Null


OBJECT_TYPE

varchar(255)

Not Null


OBJECT_NAME

varchar(255)

Not Null


OBJECT_FULLNAME

varchar(255)

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column OBJECT_TYPE, you must retrieve the existing type (use a CAST System View to do so):

select TYPE_NAME, TYPE_DESCRIPTION
from CTV_OBJECT_TYPES

CI_NO_OBJECTS

This table is used when you want to remove an existing object from the Analysis schema. You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

OBJECT_ID

int

Null


OBJECT_GUID

varchar(1015)

Null


OBJECT_SHORTGUID

varchar (600)

Null

Not currently used

ERROR_ID

int

Not Null

== send 0

CI_PARENTS

This table is used when you want to add a parent type link (Belongs To) to an existing object. You must enter either a PARENT_ID or a PARENT_GUID.

Column

Type (Length)

Null

Misc.

OBJECT_GUID

varchar(590)

Not Null


PARENT_ID

int

Null


PARENT_GUID

varchar(1015)

Null


PARENT_SHORTGUID


varchar(600)


Null

Not currently used

ERROR_ID

int

Not Null

== send 0

Please note that if you add parent type links to existing objects and then re-launch the analysis job that created the existing objects, the parent type links you added will be destroyed.

CI_STR_PROPERTIES

This table is used when you want to modify/add an existing object's alphanumeric property (for example object comments or business functions). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

OBJECT_ID

int

Null


OBJECT_GUID

varchar(1015)

Null


OBJECT_SHORTGUID

varchar(600)

Null


PROP_NAME

varchar(255)

Not Null


PROPERTY_OFFSETintNot Null

ORDER_NUMBER

int

Not Null

== starts at 1

VALUE

varchar(590)

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES

The column ORDER_NUMBER is used to split properties with a VALUE string size above 255 characters. For example if the VALUE of the property you wanted to add or modify was (for example) 389 characters, you would need to add two rows that contained the split comment as follows. The first row contains the first 253 characters of the property, the second row contains the last 135 characters, differentiated by the value in the ORDER_NUMBER column:

  • ORDER_NUMBER = 1 VALUE = A System Administrator configures the upper limit to the degree of parallelism using server-wide configuration parameters. Session-wide and query-level options can further limit the degree of parallelism. These limits set both the total number of worker
  • ORDER_NUMBER = 2 VALUE = processes that can be used in a parallel query and the total number of worker processes that can be used for hash-based access methods.

CI_INT_PROPERTIES

This table is used when you want to modify/add an existing object's numeric property (for example the number of inner comment lines, number of code lines etc.). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

OBJECT_ID

int

Null


OBJECT_GUID

varchar(1015)

Null


OBJECT_SHORTGUID

varchar(600)

Null

Not currently used

PROP_NAME

varchar(255)

Not Null


VALUE

int

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES

CI_NO_PROPERTIES

This table is used when you want to delete an existing object's property (for example the number of inner comment lines, number of code lines etc.). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

OBJECT_ID

int

Null


OBJECT_GUID

varchar(1015)

Null


OBJECT_SHORTGUID

varchar(600)

Null

Not currently used

PROP_NAME

varchar(255)

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES

This table is used when you want to remove an existing link between two existing objects). You must enter either a CALLER_ID/CALLED_ID pair or a CALLER_GUID/CALLED_GUID pair.

Column

Type (Length)

Null

Misc.

CALLER_ID

int

Null


CALLER_GUID

varchar(1015)

Null


CALLER_SHORTGUID

varchar(600)

Null

Not currently used

CALLED_ID

int

Null


CALLED_GUID

varchar(1015)

Null


CALLED_SHORTGUID

varchar(600)

Null

Not currently used

ERROR_ID

int

Not Null

== send 0

This table is used when you want to add a link between two existing objects. You must enter either a CALLER_ID/CALLED_ID pair or a CALLER_GUID/CALLED_GUID pair.

Column

Type (Length)

Null

Misc.

CALLER_ID

int

Null


CALLER_GUID

varchar(1015)

Null


CALLER_SHORTGUID

varchar(600)

Null

Not currently used

CALLED_ID

int

Null


CALLED_GUID

varchar(1015)

Null


CALLED_SHORTGUID

varchar(600)

Null

Not currently used

LINK_TYPE

Varchar(255)

Not Null


ERROR_ID

int

Not Null

== send 0

This table is used when you want to modify/add an existing link's numeric property (for example "the line number where the first column of a composite index is not used in a WHERE clause"). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

CALLER_ID

int

Null


CALLER_GUID

varchar(1015)

Null


CALLED_ID

int

Null


CALLED_GUID

varchar(1015)

Null


VALUE

int

Not Null


PROP_NAMEvarchar(255)Not Null

ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES

This table is used when you want to modify/add an existing link's alphanumeric property (for example "the line number where the first column of a composite index is not used in a WHERE clause"). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

CALLER_ID

int

Null


CALLER_GUID

varchar(1015)

Null


CALLED_ID

int

Null


CALLED_GUID

varchar(1015)

Null


PROP_NAMEvarchar(255)Not Null
PROPERTY_OFFSETintNot Null
ORDER_NUMBERintNot Null

VALUE

int

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES

The column ORDER_NUMBER is used to split properties with a VALUE string size above 255 characters. For example if the VALUE of the property you wanted to add or modify was (for example) 389 characters, you would need to add two rows that contained the split comment as follows. The first row contains the first 253 characters of the property, the second row contains the last 135 characters, differentiated by the value in the ORDER_NUMBER column:

  • ORDER_NUMBER = 1 VALUE = A System Administrator configures the upper limit to the degree of parallelism using server-wide configuration parameters. Session-wide and query-level options can further limit the degree of parallelism. These limits set both the total number of worker
  • ORDER_NUMBER = 2 VALUE = processes that can be used in a parallel query and the total number of worker processes that can be used for hash-based access methods.

This table is used when you want to delete an existing object's property (for example "the line number where the first column of a composite index is not used in a WHERE clause"). You must enter either an OBJECT_ID or an OBJECT_GUID.

Column

Type (Length)

Null

Misc.

CALLER_ID

int

Null


CALLER_GUID

varchar(1015)

Null


CALLED_ID

int

Null


CALLED_GUID

varchar(1015)

Null


PROP_NAME

varchar(255)

Not Null


ERROR_ID

int

Not Null

== send 0

Note that with regard to defining the column PROP_NAME, use a CAST System View to retrieve the existing property name you require:

select PROP_NAME, PROP_DESCRIPTION
from CTV_PROPERTIES