The concept of Axapta System Tables
Axapta system tables contain data that the Axapta kernel uses to control the behaviour of the kernel. Axapta system tables are created automatically by the kernel, when Axapta is started for the first time against an empty database or after a service pack upgrade.
Axapta system tables are in many ways treated as ordinary Axapta tables from the kernel’s point of view. They are synchronized in same way and inserts / updates of the tables are done in a similar way.
System tables are not company specific and do not have a “DataAreaId” column. Therefore, system tables are implicitly treated as if they belong to the “DAT” company.
All system tables (except “SqlSystemVariables”) have a “RecId” column, which is updated as an ordinary table belonging to the “DAT” company.
Some system tables has the following standard columns:
· MODIFIEDDATE
· MODIFIEDTIME
· MODIFIEDBY
· CREATEDDATE
· CREATEDTIME
· CREATEDBY
All system tables (except “SqlSystemVariables”) have a TableId. The TableId’s for system tables starts at 65508 and each field in a system table also has a Id that follows the normal rules for Id generation of FieldId’s. Please refer to the form “SysSqlDictionary” to see the mapping of system tables and TableId / FieldId.
Axapta system tables can’t be accessed or viewed directly from the AOT (Axapta Object Tree). Furthermore, you should not access the system tables Axapta application layer.
This document contains a description of the most important Axapta system tables, except the table “SqlSystemVariables” which is described in another document. The information in this document is not valid for the table “SqlSystemVariables”.
Description of Axapta System Tables
ACCESSRIGHTSLIST (TableId = 65526)
This table contains info about explicit granted access rights for the defined user groups.
Note: Until you have explicitly defined permissions for a table, access to tables is defined using Feature keys. Once you set restrictions on a particular table for a particular user group, all other groups automatically have No Access to that table. As this will seriously impact the way the system works, you are presented with a warning dialogue before any change takes effect. In the dialogue you must decide whether other user groups should have no access as the result of the change you are making, or if other groups should keep their present permissions.
|
Column
|
Description
|
|
GroupId
|
Id of group for which the access right is valid. Entry must be found in system table “UserGroupInfo”.
Type: Varchar2(5)
Value:
Admin: Administrator group
Xxxxx: Other groups
|
|
RecordType
|
Type of access rights
Type: Number(10)
Value:
0: Table permissions
3: Feature key and menu permissions
|
|
ParentId
|
?????
Type: Number(10)
Value:
|
|
Id
|
Internal Id of element on which access rights is defined.
Type: Number(10)
|
|
UtilElement
|
Name of element on which access rights are defined.
Type: Varchar2(40)
|
AccessType
|
Granted access right
Type: Number(10)
Value:
0: No Access. Prevent access to the functional group.
1: Read. Allow the group to view data but not edit, add, or delete data.
2: Change. Allow the group to view and edit data but not add, or delete.
3: Add. Allow the group to view, edit, add, but not delete data.
4: Full control. Allow the group to view, edit, add, and delete data.
|
|
AccessTypeFkeyUse
|
Access right granted through feature keys.
Type: Number(10)
Value:
See AccessType
|
COMMON
COMPANYDOMAINLIST (TableId = 65509)
This table contains relation between companies and domains.
DATAAREA (TableId = 65533)
This table contains data about created companies.
|
Column
|
Description
|
|
Id
|
Id of company.
Type: Varchar2(3)
|
|
Name
|
Name of company.
Type: Varchar2(40)
|
|
IsVirtual
|
Indicates whether or not company is virtual or not
Type: Number(10)
0: Real company
1: Virtual company.
|
|
AlwaysNative
|
Indicates whether or not data from company is stored in native files.
Type: Number(10)
0: Stored in database. Always the case when running against an Oracle database.
1: Stored in native files.
|
DATABASELOG (TableId = 65508)
This table contains data about which tables and events to log. The events are logged in the Axapta table SysDatabaseLog.
DOMAININFO (TableId = 65510)
This table contains data about domains.
PRINTJOBHEADER (TableId = 65525)
This table is used in connection with printing from Axapta.
PRINTJOBPAGES (TableId = 65524)
This table is used in connection with printing from Axapta.
SQLDESCRIBE (TableId = 65527)
This table is used temporarily during check / synchronisation process and should normally be empty.
SQLDICTIONARY (TableId = 65518)
This table contains data dictionary data about Axapta application and system tables (except SqlSystemVariables) as stored in Axapta data dictionary. Content of this table can be viewed by the form “SysSqlDictionary”
|
Column
|
Description
|
|
TableId
|
TableId of table.
Type: Number(10)
Value: 1 – n
1 – 7999 Standard SYS layer.
8001 – 15999 GLS layer
16001 – 17999 DIS layer
18001 – 19999 LOS layer
20001 – 29999 BUS layer
30001 – 39999 VAR layer
40001 – 49999 CUS layer
50001 – 59999 USR layer
65513 – n: System tables
When an object is initially created, Axapta automatically manages ids and assigns a new id according to the above table. Note, though, that when you modify an existing object, the object keeps its original id and is not assigned a new id in your layer.
|
|
FieldId
|
FieldId of field.
Type: Number(10)
Value: 1 – n
1 – 7999 Standard SYS layer.
8001 – 15999 GLS layer
16001 – 17999 DIS layer
18001 – 19999 LOS layer
20001 – 29999 BUS layer
30001 – 39999 VAR layer
40001 – 49999 CUS layer
50001 – 59999 USR layer
61440: ModifiedDate
61441: ModifiedTime
61442: ModifiedBy
61443: ModifiedTransactionId
61444: CreatedDate
61445: CreatedTime
61446: CreatedBy
61446: CreatedTransacrionId
61448: DataAreaId
65534: RecId
65513 – n: System fields
|
|
Array
|
Number of array elements in field
Type: Number(10)
Value: 0 – n
0: Table description entry
1: Field is a normal field
> 1: Field is a array field
|
|
Name
|
Axapta name of object (table / field)
Type: Varchar2(40)
|
|
SqlName
|
SQL name of object (table / field)
Type: Varchar2(40)
|
|
FieldType
|
Type of field.
Type: Number(10)
Value:
0: String, Table entry
1: Integer, Time
2: Real
3: Date
4: Enum
7: Container
8: MemoString
|
|
StrSize
|
Size of string. Only relevant for STR fields.
Type: Number(10)
Value: 0 – 1000
0: Non Str field
n: Str field
|
|
Shadow
|
Not in use.
Type: Number(10)
Value: 0
|
|
RightJustify
|
Is field right justified? Only relevant for STR fields.
Type: Number(10)
Value:
0: Field is left justified or field type not STR
1: Field is right justified.
|
|
Nullable
|
Is NULL allowed for field at the Oracle database.
Type: Number(10)
Value:
0: NULL value not allowed.
1: NULL value allowed. Only container and Memo string.
|
|
Flags
|
Flag field. Currently only used for STR fields.
Type: Number(10)
Value: 1,2
1 (Bit 0 = 1): Field is DataAreaId
2 (Bit 1 = 1): Field is ordinary STR field
|
SQLPARAMETERS (TableId = 65517)
This table is for future use.
SQLSTATISTICS (TableId = 65513)
This table is for future use. It is planned to store Axapta specific statistic data, which can help the kernel to optimize the parse, bind, execute and fetch operations.
SQLSTORAGE (TableId = 65515)
This table contains Oracle storage parameters as specified in Axapta “Storage Setup” utility. The value are added to the CREATE statement, whenever a database object is created from Axapta.
|
Column
|
Description
|
|
Id
|
Id of storage paramter entry.
Type: Number(10)
Value: 0,1
0: Entry for a specific storage parameter. Used for display purposes.
1: Entry contains all storage parameter for the object. Used for generating CREATE statements.
|
|
ObjectType
|
Type of Object.
Type: Number(10)
Value: 0,1
0: Table
1: Index
|
|
TableId
|
TableId of table to which the object is related.
Type: Number(10)
Value: 0 – 65512
0: Default for object of ObjectType
n: TableId
|
|
IndexId
|
Index number for table with TableId.
Type: Number(10)
Value: 0 – n
0: If ObjectType = 0 or TableId = 0
n: If ObjectType = 1 and TableId <> 0
65535 : Index RecId
|
|
OverRide
|
Not used.
Type: Number(10)
|
|
Parm
|
Name of storage parameter.
Type: Varchar2(25)
Value:
Null: Id = 1
Tablespace: Id = 0 and Tablespace specified
Initial: Id = 0 and Initial specified
Next: Id = 0 and Next specified
Minextents: Id = 0 and Minextents specified
Pctincrease: Id = 0 and Pctincrease specified
Initrans: Id = 0 and Initrans specified
Maxtrans: Id = 0 and Maxtrans specified
Pctfree: Id = 0 and Pctfree specified
Pctused: Id = 0 and Pctused specified
|
|
Value
|
Value of entry for the specified object.
Type: Varchar2(255)
|
SQLSYSTEMVARIABLES
The SQLSystemVariables table is not viewable from with Axapta; however, you can look at the contents by looking at the Database Information form.
SYSCONFIG (TableId = 65514)
This table contains license information, version, feature key setup and other basic system configuration data.
|
Column
|
Description
|
|
ConfigType
|
Type of configuration information.
Type: Number(10)
Value: 0 – 4
0: License Name
1: License Serial number
2: Module license code
3: Feature key info
4: Service Pack Info
5: ???
|
|
Id
|
Specific configuration information of give type.
Type: Number(10)
Value: Dependent of ConfigType
0: License Name
Always 0
1: License Serial number
Always 0
2: Module license code
License code entry number
3: Feature key info
Feature key entry number, which is not activated.
4: Service Pack Info
1 = Current Service Pack
> 1 = Used to control the upgrade process
|
|
Value
|
Value of given configuration information.
Type: Varchar2(40)
|
SYSLASTVALUE (TableId = 65528)
This table is used to store set values for specific program elements for individual users, which should survive from session to session. This table is used by both the kernel and the application.
|
Column
|
Description
|
|
UserId
|
Name of Axapta user for which this set up is stored.
Type: Varchar2(5)
|
|
RecordType
|
Type of record
Type: Number(10)
Value: ?????
|
|
ElementName
|
Name of program element.
Type: Varchar2(40)
|
|
DesignName
|
Design name of program element.
Type: Varchar2(40)
|
|
IsKernel
|
Is set up kernel or application specific.
Type: Number(10)
Value: 0,1
0: No
1: Yes
|
|
Value
|
Value of the stored setup.
Type: BLOB
|
SYSTEMRECORDLEVELSECURITY (New for version 3.0)
This table contains info about record level security based on table, user and company. The stored information is the extra where condition for the table.
SYSSEMAPHORE
This is a virtual system table that is created and maintained by the kernel. The table can’t be found on the database; however, it contains data about all kernel semaphores
SYSTEMSEQUENCES (TableId = 65516)
This table contains sequence numbers for RecId and TransactionId. A row for each used company and sequence.
|
Column
|
Description
|
|
Id
|
Type of sequence.
Type: Number(10)
Value: -1, -2
-1: RecId sequence
-2: TransactionId sequence
|
|
NextVal
|
Next sequence number (value) to be drawn from the sequence.
Type: Number(10)
Value:
Before version 2.5 : 1..2147483647
From version 2.5 : 1..2147483647, -2147483647..-1
From version 2.5 the next value for the sequence is wrapped around at value 2147483647 to –2147483647
For RecId sequences this value is updated by 25 for each drawing of a new number by the Axapta kernel.
For TransactionId sequences this value is updated by 20 for each drawing of a new number by the Axapta kernel.
|
|
MinVal
|
Minimum value of sequence
Type: Number(10)
Value: 1
|
|
MaxVal
|
Maximum value of sequence
Type: Number(10)
Value:
Before version 2.5 : 2147483647
From version 2.5 : -1
|
|
Cycle
|
Can the sequence loop around (cycle)
Type: Number(10)
Value: 0, 1
0: No
1: Yes
|
|
Name
|
Name of sequence
Type: Varchar2(20)
Value:
RECID: RecId sequence
TRANSID: TransactionId sequence
|
|
DataAreaId
|
Company for which the sequence is defined
Type: Varchar2(3)
Value:
DAT: Used for DAT company and system tables
xxx: All other companies including virtual companies.
|
TABLECOLLECTIONLIST (TableId = 65532)
This table contains data about relation between virtual companies and table collections
|
Column
|
Description
|
|
VirtualCollectionArea
|
Id of virtual company.
Type: Varchar2(3)
|
|
TableCollection
|
Name of table collection attached to the virtual company.
Type: Varchar2(40)
|
USERGROUPINFO (TableId = 65530)
Table contains name for the defined user groups
|
Column
|
Description
|
|
Id
|
Id of user group.
Type: Varchar2(5)
|
|
Name
|
Name of user group.
Type: Varchar2(45)
|
USERGROUPLIST (TableId = 65529)
Table describes relation between users and user groups.
|
Column
|
Description
|
|
UserId
|
Id of Axapta user
Type: Varchar2(5)
|
|
GroupId
|
Id of group.
Type: Varchar2(5)
|
USERINFO ((TableId = 65531)
Table is used to store general set up values for individual users. Use the “Tool/Options..” menu-item to change values in this table. If “UserInfo” is empty or entry for current user doesn’t exists, then no menu item or toolbar is available from Axapta.
UTIL* (UTILAPPLHELP, UTILCODEDOC, UTILELEMENTS, UTILELEMENTSOLD, UTILIDELEMENTS, UTILIDELEMENTSOLD, UTILLOCKS)
These are all virtual tables containing info about programming elements.
VIRTUALDATAAREALIST (TableId = 65534)
This table contains data about relation between real companies and virtual companies.
|
Column
|
Description
|
|
Id
|
Id of company.
Type: Varchar2(3)
|
|
VirtualDataArea
|
Id of virtual company.
Type: Varchar2(3)
|