From 387c90a660d22b7cc2864b3a500c7d6d3ab9f5f9 Mon Sep 17 00:00:00 2001 From: NicoleG <95621896+D047539@users.noreply.github.com> Date: Mon, 7 Oct 2024 10:33:07 +0200 Subject: [PATCH 1/3] [AIFN] Add new object type AIFN (#658) Co-authored-by: Albert Mink --- file-formats/aifn/README.md | 5 ++ file-formats/aifn/aifn-v1.json | 78 +++++++++++++++++++ .../examples/z_aff_example_aifn.aifn.json | 11 +++ .../aifn/type/zif_aff_aifn_v1.intf.abap | 26 +++++++ .../aifn/type/zif_aff_aifn_v1.intf.json | 7 ++ 5 files changed, 127 insertions(+) create mode 100644 file-formats/aifn/README.md create mode 100644 file-formats/aifn/aifn-v1.json create mode 100644 file-formats/aifn/examples/z_aff_example_aifn.aifn.json create mode 100644 file-formats/aifn/type/zif_aff_aifn_v1.intf.abap create mode 100644 file-formats/aifn/type/zif_aff_aifn_v1.intf.json diff --git a/file-formats/aifn/README.md b/file-formats/aifn/README.md new file mode 100644 index 000000000..5a815770a --- /dev/null +++ b/file-formats/aifn/README.md @@ -0,0 +1,5 @@ +# AIFN File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.aifn.json` | 1 | [`zif_aff_aifn_v1.intf.abap`](./type/zif_aff_aifn_v1.intf.abap) | [`aifn-v1.json`](./aifn-v1.json) | [`z_aff_example_aifn.aifn.json`](./examples/z_aff_example_aifn.aifn.json) diff --git a/file-formats/aifn/aifn-v1.json b/file-formats/aifn/aifn-v1.json new file mode 100644 index 000000000..79763c91f --- /dev/null +++ b/file-formats/aifn/aifn-v1.json @@ -0,0 +1,78 @@ +{ + "$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/aifn/aifn-v1.json", + "title": "Namespace", + "description": "Namespace", + "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 + }, + "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": { + "aifNamespace": { + "title": "AIF Namespace", + "description": "AIF namespace", + "type": "string", + "maxLength": 6 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation" + ] +} diff --git a/file-formats/aifn/examples/z_aff_example_aifn.aifn.json b/file-formats/aifn/examples/z_aff_example_aifn.aifn.json new file mode 100644 index 000000000..48be51d2a --- /dev/null +++ b/file-formats/aifn/examples/z_aff_example_aifn.aifn.json @@ -0,0 +1,11 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example AIFN for ABAP File Format", + "originalLanguage": "en", + "abapLanguageVersion": "cloudDevelopment" + }, + "generalInformation":{ + "aifNamespace": "/AIFT" + } +} diff --git a/file-formats/aifn/type/zif_aff_aifn_v1.intf.abap b/file-formats/aifn/type/zif_aff_aifn_v1.intf.abap new file mode 100644 index 000000000..493f6acf6 --- /dev/null +++ b/file-formats/aifn/type/zif_aff_aifn_v1.intf.abap @@ -0,0 +1,26 @@ +INTERFACE zif_aff_aifn_v1 + PUBLIC. + TYPES: + "!

Namespace Details

+ "! Namespace details + BEGIN OF ty_general_information, + "!

AIF Namespace

+ "! AIF namespace + aif_namespace TYPE c LENGTH 6, + END OF ty_general_information, + + "!

Namespace

+ "! Namespace + 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_cloud, + "!

General Information

+ "! General information + "! $required + general_information TYPE ty_general_information, + END OF ty_main. +ENDINTERFACE. diff --git a/file-formats/aifn/type/zif_aff_aifn_v1.intf.json b/file-formats/aifn/type/zif_aff_aifn_v1.intf.json new file mode 100644 index 000000000..b3279ab75 --- /dev/null +++ b/file-formats/aifn/type/zif_aff_aifn_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF type for AIFN (Namespace)", + "originalLanguage": "en" + } +} From ede96b58f35e701ad8c32c548e433c7eef63dd19 Mon Sep 17 00:00:00 2001 From: Joerg Maier <137805625+JoergCMaier@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:25:37 +0200 Subject: [PATCH 2/3] Add new object logical external schema (DESD) (#618) Co-authored-by: Michael Schneider Co-authored-by: Katharina Wurz Co-authored-by: Nicolas Huber <80829269+huber-nicolas@users.noreply.github.com> --- file-formats/desd/README.md | 5 ++ file-formats/desd/desd-v1.json | 82 +++++++++++++++++++ .../examples/z_aff_example_desd.desd.json | 7 ++ .../desd/type/zif_aff_desd_v1.intf.abap | 35 ++++++++ .../desd/type/zif_aff_desd_v1.intf.json | 7 ++ 5 files changed, 136 insertions(+) create mode 100644 file-formats/desd/README.md create mode 100644 file-formats/desd/desd-v1.json create mode 100644 file-formats/desd/examples/z_aff_example_desd.desd.json create mode 100644 file-formats/desd/type/zif_aff_desd_v1.intf.abap create mode 100644 file-formats/desd/type/zif_aff_desd_v1.intf.json diff --git a/file-formats/desd/README.md b/file-formats/desd/README.md new file mode 100644 index 000000000..952a83f6d --- /dev/null +++ b/file-formats/desd/README.md @@ -0,0 +1,5 @@ +# DESD File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.desd.json` | 1 | [`zif_aff_desd_v1.intf.abap`](./type/zif_aff_desd_v1.intf.abap) | [`desd-v1.json`](./desd-v1.json) | [`z_aff_example_desd.desd.json`](./examples/z_aff_example_desd.desd.json) diff --git a/file-formats/desd/desd-v1.json b/file-formats/desd/desd-v1.json new file mode 100644 index 000000000..dd6a3dccb --- /dev/null +++ b/file-formats/desd/desd-v1.json @@ -0,0 +1,82 @@ +{ + "$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/desd/desd-v1.json", + "title": "CDS Logical External Schema", + "description": "CDS logical external schema", + "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", + "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": { + "defaultRemoteSchemaName": { + "title": "Default Remote Schema", + "description": "Default remote database schema name when configuring the connection details of logical external schema.", + "type": "string", + "maxLength": 256 + }, + "usesRouting": { + "title": "Uses Routing", + "description": "If true, the logical external schema can only be used in routed scenarios.", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header" + ] +} diff --git a/file-formats/desd/examples/z_aff_example_desd.desd.json b/file-formats/desd/examples/z_aff_example_desd.desd.json new file mode 100644 index 000000000..e4957ed43 --- /dev/null +++ b/file-formats/desd/examples/z_aff_example_desd.desd.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example DESD for ABAP file format", + "originalLanguage": "en" + } +} diff --git a/file-formats/desd/type/zif_aff_desd_v1.intf.abap b/file-formats/desd/type/zif_aff_desd_v1.intf.abap new file mode 100644 index 000000000..192071b71 --- /dev/null +++ b/file-formats/desd/type/zif_aff_desd_v1.intf.abap @@ -0,0 +1,35 @@ +INTERFACE zif_aff_desd_v1 + PUBLIC. + + TYPES: + + "!

