diff --git a/file-formats/tabl/README.md b/file-formats/tabl/README.md new file mode 100644 index 000000000..1ffa6f826 --- /dev/null +++ b/file-formats/tabl/README.md @@ -0,0 +1,6 @@ +# TABL File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.tabl.json` | 1 | *does not exist, yet* | *does not exist, yet* | *does not exist, yet* +`.tabl..indx.json` | 0..n | [`zif_aff_indx_v1.intf.abap`](./type/zif_aff_indx_v1.intf.abap) | [`indx-v1.json`](./indx-v1.json) | `zaff_exmpl_tabl.tabl.001.indx.json` diff --git a/file-formats/tabl/indx-v1.json b/file-formats/tabl/indx-v1.json new file mode 100644 index 000000000..c943875ab --- /dev/null +++ b/file-formats/tabl/indx-v1.json @@ -0,0 +1,109 @@ +{ + "$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/indx/indx-v1.json", + "title": "ABAP DDIC Secondary Index Properties", + "description": "Object type INDX", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file format version", + "type": "string", + "const": "1" + }, + "header": { + "title": "Header", + "description": "Header", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the ABAP object", + "type": "string", + "maxLength": 60 + }, + "originalLanguage": { + "title": "Original Language", + "description": "Original language of the ABAP object", + "type": "string", + "minLength": 2, + "maxLength": 2, + "pattern": "^[a-z]+$" + }, + "abapLanguageVersion": { + "title": "ABAP Language Version", + "description": "ABAP language version", + "type": "string", + "enum": [ + "standard", + "keyUser", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP for Key Users", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP for key user extensibility", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "textIndex": { + "title": "Text Index", + "description": "Standard- or text-Index", + "type": "boolean", + "default": false + }, + "uniqueIndex": { + "title": "Unique", + "description": "Unique flag", + "type": "boolean", + "default": false + }, + "indexFields": { + "title": "Fields", + "description": "Index fields", + "type": "array", + "uniqueItems": true, + "items": { + "title": "Index Fields", + "description": "Index fields", + "type": "object", + "properties": { + "fieldname": { + "title": "Field Name", + "description": "Field name", + "type": "string", + "maxLength": 30 + }, + "position": { + "title": "Field Position", + "description": "Position", + "type": "string", + "maxLength": 4, + "pattern": "^[0-9]+$" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "textIndex", + "uniqueIndex" + ] +} diff --git a/file-formats/tabl/type/zif_aff_indx_v1.intf.abap b/file-formats/tabl/type/zif_aff_indx_v1.intf.abap new file mode 100644 index 000000000..c3efeffae --- /dev/null +++ b/file-formats/tabl/type/zif_aff_indx_v1.intf.abap @@ -0,0 +1,74 @@ +INTERFACE zif_aff_indx_v1 + PUBLIC. + + TYPES: + "!

Index Fields

+ "! Index fields + BEGIN OF ty_indexfield, + "!

Field Name

+ "! Field name + "! $required + field_name TYPE c LENGTH 30, + END OF ty_indexfield, + tt_index_fields TYPE TABLE OF ty_indexfield WITH DEFAULT KEY + WITH UNIQUE SORTED KEY name_unique COMPONENTS field_name, + "!

FTI Properties

+ "! Properties of an Fulltext-Index + BEGIN OF ty_fti_properties, + "!

Language Column for Full-Text Index

+ language_column TYPE c LENGTH 30, + "!

Column for Mime Type

+ mime_type_column TYPE c LENGTH 30, + "!

Mime Type for Full-Text Index

+ mime_type TYPE c LENGTH 127, + "!

Languages for Automatic Language Detection

+ language_detection TYPE c LENGTH 200, + "!

Fast Preprocessing On/Off

+ fast_preprocess TYPE abap_bool, + "!

Additional Index for Fuzzy Search

+ fuzzy_search_index TYPE abap_bool, + "!

Original formatting will be removed

+ search_only TYPE abap_bool, + "!

Update Mode of Full-Text Index

+ update_mode TYPE c LENGTH 10, + "!

Type of Text Analysis

+ configuration TYPE c LENGTH 1, + "!

Ratio Phrase Index to Full-Text Index

+ phrase_index_ratio TYPE n LENGTH 3, + "!

Switches on the text analysis

+ text_analysis TYPE abap_bool, + "!

Token Delimiters

+ token_separators TYPE c LENGTH 50, + END OF ty_fti_properties. + + TYPES: + "!

