Skip to content
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
a8ec8b7
Add files for EDOI & EDOT
i506210 Jan 27, 2025
499d83a
React to abaplint
i506210 Jan 27, 2025
e1e96b2
React to abaplint
i506210 Jan 27, 2025
ecdefa0
Merge branch 'main' into feature/edoi
i506210 Jan 27, 2025
3a2e9b9
React to comments from Michael Schneider
i506210 Jan 28, 2025
a1ec907
[EDOT] Add files for EDOT
i506210 Jan 28, 2025
6ed5d4c
reaction to comments
i506210 Feb 4, 2025
4c96d92
delete other object files in PR
i506210 Feb 4, 2025
a7025f3
correction
i506210 Feb 4, 2025
bdd762a
corrections
i506210 Feb 4, 2025
8848e73
Merge branch 'main' into feature/edot
i506210 Feb 13, 2025
1c07f07
Remove .DS_Store files
i506210 Feb 14, 2025
777533b
corrections
i506210 Feb 19, 2025
683a98d
corrections
i506210 Feb 26, 2025
6838a10
correction
i506210 Feb 26, 2025
ec64a94
correction
i506210 Feb 26, 2025
91e81a1
Merge branch 'main' into feature/edot
i506210 Mar 4, 2025
f69b218
corrections
i506210 Mar 10, 2025
9d3530c
correction to alignment
i506210 Mar 10, 2025
7164a56
corrections
i506210 Mar 24, 2025
6c1c9d7
corrections
i506210 Mar 24, 2025
b742a7f
corrections
i506210 Mar 24, 2025
58795a5
corrections
i506210 Mar 24, 2025
bc54473
correction
i506210 Mar 24, 2025
e90dd95
correction
i506210 Mar 24, 2025
013ffe6
correction
i506210 Mar 24, 2025
d644706
correction
i506210 Mar 24, 2025
48946ba
title changes
i506210 Jul 8, 2025
6f7986d
latest changes in label
i506210 Jul 8, 2025
33fafac
changes in alignment
i506210 Jul 8, 2025
eef4b02
correction to changes
i506210 Jul 25, 2025
9922e72
corrections
i506210 Jul 25, 2025
83d2cc9
corrections
i506210 Jul 25, 2025
5021759
corrections
i506210 Jul 25, 2025
4c90f28
correction
i506210 Jul 25, 2025
83ba32f
Merge branch 'main' into feature/edot
wurzka Jul 29, 2025
ac7f9f9
Fix line ending
wurzka Jul 29, 2025
2219ab3
corrections
i506210 Jul 30, 2025
aaed091
Merge branch 'main' into feature/edot
wurzka Aug 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions file-formats/edot/README.md
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example is missing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think having an example would also help me for the review

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Somehow I am unable to generate example, I created class and Transformation but its not clear to me in the report what object to be mentioned as input.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# EDOT File Format

File | Cardinality | Definition | Schema | Example
:--- | :--- | :--- | :--- | :---
`<name>.edot.json` | 1 | [`zif_aff_edot_v1.intf.abap`](./type/zif_aff_edot_v1.intf.abap) | [`edot-v1.json`](./edot-v1.json)
166 changes: 166 additions & 0 deletions file-formats/edot/edot-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
{
"$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/edot/edot-v1.json",
"title": "eDocument Type",
"description": "eDocument type",
"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": "eDocument type description",
"type": "string",
"maxLength": 30
},
"originalLanguage": {
"title": "Original Language",
"description": "Original language of the eDocument type",
"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": {
"tableName": {
"title": "eDocument Table Name",
"description": "eDocument table name",
"type": "string",
"maxLength": 30
},
"isArchivePreprocessNeeded": {
"title": "Preprocess Before Archiving",
"description": "Preprocess before archiving",
"type": "boolean"
},
"isCreatedInContingencyMode": {
"title": "Created in Contingency Mode",
"description": "Created in contingency mode",
"type": "boolean"
},
"contingencyEdocType": {
"title": "Contingency eDocument Type",
"description": "Contingency eDocument type",
"type": "string",
"maxLength": 10
}
},
"additionalProperties": false
},
"readAccessLogConfigurations": {
"title": "Read Access Log Configurations",
"description": "Read access log configurations",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Read Access Log Configuration",
"description": "Read access log configuration",
"type": "object",
"properties": {
"fileType": {
"title": "File Type",
"description": "File type",
"type": "string",
"maxLength": 10
},
"fileStructure": {
"title": "File Structure Type",
"description": "File structure type",
"type": "string",
"maxLength": 30
},
"fileDescription": {
"title": "File Description",
"description": "File description",
"type": "string",
"maxLength": 60
},
"isCloudRelevant": {
"title": "File Cloud Relevancy",
"description": "File cloud relevancy",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"fileType",
"fileStructure"
]
}
},
"edocSpecAdditionalTables": {
"title": "eDocument Type Specific Additional Tables",
"description": "eDocument type specific additional tables",
"type": "array",
"uniqueItems": true,
"items": {
"title": "eDocument Type Specific Additional Tables",
"description": "eDocument type specific additional tables",
"type": "object",
"properties": {
"sequenceNumber": {
"title": "Sequence Number",
"description": "Sequence number",
"type": "integer",
"minimum": 1,
"maximum": 9999
},
"tableName": {
"title": "Table Name",
"description": "Table name",
"type": "string",
"maxLength": 30
}
},
"additionalProperties": false,
"required": [
"sequenceNumber",
"tableName"
]
}
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"generalInformation"
]
}
26 changes: 26 additions & 0 deletions file-formats/edot/examples/z_aff_example_edot.edot_json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"formatVersion": "1",
"header": {
"description": "Example EDOT for file formats",
"originalLanguage": "en"
},
"generalInformation": {
"tableName": "EDOFRINV",
"isArchivePreprocessNeeded": false,
"isCreatedInContingencyMode": false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boolean values with value false aren't serialized by default.

Suggested change
"tableName": "EDOFRINV",
"isArchivePreprocessNeeded": false,
"isCreatedInContingencyMode": false
"tableName": "EDOFRINV"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't understand the comments, do I need to make any change here

},
"readAccessLogConfigurations": [
{
"fileType": "REQUEST",
"fileStructure": "EDO_FR_INV_INVOICE_TYPE",
"fileDescription": "eDocument France: Invoice Request",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just an idea. I am not sure whether this makes sense:

Almost all fields start with "file". I am not sure, but I was wondering whether it make sense to add "files" to the name of the array.

"isCloudRelevant": false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boolean values with value false aren't serialized by default.

Suggested change
"fileDescription": "eDocument France: Invoice Request",
"isCloudRelevant": false
"fileDescription": "eDocument France: Invoice Request"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same - I didn't understand the comments, do I need to make any change here

}
],
"edocSpecAdditionalTables": [
{
"sequenceNumber": 1,
"tableName": "EDOFRINV1"
}
]
}
104 changes: 104 additions & 0 deletions file-formats/edot/type/zif_aff_edot_v1.intf.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
"! <p class="shorttext synchronized">AFF for eDocument Type (EDOT)</p>
"! eDocument types that can be used in eInvoice process
INTERFACE zif_aff_edot_v1
PUBLIC.

