diff --git a/file-formats/uipg/README.md b/file-formats/uipg/README.md new file mode 100644 index 000000000..0759a12eb --- /dev/null +++ b/file-formats/uipg/README.md @@ -0,0 +1,5 @@ +# UIPG File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.uipg.json` | 1 | [`zif_aff_uipg_v1.intf.abap`](./type/zif_aff_uipg_v1.intf.abap) | [`uipg-v1.json`](./uipg-v1.json) | [z_page_template_example.uipg.json](./examples/z_page_template_example.uipg.json) diff --git a/file-formats/uipg/examples/z_page_template_example.uipg.json b/file-formats/uipg/examples/z_page_template_example.uipg.json new file mode 100644 index 000000000..b0df64289 --- /dev/null +++ b/file-formats/uipg/examples/z_page_template_example.uipg.json @@ -0,0 +1,172 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example Page Template (DT Tool Text)", + "originalLanguage": "en" + }, + "generalInformation": { + "title": "Example Page Template (UI Text)", + "mergeId": "MY_MERGE_ID" + }, + "sections": [ + { + "id": "3WO90XZ1DX19DA1UD5RDXQXWK", + "title": "Section with different Visualization Types", + "items": [ + { + "id": "3WO90XZ1DX19DA1UD5RDXR484", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "ET091D7N8BTE6UTVXBOTFDTSI" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1WZ7S7GIW7" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXRAJO", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "ET091D7N8BTE6UTVXN0D4SAAA" + }, + "tileDisplayFormat": "wide", + "targetMappingKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1X6LIHYLK7" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXRGV8", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "ET091D7N8BTE6UTVXXJQ0WUMS" + }, + "tileDisplayFormat": "link", + "targetMappingKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1XM291XX2K" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXRN6S", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1S7ERAGFW4" + }, + "tileDisplayFormat": "flat", + "targetMappingKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1YAF7047FX" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXRTIC", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1RXJY9FBSE" + }, + "tileDisplayFormat": "flatWide", + "targetMappingKey": { + "catalogId": "/UI2/FLP_DEMO_BC1_TEST", + "id": "00O2TIH53H32KGY1Y1PQ8RMI5" + } + } + } + ] + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXRZTW", + "title": "FLP Admin Tools", + "items": [ + { + "id": "3WO90XZ1DX19DA1UD5RDXS65G", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMXHVBRBTHD" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H346T2QI5EPLELE3" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXSCH0", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIONHWO4YHTH5" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIONMZ9XWT1O2" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXSISK", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMKX5GMY17I" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOM1H7UJ5NAF" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXSP44", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMMI1LGK335" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMB07TNAE0A" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXSVFO", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMVN3GTU4T3" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOLZSJGGN02U" + } + } + }, + { + "id": "3WO90XZ1DX19DA1UD5RDXT1R8", + "tileAssignment": { + "tileKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H32GIOMEYERS87LB" + }, + "targetMappingKey": { + "catalogId": "/UI2/FLP_ADMIN", + "id": "00O2TIH53H346T2QFF5AM9K93" + } + } + } + ] + } + ] +} diff --git a/file-formats/uipg/type/zif_aff_uipg_v1.intf.abap b/file-formats/uipg/type/zif_aff_uipg_v1.intf.abap new file mode 100644 index 000000000..c0f4d5a2e --- /dev/null +++ b/file-formats/uipg/type/zif_aff_uipg_v1.intf.abap @@ -0,0 +1,196 @@ +INTERFACE zif_aff_uipg_v1 + PUBLIC. + + TYPES: + "!

General Information

+ "! General information + BEGIN OF ty_general_information, + + "!

Title

+ "! Title visible to the enduser + "! $required + title TYPE zif_aff_types_v1=>ty_description_100, + + "!

Merge ID

+ "! Merge ID for merging during run-time + merge_id TYPE c LENGTH 35, + + END OF ty_general_information. + + + "!

Catalog Type

+ "! Catalog type + TYPES ty_catalog_type TYPE c LENGTH 3. + + + "!