General Information

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

Default Remote Schema

+ "! Default remote database schema name when configuring the connection + "! details of logical external schema. + default_remote_schema_name TYPE c LENGTH 256, + "!

Uses Routing

+ "! If true, the logical external schema can only be used + "! in routed scenarios. + uses_routing TYPE abap_bool, + END OF ty_general_information, + + "!

CDS Logical External Schema

+ "! CDS logical external schema + 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_cloud, + "!

General Information

+ "! General information + general_information TYPE ty_general_information, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/desd/type/zif_aff_desd_v1.intf.json b/file-formats/desd/type/zif_aff_desd_v1.intf.json new file mode 100644 index 000000000..f6b8faa2a --- /dev/null +++ b/file-formats/desd/type/zif_aff_desd_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "ABAP file format of DESD objects", + "originalLanguage": "en" + } +} From 8c921e82eab9836c0a250cdb9e56e80eb4745780 Mon Sep 17 00:00:00 2001 From: NicoleG <95621896+D047539@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:37:34 +0200 Subject: [PATCH 3/3] [AIFR] React on UX crosscheck review (#666) --- file-formats/aifr/aifr-v1.json | 8 ++++---- .../aifr/examples/z_aff_example_aifr.aifr.json | 2 +- file-formats/aifr/type/zif_aff_aifr_v1.intf.abap | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/file-formats/aifr/aifr-v1.json b/file-formats/aifr/aifr-v1.json index fb75dac96..abcb170b1 100644 --- a/file-formats/aifr/aifr-v1.json +++ b/file-formats/aifr/aifr-v1.json @@ -54,9 +54,9 @@ "originalLanguage" ] }, - "recipientDetails": { - "title": "Recipient Details", - "description": "Recipient details", + "generalInformation": { + "title": "General Information", + "description": "General information", "type": "object", "properties": { "namespace": { @@ -76,6 +76,6 @@ "required": [ "formatVersion", "header", - "recipientDetails" + "generalInformation" ] } diff --git a/file-formats/aifr/examples/z_aff_example_aifr.aifr.json b/file-formats/aifr/examples/z_aff_example_aifr.aifr.json index 88452e55a..2800238ac 100644 --- a/file-formats/aifr/examples/z_aff_example_aifr.aifr.json +++ b/file-formats/aifr/examples/z_aff_example_aifr.aifr.json @@ -5,7 +5,7 @@ "originalLanguage": "en", "abapLanguageVersion": "cloudDevelopment" }, - "recipientDetails":{ + "generalInformation":{ "namespace": "AIFNS" } } diff --git a/file-formats/aifr/type/zif_aff_aifr_v1.intf.abap b/file-formats/aifr/type/zif_aff_aifr_v1.intf.abap index 5c477abec..712920915 100644 --- a/file-formats/aifr/type/zif_aff_aifr_v1.intf.abap +++ b/file-formats/aifr/type/zif_aff_aifr_v1.intf.abap @@ -3,25 +3,25 @@ INTERFACE zif_aff_aifr_v1 TYPES: "!

Recipient Details

"! Recipient details - BEGIN OF ty_recipient_details, + BEGIN OF ty_general_information, "!

Namespace

"! Namespace of the recipient "! $required namespace TYPE c LENGTH 15, - END OF ty_recipient_details, + END OF ty_general_information, "!

Recipient

"! Recipient BEGIN OF ty_main, "! $required - format_version TYPE zif_aff_types_v1=>ty_format_version, + format_version TYPE zif_aff_types_v1=>ty_format_version, "!

Header

"! Header "! $required - header TYPE zif_aff_types_v1=>ty_header_60_cloud, - "!

Recipient Details

- "! Recipient details + header TYPE zif_aff_types_v1=>ty_header_60_cloud, + "!

General Information

+ "! General information "! $required - recipient_details TYPE ty_recipient_details, + general_information TYPE ty_general_information, END OF ty_main. ENDINTERFACE.