diff --git a/file-formats/rvbc/README.md b/file-formats/rvbc/README.md new file mode 100644 index 000000000..7db78b976 --- /dev/null +++ b/file-formats/rvbc/README.md @@ -0,0 +1,5 @@ +# RVBC File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.rvbc.json` | 1 | [`zif_aff_rvbc_v1.intf.abap`](./type/zif_aff_rvbc_v1.intf.abap) | [`rvbc-v1.json`](./rvbc-v1.json) | [`z_aff_example_rvbc.rvbc.json`] diff --git a/file-formats/rvbc/examples/z_aff_example_rvbc.rvbc.json b/file-formats/rvbc/examples/z_aff_example_rvbc.rvbc.json new file mode 100644 index 000000000..c59a9df6c --- /dev/null +++ b/file-formats/rvbc/examples/z_aff_example_rvbc.rvbc.json @@ -0,0 +1,17 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example RVBC for ABAP File Formats", + "originalLanguage": "en" + }, + "bookletDefinition": { + "source": "predefined", + "status": "draft", + "application": "test.app.adt.editor", + "extensibilityMode": "supportedPredefinedQueries" + }, + "ina1Services": { + "predefined": "UI_INA_TST_FLIGHT_SERVBIND", + "custom": "YY1_TEST_INA1" + } +} diff --git a/file-formats/rvbc/rvbc-v1.json b/file-formats/rvbc/rvbc-v1.json new file mode 100644 index 000000000..f997bfa1e --- /dev/null +++ b/file-formats/rvbc/rvbc-v1.json @@ -0,0 +1,157 @@ +{ + "$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/rvbc/rvbc-v1.json", + "title": "Object Type RVBC", + "description": "Object type RVBC", + "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": 60 + }, + "originalLanguage": { + "title": "Original Language", + "description": "Original language of the ABAP object", + "type": "string", + "minLength": 2 + }, + "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" + ] + }, + "bookletDefinition": { + "title": "Booklet Definition", + "description": "Booklet definition", + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "Source", + "type": "string", + "enum": [ + "predefined", + "custom" + ], + "enumTitles": [ + "Predefined", + "Custom" + ], + "enumDescriptions": [ + "Predefined", + "Custom" + ], + "default": "predefined" + }, + "status": { + "title": "Status", + "description": "Status", + "type": "string", + "enum": [ + "draft", + "final" + ], + "enumTitles": [ + "Draft", + "Final" + ], + "enumDescriptions": [ + "Draft", + "Final" + ], + "default": "draft" + }, + "application": { + "title": "Fiori Application", + "description": "Fiori application", + "type": "string", + "maxLength": 70 + }, + "extensibilityMode": { + "title": "Extensibility Mode", + "description": "Extensibility mode", + "type": "string", + "enum": [ + "fullySupported", + "supportedPredefinedQueries", + "notSupported" + ], + "enumTitles": [ + "Fully Supported Including Custom Analytical Queries", + "Supported Only for Predefined Analytical Queries", + "Not Supported" + ], + "enumDescriptions": [ + "Fully supported including custom analytical queries", + "Supported only for predefined analytical queries", + "Not supported" + ], + "default": "notSupported" + } + }, + "additionalProperties": false + }, + "ina1Services": { + "title": "InA Services", + "description": "InA services", + "type": "object", + "properties": { + "predefined": { + "title": "Predefined InA Service", + "description": "Predefined InA service", + "type": "string", + "maxLength": 40 + }, + "custom": { + "title": "Custom InA Service", + "description": "Custom InA service", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header" + ] +} diff --git a/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.abap b/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.abap new file mode 100644 index 000000000..0cda41dd2 --- /dev/null +++ b/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.abap @@ -0,0 +1,100 @@ +"! AFF type for the object RVBC ( Review Booklets ) +INTERFACE zif_aff_rvbc_v1 + PUBLIC. + + TYPES ty_app_id TYPE c LENGTH 70. + TYPES ty_ina1_service_name TYPE c LENGTH 40. + + "! $values { @link zif_aff_rvbc_v1.data:co_extensibility_mode } + "! $default { @link zif_aff_rvbc_v1.data:co_extensibility_mode.not_supported } + TYPES ty_extensibility_mode TYPE n LENGTH 2. + CONSTANTS: + BEGIN OF co_extensibility_mode, + "!

Fully Supported Including Custom Analytical Queries

+ "! Fully supported including custom analytical queries + fully_supported TYPE ty_extensibility_mode VALUE 0, + "!

Supported Only for Predefined Analytical Queries

+ "! Supported only for predefined analytical queries + supported_predefined_queries TYPE ty_extensibility_mode VALUE 1, + "!

Not Supported

+ "! Not supported + not_supported TYPE ty_extensibility_mode VALUE 2, + END OF co_extensibility_mode. + + "! $values { @link zif_aff_rvbc_v1.data:co_source } + "! $default { @link zif_aff_rvbc_v1.data:co_source.predefined } + TYPES ty_source TYPE n LENGTH 1. + CONSTANTS: + BEGIN OF co_source, + "!

Predefined

+ "! Predefined + predefined TYPE ty_source VALUE 1, + "!

Custom

+ "! Custom + custom TYPE ty_source VALUE 2, + END OF co_source. + + "! $values { @link zif_aff_rvbc_v1.data:co_status } + "! $default { @link zif_aff_rvbc_v1.data:co_status.draft } + TYPES ty_status TYPE n LENGTH 1. + CONSTANTS: + BEGIN OF co_status, + "!

Draft

+ "! Draft + draft TYPE ty_status VALUE 1, + "!

Final

+ "! Final + final TYPE ty_status VALUE 2, + END OF co_status. + + TYPES: + "!

Review Booklet Definition

+ "! Review booklet definition + BEGIN OF ty_booklet_definition, + "!

Source

+ "! Source + source TYPE ty_source, + "!

Status

+ "! Status + status TYPE ty_status, + "!

Fiori Application

+ "! Fiori application + application TYPE ty_app_id, + "!

Extensibility Mode

+ "! Extensibility mode + extensibility_mode TYPE ty_extensibility_mode, + END OF ty_booklet_definition. + + TYPES: + "!

InA Services

+ "! InA Services + BEGIN OF ty_ina1_services, + "!

Predefined InA Service

+ "! Predefined InA service + predefined TYPE ty_ina1_service_name, + "!

Custom InA Service

+ "! Custom InA service + custom TYPE ty_ina1_service_name, + END OF ty_ina1_services. + + TYPES: + "!

Object Type RVBC

+ "! Object type RVBC + 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_60, + "!

Booklet Definition

+ "! Booklet definition + booklet_definition TYPE ty_booklet_definition, + "!

InA Services

+ "! InA services + ina1_services TYPE ty_ina1_services, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.json b/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.json new file mode 100644 index 000000000..5cdaf9e0d --- /dev/null +++ b/file-formats/rvbc/type/zif_aff_rvbc_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF type for RVBC ( Review Booklet )", + "originalLanguage": "en" + } +}