Tile Display Format

+ "! Tile display format + "! $values {@link zif_aff_uipg_v1.data:co_tile_display_format} + "! $default {@link zif_aff_uipg_v1.data:co_tile_display_format.standard} + TYPES ty_tile_display_format TYPE c LENGTH 2. + + + CONSTANTS: + "!

Tile Display Format

+ "! Tile display format + BEGIN OF co_tile_display_format, + + "!

Standard Tile

+ "! Standard tile + standard TYPE ty_tile_display_format VALUE 'TI', + + "!

Wide Tile

+ "! Wide tile + wide TYPE ty_tile_display_format VALUE 'TW', + + "!

Flat Tile

+ "! Flat tile + flat TYPE ty_tile_display_format VALUE 'FT', + + "!

Flat Wide Tile

+ "! Flat wide tile + flat_wide TYPE ty_tile_display_format VALUE 'FW', + + "!

Link

+ "! Link + link TYPE ty_tile_display_format VALUE 'LK', + + END OF co_tile_display_format. + + + TYPES: + "!

Catalog Item Key

+ "! Catalog item key + BEGIN OF ty_catalog_item_key, + + "!

Catalog ID

+ "! Catalog ID + "! $required + catalog_id TYPE c LENGTH 35, + + "!

Catalog Type

+ "! Catalog type + "! $default 'CAT' + catalog_type TYPE ty_catalog_type, + + "!

Catalog Item ID

+ "! Catalog Item ID + "! $required + id TYPE c LENGTH 50, + + END OF ty_catalog_item_key. + + + TYPES: + "!

Tile Assignment

+ "! Tile assignment + BEGIN OF ty_tile_assignment, + + "!

Tile Key

+ "! Tile key + "! $required + tile_key TYPE ty_catalog_item_key, + + "!

Tile Display Format

+ "! Describes how the tile is rendered during run-time + tile_display_format TYPE ty_tile_display_format, + + "!

Target Mapping Key

+ "! Target mapping key + target_mapping_key TYPE ty_catalog_item_key, + + END OF ty_tile_assignment. + + + "!

Item Type

+ "! Item type + "! $values {@link zif_aff_uipg_v1.data:co_item_type} + "! $default {@link zif_aff_uipg_v1.data:co_item_type.tile_assignment} + TYPES ty_item_type TYPE c LENGTH 2. + + + CONSTANTS: + "!

Item Type

+ "! Item type + BEGIN OF co_item_type, + + "!

Tile Assignment

+ "! Tile assignment + tile_assignment TYPE ty_item_type VALUE 'TI', + + END OF co_item_type. + + + TYPES: + "!

Item

+ "! Item + BEGIN OF ty_item, + + "!

ID

+ "! ID + "! $required + id TYPE c LENGTH 35, + + "!

Type

+ "! Type + type TYPE ty_item_type, + + "!

Tile Assignment

+ "! Tile assignment + tile_assignment TYPE ty_tile_assignment, + + END OF ty_item, + + ty_items TYPE STANDARD TABLE OF ty_item WITH DEFAULT KEY. + + + TYPES: + "!

Section

+ "! section + BEGIN OF ty_section, + + "!

ID

+ "! ID + "! $required + id TYPE c LENGTH 35, + + "!

Title

+ "! Title + title TYPE c LENGTH 100, + + "!

Items

+ "! Items + items TYPE ty_items, + + END OF ty_section, + + ty_sections TYPE STANDARD TABLE OF ty_section WITH DEFAULT KEY. + + + TYPES: + "!

Fiori Launchpad Page Template

+ "! Fiori launchpad page template + BEGIN OF ty_main, + + "!

Format Version

+ "! Format version + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + + "!

Header

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

General Information

+ "! General information + "! $required + general_information TYPE ty_general_information, + + "!

Sections