TYPES:
"! <p class="shorttext">Read Access Log Configuration</p>
"! Read access log configuration
BEGIN OF ty_read_access_log_config,
"! <p class="shorttext">File Type</p>
"! File type
"! $required
file_type TYPE c LENGTH 10,
"! <p class="shorttext">File Structure Type</p>
"! File structure type
"! $required
file_structure TYPE c LENGTH 30,
"! <p class="shorttext">File Description</p>
"! File description
file_description TYPE c LENGTH 60,
"! <p class="shorttext">File Cloud Relevancy</p>
"! File cloud relevancy
is_cloud_relevant TYPE abap_bool,
END OF ty_read_access_log_config.
"! <p class="shorttext">Read Access Log Configurations</p>
"! Read access log configurations
TYPES ty_read_access_log_configs TYPE SORTED TABLE OF ty_read_access_log_config WITH UNIQUE KEY file_type.
TYPES:
"! <p class="shorttext">eDocument Type Specific Additional Tables</p>
"! eDocument type specific additional tables
BEGIN OF ty_additional_table,
"! <p class="shorttext">Sequence Number</p>
"! Sequence number
"! $required
"! $minimum 1
"! $maximum 9999
sequence_number TYPE i,
"! <p class="shorttext">Table Name</p>
"! Table name
"! $required
table_name TYPE zif_aff_types_v1=>ty_object_name_30,
END OF ty_additional_table.
"! <p class="shorttext">Read Access Log Configuration</p>
"! Read access log configuration
TYPES ty_additional_tables TYPE SORTED TABLE OF ty_additional_table WITH UNIQUE KEY sequence_number.
TYPES:
"! <p class="shorttext">General Information</p>
"! General information
BEGIN OF ty_general_information,
"! <p class="shorttext">eDocument Table Name</p>
"! eDocument table name
table_name TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Preprocess Before Archiving</p>
"! Preprocess before archiving
is_archive_preprocess_needed TYPE abap_bool,
"! <p class="shorttext">Created in Contingency Mode</p>
"! Created in contingency mode
is_created_in_contingency_mode TYPE abap_bool,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you align the field names and the title's please?

Furthermore, is any field of general_information a $required field?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfortunately only name & description are manditory which are not part of gerneral information anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

corrected the field names and labels

"! <p class="shorttext">Contingency eDocument Type</p>
"! Contingency eDocument type
contingency_edoc_type TYPE c LENGTH 10,
END OF ty_general_information.
TYPES:
"! <p class="shorttext">Header for EDOT object</p>
"! The header for an ABAP main object (without source code) with a description of 30 characters (no key user)
BEGIN OF ty_header_30_cloud,
"! <p class="shorttext">Description</p>
"! eDocument type description
"! $required
description TYPE c LENGTH 30,
"! <p class="shorttext">Original Language</p>
"! Original language of the eDocument type
"! $required
original_language TYPE sy-langu,
"! <p class="shorttext">ABAP Language Version</p>
"! ABAP language version
"! $values {@link zif_aff_types_v1.data:co_abap_language_version_cloud}
"! $default {@link zif_aff_types_v1.data:co_abap_language_version_cloud.standard}
abap_language_version TYPE zif_aff_types_v1=>ty_abap_language_version_cloud,
END OF ty_header_30_cloud.
TYPES:
"! <p class="shorttext">eDocument Type</p>
"! eDocument type
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 ty_header_30_cloud,
"! <p class="shorttext">General Information</p>
"! General information
"! $required
general_information TYPE ty_general_information,
"! <p class="shorttext">Read Access Log Configurations</p>
"! Read access log configurations
read_access_log_configurations TYPE ty_read_access_log_configs,
"! <p class="shorttext">eDocument Type Specific Additional Tables</p>
"! eDocument type specific additional tables
edoc_spec_additional_tables TYPE ty_additional_tables,
END OF ty_main.
ENDINTERFACE.
7 changes: 7 additions & 0 deletions file-formats/edot/type/zif_aff_edot_v1.intf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"formatVersion": "1",
"header": {
"description": "AFF for eDocument Type (EDOT)",
"originalLanguage": "en"
}
}
Loading