ABAP DDIC Secondary Index Properties

+ "! Object type INDX + BEGIN OF ty_main, + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Header

+ "! Header + "! $required + header TYPE zif_aff_types_v1=>ty_header_60, + "!

Token Index

+ "! Token-Index + token_index TYPE abap_bool, + "!

Fulltext-Index

+ "! Fulltext-Index + fulltext_index TYPE abap_bool, + "!

Unique Index

+ "! Unique flag + unique_index TYPE abap_bool, + "!

No DB Index

+ "! Index not on DB, only for ABAP table buffer + no_db_index TYPE abap_bool, + "!

Fields

+ "! Index fields + index_fields TYPE tt_index_fields, + "!

Fulltext Index

+ "! Fulltext Index Properties + fti_properties TYPE ty_fti_properties, + END OF ty_main. + +ENDINTERFACE. \ No newline at end of file diff --git a/file-formats/tabl/type/zif_aff_indx_v1.intf.json b/file-formats/tabl/type/zif_aff_indx_v1.intf.json new file mode 100644 index 000000000..a4007c11a --- /dev/null +++ b/file-formats/tabl/type/zif_aff_indx_v1.intf.json @@ -0,0 +1,177 @@ +{ + "$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/tabl/indx-v1.json", + "title": "ABAP DDIC Secondary Index Properties", + "description": "Object type INDX", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file format version", + "type": "string", + "const": "1" + }, + "header": { + "title": "Header", + "description": "Header", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the ABAP object", + "type": "string", + "maxLength": 60 + }, + "originalLanguage": { + "title": "Original Language", + "description": "Original language of the ABAP object", + "type": "string", + "minLength": 2, + "maxLength": 2, + "pattern": "^[a-z]+$" + }, + "abapLanguageVersion": { + "title": "ABAP Language Version", + "description": "ABAP language version", + "type": "string", + "enum": [ + "standard", + "keyUser", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP for Key Users", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP for key user extensibility", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "tokenIndex": { + "title": "Token Index", + "description": "Token-Index", + "type": "boolean" + }, + "fulltextIndex": { + "title": "Fulltext-Index", + "description": "Fulltext-Index", + "type": "boolean" + }, + "uniqueIndex": { + "title": "Unique Index", + "description": "Unique flag", + "type": "boolean" + }, + "noDbIndex": { + "title": "No DB Index", + "description": "Index not on DB, only for ABAP table buffer", + "type": "boolean" + }, + "indexFields": { + "title": "Fields", + "description": "Index fields", + "type": "array", + "items": { + "title": "Index Fields", + "description": "Index fields", + "type": "object", + "properties": { + "fieldName": { + "title": "Field Name", + "description": "Field name", + "type": "string", + "maxLength": 30 + } + }, + "additionalProperties": false, + "required": [ + "fieldName" + ] + } + }, + "ftiProperties": { + "title": "Fulltext Index", + "description": "Fulltext Index Properties", + "type": "object", + "properties": { + "languageColumn": { + "title": "Language Column for Full-Text Index", + "type": "string", + "maxLength": 30 + }, + "mimeTypeColumn": { + "title": "Column for Mime Type", + "type": "string", + "maxLength": 30 + }, + "mimeType": { + "title": "Mime Type for Full-Text Index", + "type": "string", + "maxLength": 127 + }, + "languageDetection": { + "title": "Languages for Automatic Language Detection", + "type": "string", + "maxLength": 200 + }, + "fastPreprocess": { + "title": "Fast Preprocessing On/Off", + "type": "boolean" + }, + "fuzzySearchIndex": { + "title": "Additional Index for Fuzzy Search", + "type": "boolean" + }, + "searchOnly": { + "title": "Original formatting will be removed", + "type": "boolean" + }, + "updateMode": { + "title": "Update Mode of Full-Text Index", + "type": "string", + "maxLength": 10 + }, + "configuration": { + "title": "Type of Text Analysis", + "type": "string", + "maxLength": 1 + }, + "phraseIndexRatio": { + "title": "Ratio Phrase Index to Full-Text Index", + "type": "string", + "maxLength": 3, + "pattern": "^[0-9]+$" + }, + "textAnalysis": { + "title": "Switches on the text analysis", + "type": "boolean" + }, + "tokenSeparators": { + "title": "Token Delimiters", + "type": "string", + "maxLength": 50 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header" + ] +} + +