Skip to content

Commit

Permalink
[UIPG] Add new object type UIPG (#555)
Browse files Browse the repository at this point in the history
* Creation of AFF type UIPG

* Run ABAP cleaner on Interface

* Manual Adjustment to generated artifacts

* Manual Adjustment to generated README

* Update file-formats/uipg/README.md

Co-authored-by: Albert Mink <[email protected]>

* Implemented Feedback, slight restructure, better example

* ts_catalog_item_reference-->ty_catalog_item_reference

* simplified names more

* Why is there a redundant description? O.o

* Update file-formats/uipg/type/zif_aff_uipg_v1.intf.abap

Co-authored-by: Michael Schneider <[email protected]>

* Update file-formats/uipg/type/zif_aff_uipg_v1.intf.abap

Co-authored-by: Michael Schneider <[email protected]>

* Update file-formats/uipg/type/zif_aff_uipg_v1.intf.abap

Co-authored-by: Michael Schneider <[email protected]>

* Fix schema

---------

Co-authored-by: Albert Mink <[email protected]>
Co-authored-by: Katharina Wurz <[email protected]>
Co-authored-by: Michael Schneider <[email protected]>
  • Loading branch information
4 people authored Oct 2, 2023
1 parent 2cd0a39 commit e3fea79
Show file tree
Hide file tree
Showing 5 changed files with 634 additions and 0 deletions.
5 changes: 5 additions & 0 deletions file-formats/uipg/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# UIPG File Format

File | Cardinality | Definition | Schema | Example
:--- | :--- | :--- | :--- | :---
`<name>.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)
172 changes: 172 additions & 0 deletions file-formats/uipg/examples/z_page_template_example.uipg.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
]
}
]
}
196 changes: 196 additions & 0 deletions file-formats/uipg/type/zif_aff_uipg_v1.intf.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
INTERFACE zif_aff_uipg_v1
PUBLIC.

TYPES:
"! <p class="shorttext">General Information</p>
"! General information
BEGIN OF ty_general_information,

"! <p class="shorttext">Title</p>
"! Title visible to the enduser
"! $required
title TYPE zif_aff_types_v1=>ty_description_100,

"! <p class="shorttext">Merge ID</p>
"! Merge ID for merging during run-time
merge_id TYPE c LENGTH 35,

END OF ty_general_information.


"! <p class="shorttext">Catalog Type</p>
"! Catalog type
TYPES ty_catalog_type TYPE c LENGTH 3.


"! <p class="shorttext">Tile Display Format</p>
"! 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:
"! <p class="shorttext">Tile Display Format</p>
"! Tile display format
BEGIN OF co_tile_display_format,

"! <p class="shorttext">Standard Tile</p>
"! Standard tile
standard TYPE ty_tile_display_format VALUE 'TI',

"! <p class="shorttext">Wide Tile</p>
"! Wide tile
wide TYPE ty_tile_display_format VALUE 'TW',

"! <p class="shorttext">Flat Tile</p>
"! Flat tile
flat TYPE ty_tile_display_format VALUE 'FT',

"! <p class="shorttext">Flat Wide Tile</p>
"! Flat wide tile
flat_wide TYPE ty_tile_display_format VALUE 'FW',

"! <p class="shorttext">Link</p>
"! Link
link TYPE ty_tile_display_format VALUE 'LK',

END OF co_tile_display_format.


TYPES:
"! <p class="shorttext">Catalog Item Key</p>
"! Catalog item key
BEGIN OF ty_catalog_item_key,

"! <p class="shorttext">Catalog ID</p>
"! Catalog ID
"! $required
catalog_id TYPE c LENGTH 35,

"! <p class="shorttext">Catalog Type</p>
"! Catalog type
"! $default 'CAT'
catalog_type TYPE ty_catalog_type,

"! <p class="shorttext">Catalog Item ID</p>
"! Catalog Item ID
"! $required
id TYPE c LENGTH 50,

END OF ty_catalog_item_key.


TYPES:
"! <p class="shorttext">Tile Assignment</p>
"! Tile assignment
BEGIN OF ty_tile_assignment,

"! <p class="shorttext">Tile Key</p>
"! Tile key
"! $required
tile_key TYPE ty_catalog_item_key,

"! <p class="shorttext">Tile Display Format</p>
"! Describes how the tile is rendered during run-time
tile_display_format TYPE ty_tile_display_format,

"! <p class="shorttext">Target Mapping Key</p>
"! Target mapping key
target_mapping_key TYPE ty_catalog_item_key,

END OF ty_tile_assignment.


"! <p class="shorttext">Item Type</p>
"! 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:
"! <p class="shorttext">Item Type</p>
"! Item type
BEGIN OF co_item_type,

"! <p class="shorttext">Tile Assignment</p>
"! Tile assignment
tile_assignment TYPE ty_item_type VALUE 'TI',

END OF co_item_type.


TYPES:
"! <p class="shorttext">Item</p>
"! Item
BEGIN OF ty_item,

"! <p class="shorttext">ID</p>
"! ID
"! $required
id TYPE c LENGTH 35,

"! <p class="shorttext">Type</p>
"! Type
type TYPE ty_item_type,

"! <p class="shorttext">Tile Assignment</p>
"! Tile assignment
tile_assignment TYPE ty_tile_assignment,

END OF ty_item,

ty_items TYPE STANDARD TABLE OF ty_item WITH DEFAULT KEY.


TYPES:
"! <p class="shorttext">Section</p>
"! section
BEGIN OF ty_section,

"! <p class="shorttext">ID</p>
"! ID
"! $required
id TYPE c LENGTH 35,

"! <p class="shorttext">Title</p>
"! Title
title TYPE c LENGTH 100,

"! <p class="shorttext">Items</p>
"! Items
items TYPE ty_items,

END OF ty_section,

ty_sections TYPE STANDARD TABLE OF ty_section WITH DEFAULT KEY.


TYPES:
"! <p class="shorttext">Fiori Launchpad Page Template</p>
"! Fiori launchpad page template
BEGIN OF ty_main,

"! <p class="shorttext">Format Version</p>
"! Format version
"! $required
format_version TYPE zif_aff_types_v1=>ty_format_version,

"! <p class="shorttext">Header</p>
"! Header
"! $required
header TYPE zif_aff_types_v1=>ty_header_100_cloud,

"! <p class="shorttext">General Information</p>
"! General information
"! $required
general_information TYPE ty_general_information,

"! <p class="shorttext">Sections</p>
"! Sections
sections TYPE ty_sections,

END OF ty_main.

ENDINTERFACE.
7 changes: 7 additions & 0 deletions file-formats/uipg/type/zif_aff_uipg_v1.intf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"formatVersion": "1",
"header": {
"description": "Page Template: AFF Type v.1",
"originalLanguage": "en"
}
}
Loading

0 comments on commit e3fea79

Please sign in to comment.