From 2241145ae9b33cd075be02e19ed08c03ee29e4d1 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 13 Mar 2026 11:31:12 +0100 Subject: [PATCH 01/17] DOMA: add longtexts --- file-formats/zif_aff_longtexts_v1.intf.abap | 8 ++++++++ file-formats/zif_aff_longtexts_v1.intf.json | 7 +++++++ 2 files changed, 15 insertions(+) create mode 100644 file-formats/zif_aff_longtexts_v1.intf.abap create mode 100644 file-formats/zif_aff_longtexts_v1.intf.json diff --git a/file-formats/zif_aff_longtexts_v1.intf.abap b/file-formats/zif_aff_longtexts_v1.intf.abap new file mode 100644 index 000000000..e858970bb --- /dev/null +++ b/file-formats/zif_aff_longtexts_v1.intf.abap @@ -0,0 +1,8 @@ +INTERFACE zif_aff_longtexts_v1 PUBLIC. + + TYPES: BEGIN OF tline_s, + tdformat TYPE c LENGTH 2, + tdline TYPE c LENGTH 72, + END OF tline_s. + +ENDINTERFACE. diff --git a/file-formats/zif_aff_longtexts_v1.intf.json b/file-formats/zif_aff_longtexts_v1.intf.json new file mode 100644 index 000000000..a7bbb899f --- /dev/null +++ b/file-formats/zif_aff_longtexts_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "Common types for longtexts", + "originalLanguage": "en" + } +} From 4c7f1d08678297b9c410ae3954e6a2b830382d24 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 13 Mar 2026 11:32:48 +0100 Subject: [PATCH 02/17] update --- file-formats/zif_aff_longtexts_v1.intf.abap | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/file-formats/zif_aff_longtexts_v1.intf.abap b/file-formats/zif_aff_longtexts_v1.intf.abap index e858970bb..09d564c70 100644 --- a/file-formats/zif_aff_longtexts_v1.intf.abap +++ b/file-formats/zif_aff_longtexts_v1.intf.abap @@ -1,8 +1,22 @@ +"!

Long text types

+"! Types for AFF long texts INTERFACE zif_aff_longtexts_v1 PUBLIC. - TYPES: BEGIN OF tline_s, - tdformat TYPE c LENGTH 2, - tdline TYPE c LENGTH 72, - END OF tline_s. + TYPES: + "!

Long Text Line

+ "! Long text line with format and content + BEGIN OF ty_line, + "!

Format

+ "! Paragraph format, max. length 2 + "! $required + format TYPE c LENGTH 2, + "!

Line

+ "! Long text line content, max. length 72 + "! $required + line TYPE c LENGTH 72, + END OF ty_line, + "!

Long Text Lines

+ "! Long text lines + ty_lines TYPE STANDARD TABLE OF ty_line WITH DEFAULT KEY. ENDINTERFACE. From efd1820c10b8114bb933e7fbcc5a6ae709d906c5 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 13 Mar 2026 11:37:00 +0100 Subject: [PATCH 03/17] add to domain --- file-formats/doma/type/zif_aff_doma_v1.intf.abap | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/file-formats/doma/type/zif_aff_doma_v1.intf.abap b/file-formats/doma/type/zif_aff_doma_v1.intf.abap index 71c4c9c8f..43acb5c89 100644 --- a/file-formats/doma/type/zif_aff_doma_v1.intf.abap +++ b/file-formats/doma/type/zif_aff_doma_v1.intf.abap @@ -339,6 +339,10 @@ INTERFACE zif_aff_doma_v1 PUBLIC. "!

Fixed Value Appends

"! Fixed value appends fixed_value_appends TYPE ty_fixed_value_appends, + + "!

Documentation

