2025 Update Rollup 1

Defining Custom TablesPermanent link for this heading

Custom tables can be defined for certain properties of either compound types or object classes. You can use predefined table definitions or create a “Service Table Definition” object (COOSYSTEM@1.1:TableDefinition) yourself. The table definition objects can be found in the “Domain Configuration” > “Domain Objects” > “Service Definitions” list. You may need to refresh the list to see any objects.

In case of an object class the hierarchy is evaluated (see also chapter “Synchronize Domain Configuration”). In case of compound types the affected properties have to be specified explicitly using the “Used by Properties” (COOSYSTEM@1.1:tdaggrattrs) property.

Table and column names are optional. They are derived from their unique name (COOSYSTEM@1.1:reference) if omitted. Additionally, table names are prefixed with fsc. In case of a collision a sequential number gets appended to the name. Only ASCII letters and digits are allowed, all other characters get replaced by an underscore.

Manual InstallationPermanent link for this heading

The following options are available for manually installing a table definition.

User InterfacePermanent link for this heading

A table definition can be installed using the context menu item “Install Service Table Definition” and removed using “Uninstall Service Table Definition”. If the table definition is placed within the property Service Definitions (COOSYSTEM@1.1:coosrvdefinitions) of the COO Service object and the context menu item is called from there, only the current COO Service is affected, otherwise all active COO Services of the installation are considered.

Command LinePermanent link for this heading

The installation/uninstallation can be executed by calling the underlying actions COOSYSTEM@1.1:InstallTableDefinition and COOSYSTEM@1.1:UninstallTableDefinition. Furthermore, it is possible to define tables using the system configuration action (COOSYSTEM@1.1:Configure). The actions can be called on any host with a valid Fabasoft Kernel installation, which is typically the backend server on a classic installation or the administration container in a container environment.

Installation

Example

File: install.fsc

srvtdtabledef = [
  { tdclasstype = #StructReference;

    tdtablename = "mystructtable"; // optional

    tdattrdefs = [

      { tdaattrdef = #StructMemberAttr1;

        tdacolumnname = "attr1colname"; // optional

      }
    ];

    tdaggrattrs = [

      #StructAttr1

    ];

  },

  { tdclasstype = <ClassReference>;

    tdtablename = "myclasstable"; // optional

  }

]

[fscsrv@host ~]$ fsceval -eval 'coodomain.Configure("install.fsc")'

Uninstallation

Example

File: uninstall.fsc

srvtdtabledef = [
  { tdclasstype = <StructReference>;

    tdtablename = "mystructtable"; // optional

    tdstate = TABLESTATE_REMOVABLE;

  },

  { tdclasstype = <ClassReference>;

    tdtablename = "myclasstable"; // optional

    tdstate = TABLESTATE_REMOVABLE;

  }

]

[fscsrv@host ~]$ fsceval -eval 'coodomain.Configure("uninstall.fsc")'

Automatic InstallationPermanent link for this heading

Predefined table definitions are automatically installed when running the system configuration action (COOSYSTEM@1.1:Configure) if it is requested by setting the property COOSYSTEM@1.1:srvtdinstall to TRUE.