General properties
Within AFD 2.0 and the API-framework, SIVI provides a function for exchanging data in a tabular structure.This enables parties to distribute content (such as tables of data or a codelist) which can be used in for example a drop-down list presented on screen. Fetching a table is part of the preparation or maintenance that is carried out for the initial load and periodical update of an environment/application. Thereby it eliminates the need to store and maintain data like code lists by duplicating it in another environment, by simply fetching it with the retrieve table operation.
The data are displayed in a structure that represents a tabular form. For example a table with the header row formed by a number of AFD attributes, with the corresponding values on each row. The following example is a multi-layered table of professions, filled with AFD attributes occupation
(codelist CBSBER), occupationDescription
(string), elaborationOnOccupation
(string), maximumEndAgeAov
(decimal) and occupationalClassification
(integer). (This is just an example: note that column headers do not necessarily have to be attributes from the AFD. Take for example the professionSynonyms
attribute in the example below, which does not appear in the AFD.)
occupation | occupationDescription | elaborationOnOccupation | maximumEndAgeAov | occupationalClassification | professionSynonyms |
---|---|---|---|---|---|
0100 | Scheikundigen | Scheikundigen, natuurkundigen, verwante technici | 68 | 1 | Chemici |
0200 | Architecten | Architecten, ingenieurs en verwante technici, tekenaars | 67 | 3 | Bouwkundigen |
… | … | … | … | … | … |
Mandatory components
The table below contains all mandatory entities and attributes of the afsTableStructure
. Please note: these are only the mandatory components; in this case only the presence of an afsTable
entity of entityType customTable
, the definition of the columns with entityType tableColumn
, and one or more rows as (an array of) tableRow
entityTypes. See later in this section for a more detailed example. More information about functions related to table is available in chapter Domain specific functions under Table.
A general description of AFD structures is provided in Introduction to AFD structures, while information on details of AFD structures is available in chapter Where to find details about AFD structures.
Name | Occur. | Type | Description |
---|---|---|---|
afsTableStructure | 1..1 | entity | Structure of exchanging data. |
afsTable | 1..1 | entity | Entity for grouping data as data in itself. |
entityType | 1..1 | string | Set to ‘customTable’. |
tableName | 1..1 | string | Identifying name for the table. |
afsTable | 0..n | entity | Entity for grouping data as data in itself. |
entityType | 1..1 | string | One or more ‘tableColumnRow’ entityTypes for defining the columns, followed by one or more ‘tableRow’ entityTypes filling these columns.. |
JSON example
Below is an example of an afsTableStructure
, corresponding with the example table above of a profession table. Note that at the top level within JSON, the afsTableStructure
entity is not explicitly mentioned. In XML, the structure is always explicitly defined (as afsTableStructure
) at the highest level.
{
"commonFunctional": [ {
"entityType": "default",
"dataCatalogVersion": "36E",
"porCompany": "C103"
} ],
"afsTable": [ {
"entityType": "customTable",
"tableName": "Profession table",
"afsTable": [ {
"entityType": "tableColumn",
"columnName": "occupation",
"columnDataType": "string"
},
{
"entityType": "tableColumn",
"columnName": "occupationDescription",
"columnDataType": "string"
},
{
"entityType": "tableColumn",
"columnName": "elaborationOnOccupation",
"columnDataType": "string"
},
{
"entityType": "tableColumn",
"columnName": "maximumEndAgeAov",
"columnDataType": "integer"
},
{
"entityType": "tableColumn",
"columnName": "occupationalClassification",
"columnDataType": "integer"
},
{
"entityType": "tableColumn",
"columnName": "professionSynonyms",
"columnDataType": "[string]"
},
{
"entityType": "tableRow",
"sequenceNumber": 1,
"rowValues": ["0100", "Scheikundigen", "Scheikundigen, natuurkundigen, verwante technici", 68, 1, ["Chemici"]]
},
{
"entityType": "tableRow",
"sequenceNumber": 2,
"rowValues": ["0200", "Architecten", "Architecten, ingenieurs en verwante technici, tekenaars", 67, 3, ["Bouwkundigen"]]
}
]
} ]
}
Post your comment on this topic.