+ "! Documentation for the domain + documentation TYPE zif_aff_longtexts_v1=>ty_lines, END OF ty_main. ENDINTERFACE. From f6975c5c893a6a5fd5bea96f7d8d3a60e842493e Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 13 Mar 2026 11:39:51 +0100 Subject: [PATCH 04/17] rename --- file-formats/doma/type/zif_aff_doma_v1.intf.abap | 2 +- ...gtexts_v1.intf.abap => zif_aff_longtexts_types_v1.intf.abap} | 2 +- ...gtexts_v1.intf.json => zif_aff_longtexts_types_v1.intf.json} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename file-formats/{zif_aff_longtexts_v1.intf.abap => zif_aff_longtexts_types_v1.intf.abap} (93%) rename file-formats/{zif_aff_longtexts_v1.intf.json => zif_aff_longtexts_types_v1.intf.json} (100%) diff --git a/file-formats/doma/type/zif_aff_doma_v1.intf.abap b/file-formats/doma/type/zif_aff_doma_v1.intf.abap index 43acb5c89..dcfad7843 100644 --- a/file-formats/doma/type/zif_aff_doma_v1.intf.abap +++ b/file-formats/doma/type/zif_aff_doma_v1.intf.abap @@ -342,7 +342,7 @@ INTERFACE zif_aff_doma_v1 PUBLIC. "!

Documentation

"! Documentation for the domain - documentation TYPE zif_aff_longtexts_v1=>ty_lines, + documentation TYPE zif_aff_longtexts_types_v1=>ty_lines, END OF ty_main. ENDINTERFACE. diff --git a/file-formats/zif_aff_longtexts_v1.intf.abap b/file-formats/zif_aff_longtexts_types_v1.intf.abap similarity index 93% rename from file-formats/zif_aff_longtexts_v1.intf.abap rename to file-formats/zif_aff_longtexts_types_v1.intf.abap index 09d564c70..7a3fdb921 100644 --- a/file-formats/zif_aff_longtexts_v1.intf.abap +++ b/file-formats/zif_aff_longtexts_types_v1.intf.abap @@ -1,6 +1,6 @@ "!

Long text types

"! Types for AFF long texts -INTERFACE zif_aff_longtexts_v1 PUBLIC. +INTERFACE zif_aff_longtexts_types_v1 PUBLIC. TYPES: "!

Long Text Line

diff --git a/file-formats/zif_aff_longtexts_v1.intf.json b/file-formats/zif_aff_longtexts_types_v1.intf.json similarity index 100% rename from file-formats/zif_aff_longtexts_v1.intf.json rename to file-formats/zif_aff_longtexts_types_v1.intf.json From eaf1b89857b239ac0db0c824646dcefc386521df Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 13 Mar 2026 11:43:02 +0100 Subject: [PATCH 05/17] update --- file-formats/doma/doma-v1.json | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/file-formats/doma/doma-v1.json b/file-formats/doma/doma-v1.json index add2c94e0..4217c72b1 100644 --- a/file-formats/doma/doma-v1.json +++ b/file-formats/doma/doma-v1.json @@ -364,6 +364,35 @@ }, "additionalProperties": false } + }, + "documentation": { + "title": "Documentation", + "description": "Documentation for the domain", + "type": "array", + "items": { + "title": "Long Text Line", + "description": "Long text line with format and content", + "type": "object", + "properties": { + "format": { + "title": "Format", + "description": "Paragraph format, max. length 2", + "type": "string", + "maxLength": 2 + }, + "line": { + "title": "Line", + "description": "Long text line content, max. length 72", + "type": "string", + "maxLength": 72 + } + }, + "additionalProperties": false, + "required": [ + "format", + "line" + ] + } } }, "additionalProperties": false, From 35f03e90dc26b5e2b06092ce1490d0b4cc6d8a71 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 10:36:49 +0200 Subject: [PATCH 06/17] cleanup --- file-formats/doma/doma-v1.json | 29 ------------------- .../doma/type/zif_aff_doma_v1.intf.abap | 4 --- 2 files changed, 33 deletions(-) diff --git a/file-formats/doma/doma-v1.json b/file-formats/doma/doma-v1.json index 4217c72b1..add2c94e0 100644 --- a/file-formats/doma/doma-v1.json +++ b/file-formats/doma/doma-v1.json @@ -364,35 +364,6 @@ }, "additionalProperties": false } - }, - "documentation": { - "title": "Documentation", - "description": "Documentation for the domain", - "type": "array", - "items": { - "title": "Long Text Line", - "description": "Long text line with format and content", - "type": "object", - "properties": { - "format": { - "title": "Format", - "description": "Paragraph format, max. length 2", - "type": "string", - "maxLength": 2 - }, - "line": { - "title": "Line", - "description": "Long text line content, max. length 72", - "type": "string", - "maxLength": 72 - } - }, - "additionalProperties": false, - "required": [ - "format", - "line" - ] - } } }, "additionalProperties": false, diff --git a/file-formats/doma/type/zif_aff_doma_v1.intf.abap b/file-formats/doma/type/zif_aff_doma_v1.intf.abap index dcfad7843..71c4c9c8f 100644 --- a/file-formats/doma/type/zif_aff_doma_v1.intf.abap +++ b/file-formats/doma/type/zif_aff_doma_v1.intf.abap @@ -339,10 +339,6 @@ INTERFACE zif_aff_doma_v1 PUBLIC. "!