+ "! Sections + sections TYPE ty_sections, + + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/uipg/type/zif_aff_uipg_v1.intf.json b/file-formats/uipg/type/zif_aff_uipg_v1.intf.json new file mode 100644 index 000000000..6b4f2c4d4 --- /dev/null +++ b/file-formats/uipg/type/zif_aff_uipg_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "Page Template: AFF Type v.1", + "originalLanguage": "en" + } +} diff --git a/file-formats/uipg/uipg-v1.json b/file-formats/uipg/uipg-v1.json new file mode 100644 index 000000000..b26339637 --- /dev/null +++ b/file-formats/uipg/uipg-v1.json @@ -0,0 +1,254 @@ +{ + "$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/uipg/uipg-v1.json", + "title": "Fiori Launchpad Page Template", + "description": "Fiori launchpad page template", + "type": "object", + "properties": { + "formatVersion": { + "title": "Format Version", + "description": "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": 100 + }, + "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", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "generalInformation": { + "title": "General Information", + "description": "General information", + "type": "object", + "properties": { + "title": { + "title": "Title", + "description": "Title visible to the enduser", + "type": "string", + "maxLength": 100 + }, + "mergeId": { + "title": "Merge ID", + "description": "Merge ID for merging during run-time", + "type": "string", + "maxLength": 35 + } + }, + "additionalProperties": false, + "required": [ + "title" + ] + }, + "sections": { + "title": "Sections", + "description": "Sections", + "type": "array", + "items": { + "title": "Section", + "description": "section", + "type": "object", + "properties": { + "id": { + "title": "ID", + "description": "ID", + "type": "string", + "maxLength": 35 + }, + "title": { + "title": "Title", + "description": "Title", + "type": "string", + "maxLength": 100 + }, + "items": { + "title": "Items", + "description": "Items", + "type": "array", + "items": { + "title": "Item", + "description": "Item", + "type": "object", + "properties": { + "id": { + "title": "ID", + "description": "ID", + "type": "string", + "maxLength": 35 + }, + "type": { + "title": "Type", + "description": "Type", + "type": "string", + "enum": [ + "tileAssignment" + ], + "enumTitles": [ + "Tile Assignment" + ], + "enumDescriptions": [ + "Tile assignment" + ], + "default": "tileAssignment" + }, + "tileAssignment": { + "title": "Tile Assignment", + "description": "Tile assignment", + "type": "object", + "properties": { + "tileKey": { + "title": "Tile Key", + "description": "Tile key", + "type": "object", + "properties": { + "catalogId": { + "title": "Catalog ID", + "description": "Catalog ID", + "type": "string", + "maxLength": 35 + }, + "catalogType": { + "title": "Catalog Type", + "description": "Catalog type", + "type": "string", + "maxLength": 3, + "default": "CAT" + }, + "id": { + "title": "Catalog Item ID", + "description": "Catalog Item ID", + "type": "string", + "maxLength": 50 + } + }, + "additionalProperties": false, + "required": [ + "catalogId", + "id" + ] + }, + "tileDisplayFormat": { + "title": "Tile Display Format", + "description": "Describes how the tile is rendered during run-time", + "type": "string", + "enum": [ + "standard", + "wide", + "flat", + "flatWide", + "link" + ], + "enumTitles": [ + "Standard Tile", + "Wide Tile", + "Flat Tile", + "Flat Wide Tile", + "Link" + ], + "enumDescriptions": [ + "Standard tile", + "Wide tile", + "Flat tile", + "Flat wide tile", + "Link" + ], + "default": "standard" + }, + "targetMappingKey": { + "title": "Target Mapping Key", + "description": "Target mapping key", + "type": "object", + "properties": { + "catalogId": { + "title": "Catalog ID", + "description": "Catalog ID", + "type": "string", + "maxLength": 35 + }, + "catalogType": { + "title": "Catalog Type", + "description": "Catalog type", + "type": "string", + "maxLength": 3, + "default": "CAT" + }, + "id": { + "title": "Catalog Item ID", + "description": "Catalog Item ID", + "type": "string", + "maxLength": 50 + } + }, + "additionalProperties": false, + "required": [ + "catalogId", + "id" + ] + } + }, + "additionalProperties": false, + "required": [ + "tileKey" + ] + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation" + ] +}