Fixed Value Appends

"! Fixed value appends fixed_value_appends TYPE ty_fixed_value_appends, - - "!

Documentation

- "! Documentation for the domain - documentation TYPE zif_aff_longtexts_types_v1=>ty_lines, END OF ty_main. ENDINTERFACE. From 29762efe8169e8ff2916db7cf3a8b4030fd3d42e Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 10:40:22 +0200 Subject: [PATCH 07/17] wip --- file-formats/doma/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/file-formats/doma/README.md b/file-formats/doma/README.md index 787099218..39ed05369 100644 --- a/file-formats/doma/README.md +++ b/file-formats/doma/README.md @@ -11,3 +11,4 @@ DOMA | Domain | Dictionary File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- `.doma.json` | 1 | [`zif_aff_doma_v1.intf.abap`](./type/zif_aff_doma_v1.intf.abap) | [`doma-v1.json`](./doma-v1.json) | [`z_aff_example.doma.json`](./examples/z_aff_example.doma.json) +`.doma.longtext.json` | 0...1 | [`zif_aff_longtexts_types_v1.intf.abap`](../zif_aff_longtexts_types_v1.intf.abap) | [`longtexts-v1.json`](./longtexts-v1.json) | [`z_aff_example.doma.longtext.json`](./examples/z_aff_example.doma.longtext.json) From 4945951be8f1accba10bfeb32a1403e4ca16bc3f Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 10:59:25 +0200 Subject: [PATCH 08/17] update --- .../examples/z_aff_example.doma.longtext.json | 10 ++++++ file-formats/longtexts-v1.json | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 file-formats/doma/examples/z_aff_example.doma.longtext.json create mode 100644 file-formats/longtexts-v1.json diff --git a/file-formats/doma/examples/z_aff_example.doma.longtext.json b/file-formats/doma/examples/z_aff_example.doma.longtext.json new file mode 100644 index 000000000..90c0cd705 --- /dev/null +++ b/file-formats/doma/examples/z_aff_example.doma.longtext.json @@ -0,0 +1,10 @@ +[ + { + "format": "P1", + "line": "This is an example long text for the domain Z_AFF_EXAMPLE." + }, + { + "format": "P1", + "line": "It describes the meaning and usage of the domain values." + } +] diff --git a/file-formats/longtexts-v1.json b/file-formats/longtexts-v1.json new file mode 100644 index 000000000..beea0d93c --- /dev/null +++ b/file-formats/longtexts-v1.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/doma/longtexts-v1.json", + "title": "Long Text Lines", + "description": "Long text lines", + "type": "array", + "items": { + "title": "Long Text Line", + "description": "Long text line with format and content", + "type": "object", + "properties": { + "format": { + "title": "Format", + "description": "Paragraph format, max. length 2", + "type": "string", + "maxLength": 2 + }, + "line": { + "title": "Line", + "description": "Long text line content, max. length 72", + "type": "string", + "maxLength": 72 + } + }, + "additionalProperties": false, + "required": [ + "format", + "line" + ] + } +} From fbbb347e256c74631fd4e6a93ca995beef6bb61d Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:00:28 +0200 Subject: [PATCH 09/17] fix --- file-formats/doma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file-formats/doma/README.md b/file-formats/doma/README.md index 39ed05369..398960c7c 100644 --- a/file-formats/doma/README.md +++ b/file-formats/doma/README.md @@ -11,4 +11,4 @@ DOMA | Domain | Dictionary File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- `.doma.json` | 1 | [`zif_aff_doma_v1.intf.abap`](./type/zif_aff_doma_v1.intf.abap) | [`doma-v1.json`](./doma-v1.json) | [`z_aff_example.doma.json`](./examples/z_aff_example.doma.json) -`.doma.longtext.json` | 0...1 | [`zif_aff_longtexts_types_v1.intf.abap`](../zif_aff_longtexts_types_v1.intf.abap) | [`longtexts-v1.json`](./longtexts-v1.json) | [`z_aff_example.doma.longtext.json`](./examples/z_aff_example.doma.longtext.json) +`.doma.longtext.json` | 0...1 | [`zif_aff_longtexts_types_v1.intf.abap`](../zif_aff_longtexts_types_v1.intf.abap) | [`longtexts-v1.json`](../longtexts-v1.json) | [`z_aff_example.doma.longtext.json`](./examples/z_aff_example.doma.longtext.json) From c68e17f0d267ae6f2e3b8fa0f604e5fa81ddba45 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:01:12 +0200 Subject: [PATCH 10/17] exclude --- abaplint.jsonc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/abaplint.jsonc b/abaplint.jsonc index 6447b59da..f231e8a7d 100644 --- a/abaplint.jsonc +++ b/abaplint.jsonc @@ -1,19 +1,12 @@ { "global": { "files": "/file-formats/**/*.*", - "exclude": ["/examples/"], - "skipGeneratedGatewayClasses": true, - "skipGeneratedPersistentClasses": true, - "skipGeneratedFunctionGroups": true, - "useApackDependencies": false, - "skipIncludesWithoutMain": false + "exclude": ["/examples/"] }, "dependencies": [], "syntax": { "version": "v702", - "errorNamespace": ".", - "globalConstants": [], - "globalMacros": [] + "errorNamespace": "." }, "rules": { "align_parameters": true, @@ -195,7 +188,7 @@ "unsecure_fae": true, "unused_methods": true, "unused_types": { - "skipNames": ["ty_main","ty_header_80","ty_object_name_40"] + "skipNames": ["ty_main","ty_header_80","ty_object_name_40", "ty_lines"] }, "unused_variables": true, "use_bool_expression": true, From 35f22eaeccd322df64d478e31e110cf392383ea8 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:06:16 +0200 Subject: [PATCH 11/17] update example --- abaplint.jsonc | 2 +- .../examples/z_aff_example.doma.longtext.json | 23 +++++---- file-formats/doma/longtexts-v1.json | 49 +++++++++++++++++++ .../zif_aff_longtexts_types_v1.intf.abap | 11 +++++ 4 files changed, 74 insertions(+), 11 deletions(-) create mode 100644 file-formats/doma/longtexts-v1.json diff --git a/abaplint.jsonc b/abaplint.jsonc index f231e8a7d..e21510765 100644 --- a/abaplint.jsonc +++ b/abaplint.jsonc @@ -188,7 +188,7 @@ "unsecure_fae": true, "unused_methods": true, "unused_types": { - "skipNames": ["ty_main","ty_header_80","ty_object_name_40", "ty_lines"] + "skipNames": ["ty_main","ty_header_80","ty_object_name_40"] }, "unused_variables": true, "use_bool_expression": true, diff --git a/file-formats/doma/examples/z_aff_example.doma.longtext.json b/file-formats/doma/examples/z_aff_example.doma.longtext.json index 90c0cd705..4d9450fe0 100644 --- a/file-formats/doma/examples/z_aff_example.doma.longtext.json +++ b/file-formats/doma/examples/z_aff_example.doma.longtext.json @@ -1,10 +1,13 @@ -[ - { - "format": "P1", - "line": "This is an example long text for the domain Z_AFF_EXAMPLE." - }, - { - "format": "P1", - "line": "It describes the meaning and usage of the domain values." - } -] +{ + "formatVersion": "1", + "lines": [ + { + "format": "P1", + "line": "This is an example long text for the domain Z_AFF_EXAMPLE." + }, + { + "format": "P1", + "line": "It describes the meaning and usage of the domain values." + } + ] +} diff --git a/file-formats/doma/longtexts-v1.json b/file-formats/doma/longtexts-v1.json new file mode 100644 index 000000000..c74c99961 --- /dev/null +++ b/file-formats/doma/longtexts-v1.json @@ -0,0 +1,49 @@ +{ + "$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/doma/longtexts-v1.json", + "title": "ABAP Daemon", + "description": "ABAP daemon", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file format version", + "type": "string", + "const": "1" + }, + "lines": { + "title": "Start Type", + "description": "Start type", + "type": "array", + "items": { + "title": "Long Text Line", + "description": "Long text line with format and content", + "type": "object", + "properties": { + "format": { + "title": "Format", + "description": "Paragraph format, max. length 2", + "type": "string", + "maxLength": 2 + }, + "line": { + "title": "Line", + "description": "Long text line content, max. length 72", + "type": "string", + "maxLength": 72 + } + }, + "additionalProperties": false, + "required": [ + "format", + "line" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion" + ] +} diff --git a/file-formats/zif_aff_longtexts_types_v1.intf.abap b/file-formats/zif_aff_longtexts_types_v1.intf.abap index 7a3fdb921..147367a72 100644 --- a/file-formats/zif_aff_longtexts_types_v1.intf.abap +++ b/file-formats/zif_aff_longtexts_types_v1.intf.abap @@ -19,4 +19,15 @@ INTERFACE zif_aff_longtexts_types_v1 PUBLIC. "! Long text lines ty_lines TYPE STANDARD TABLE OF ty_line WITH DEFAULT KEY. + TYPES: + "!

ABAP Daemon

+ "! ABAP daemon + BEGIN OF ty_main, + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Start Type

+ "! Start type + lines TYPE ty_lines, + END OF ty_main. + ENDINTERFACE. From 6e1bf694e8cbfd2175f334d79fee45bfe2ce9752 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:15:26 +0200 Subject: [PATCH 12/17] fix --- file-formats/doma/longtexts-v1.json | 49 -------------------- file-formats/longtexts-v1.json | 70 ++++++++++++++++++----------- 2 files changed, 44 insertions(+), 75 deletions(-) delete mode 100644 file-formats/doma/longtexts-v1.json diff --git a/file-formats/doma/longtexts-v1.json b/file-formats/doma/longtexts-v1.json deleted file mode 100644 index c74c99961..000000000 --- a/file-formats/doma/longtexts-v1.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "$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/doma/longtexts-v1.json", - "title": "ABAP Daemon", - "description": "ABAP daemon", - "type": "object", - "properties": { - "formatVersion": { - "title": "ABAP File Format Version", - "description": "The ABAP file format version", - "type": "string", - "const": "1" - }, - "lines": { - "title": "Start Type", - "description": "Start type", - "type": "array", - "items": { - "title": "Long Text Line", - "description": "Long text line with format and content", - "type": "object", - "properties": { - "format": { - "title": "Format", - "description": "Paragraph format, max. length 2", - "type": "string", - "maxLength": 2 - }, - "line": { - "title": "Line", - "description": "Long text line content, max. length 72", - "type": "string", - "maxLength": 72 - } - }, - "additionalProperties": false, - "required": [ - "format", - "line" - ] - } - } - }, - "additionalProperties": false, - "required": [ - "formatVersion" - ] -} diff --git a/file-formats/longtexts-v1.json b/file-formats/longtexts-v1.json index beea0d93c..c74c99961 100644 --- a/file-formats/longtexts-v1.json +++ b/file-formats/longtexts-v1.json @@ -1,31 +1,49 @@ { + "$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/doma/longtexts-v1.json", - "title": "Long Text Lines", - "description": "Long text lines", - "type": "array", - "items": { - "title": "Long Text Line", - "description": "Long text line with format and content", - "type": "object", - "properties": { - "format": { - "title": "Format", - "description": "Paragraph format, max. length 2", - "type": "string", - "maxLength": 2 - }, - "line": { - "title": "Line", - "description": "Long text line content, max. length 72", - "type": "string", - "maxLength": 72 - } + "title": "ABAP Daemon", + "description": "ABAP daemon", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file format version", + "type": "string", + "const": "1" }, - "additionalProperties": false, - "required": [ - "format", - "line" - ] - } + "lines": { + "title": "Start Type", + "description": "Start type", + "type": "array", + "items": { + "title": "Long Text Line", + "description": "Long text line with format and content", + "type": "object", + "properties": { + "format": { + "title": "Format", + "description": "Paragraph format, max. length 2", + "type": "string", + "maxLength": 2 + }, + "line": { + "title": "Line", + "description": "Long text line content, max. length 72", + "type": "string", + "maxLength": 72 + } + }, + "additionalProperties": false, + "required": [ + "format", + "line" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion" + ] } From 32d485e755eec5953c171c94fa190c91018f712e Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:19:18 +0200 Subject: [PATCH 13/17] test --- json-validator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/json-validator.py b/json-validator.py index bb2c04a11..d6b2d337e 100644 --- a/json-validator.py +++ b/json-validator.py @@ -42,6 +42,11 @@ def match_schema_to_data( ): example_version = decode_json( example )[ 'formatVersion' ] json_schema = [ schema for schema in schemas if example_type in os.path.basename(schema).split( sep = '-' )[0] and example_version in os.path.basename(schema).split( sep='-')[1]] + + if example_type == 'longtext': + obj_type = os.path.basename(example).split(sep='.')[1] + json_schema = [schema for schema in json_schema if os.path.basename(os.path.dirname(schema)) == obj_type] + try: match[example] = json_schema.pop( 0 ) except IndexError: From e46141dad3a4f9da8e7c3b9840c995d93f4b311c Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 11 Apr 2026 11:30:43 +0200 Subject: [PATCH 14/17] fix --- file-formats/longtexts-v1.json | 2 +- json-validator.py | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/file-formats/longtexts-v1.json b/file-formats/longtexts-v1.json index c74c99961..40bdfb7a2 100644 --- a/file-formats/longtexts-v1.json +++ b/file-formats/longtexts-v1.json @@ -1,7 +1,7 @@ { "$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/doma/longtexts-v1.json", + "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/longtexts-v1.json", "title": "ABAP Daemon", "description": "ABAP daemon", "type": "object", diff --git a/json-validator.py b/json-validator.py index d6b2d337e..4b892ec08 100644 --- a/json-validator.py +++ b/json-validator.py @@ -9,7 +9,7 @@ msg_errors = list() msg_warning = list() -schemas = sorted( glob.glob('./file-formats/*/*.json') ) +schemas = sorted( glob.glob('./file-formats/*-v*.json') + glob.glob('./file-formats/*/*.json') ) examples = sorted( glob.glob('./file-formats/*/examples/*.json', recursive=True) ) def decode_json( file ): @@ -43,10 +43,6 @@ def match_schema_to_data( ): json_schema = [ schema for schema in schemas if example_type in os.path.basename(schema).split( sep = '-' )[0] and example_version in os.path.basename(schema).split( sep='-')[1]] - if example_type == 'longtext': - obj_type = os.path.basename(example).split(sep='.')[1] - json_schema = [schema for schema in json_schema if os.path.basename(os.path.dirname(schema)) == obj_type] - try: match[example] = json_schema.pop( 0 ) except IndexError: From ec91423275c7a4e6c2e6c5371f53eaa3890cc518 Mon Sep 17 00:00:00 2001 From: Lars HVam Date: Tue, 14 Apr 2026 18:23:40 +0200 Subject: [PATCH 15/17] rename files --- file-formats/{longtexts-v1.json => docu-v1.json} | 0 file-formats/doma/README.md | 2 +- ..._example.doma.longtext.json => z_aff_example.doma.docu.json} | 0 ...f_longtexts_types_v1.intf.abap => zif_aff_docu_v1.intf.abap} | 2 +- ...f_longtexts_types_v1.intf.json => zif_aff_docu_v1.intf.json} | 0 5 files changed, 2 insertions(+), 2 deletions(-) rename file-formats/{longtexts-v1.json => docu-v1.json} (100%) rename file-formats/doma/examples/{z_aff_example.doma.longtext.json => z_aff_example.doma.docu.json} (100%) rename file-formats/{zif_aff_longtexts_types_v1.intf.abap => zif_aff_docu_v1.intf.abap} (95%) rename file-formats/{zif_aff_longtexts_types_v1.intf.json => zif_aff_docu_v1.intf.json} (100%) diff --git a/file-formats/longtexts-v1.json b/file-formats/docu-v1.json similarity index 100% rename from file-formats/longtexts-v1.json rename to file-formats/docu-v1.json diff --git a/file-formats/doma/README.md b/file-formats/doma/README.md index 398960c7c..6c5e54e2a 100644 --- a/file-formats/doma/README.md +++ b/file-formats/doma/README.md @@ -11,4 +11,4 @@ DOMA | Domain | Dictionary File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- `.doma.json` | 1 | [`zif_aff_doma_v1.intf.abap`](./type/zif_aff_doma_v1.intf.abap) | [`doma-v1.json`](./doma-v1.json) | [`z_aff_example.doma.json`](./examples/z_aff_example.doma.json) -`.doma.longtext.json` | 0...1 | [`zif_aff_longtexts_types_v1.intf.abap`](../zif_aff_longtexts_types_v1.intf.abap) | [`longtexts-v1.json`](../longtexts-v1.json) | [`z_aff_example.doma.longtext.json`](./examples/z_aff_example.doma.longtext.json) +`.doma.docu.json` | 0...1 | [`zif_aff_docu_v1.intf.abap`](../zif_aff_docu_v1.intf.abap) | [`docu-v1.json`](../docu-v1.json) | [`z_aff_example.doma.docu.json`](./examples/z_aff_example.doma.docu.json) diff --git a/file-formats/doma/examples/z_aff_example.doma.longtext.json b/file-formats/doma/examples/z_aff_example.doma.docu.json similarity index 100% rename from file-formats/doma/examples/z_aff_example.doma.longtext.json rename to file-formats/doma/examples/z_aff_example.doma.docu.json diff --git a/file-formats/zif_aff_longtexts_types_v1.intf.abap b/file-formats/zif_aff_docu_v1.intf.abap similarity index 95% rename from file-formats/zif_aff_longtexts_types_v1.intf.abap rename to file-formats/zif_aff_docu_v1.intf.abap index 147367a72..ac683d22a 100644 --- a/file-formats/zif_aff_longtexts_types_v1.intf.abap +++ b/file-formats/zif_aff_docu_v1.intf.abap @@ -1,6 +1,6 @@ "!

Long text types

"! Types for AFF long texts -INTERFACE zif_aff_longtexts_types_v1 PUBLIC. +INTERFACE zif_aff_docu_v1 PUBLIC. TYPES: "!

Long Text Line

diff --git a/file-formats/zif_aff_longtexts_types_v1.intf.json b/file-formats/zif_aff_docu_v1.intf.json similarity index 100% rename from file-formats/zif_aff_longtexts_types_v1.intf.json rename to file-formats/zif_aff_docu_v1.intf.json From eee3d3eb0641c6e7182b4a503189c26a562c7af5 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Fri, 17 Apr 2026 12:05:39 +0200 Subject: [PATCH 16/17] Update title/description --- file-formats/zif_aff_docu_v1.intf.abap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/file-formats/zif_aff_docu_v1.intf.abap b/file-formats/zif_aff_docu_v1.intf.abap index ac683d22a..0d14538ab 100644 --- a/file-formats/zif_aff_docu_v1.intf.abap +++ b/file-formats/zif_aff_docu_v1.intf.abap @@ -20,8 +20,8 @@ INTERFACE zif_aff_docu_v1 PUBLIC. ty_lines TYPE STANDARD TABLE OF ty_line WITH DEFAULT KEY. TYPES: - "!

ABAP Daemon

- "! ABAP daemon + "!

Documentation

+ "! Documentation BEGIN OF ty_main, "! $required format_version TYPE zif_aff_types_v1=>ty_format_version, From e1afba436a90904b1b00dba63f02bf6519bf809a Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Fri, 17 Apr 2026 12:05:48 +0200 Subject: [PATCH 17/17] Update title/description --- file-formats/docu-v1.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/file-formats/docu-v1.json b/file-formats/docu-v1.json index 40bdfb7a2..b9fa1b209 100644 --- a/file-formats/docu-v1.json +++ b/file-formats/docu-v1.json @@ -3,7 +3,8 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/longtexts-v1.json", "title": "ABAP Daemon", - "description": "ABAP daemon", + "title": "Documentation", + "description": "documentation", "type": "object", "properties": { "formatVersion": {