Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EDOT] Add new object EDOT #682

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
5 changes: 5 additions & 0 deletions file-formats/edot/README.md
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)
165 changes: 165 additions & 0 deletions file-formats/edot/edot-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
{
"$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
},
"archivePreprocess": {
"title": "Preprocess Before Archiving",
"description": "Preprocess before archiving",
"type": "boolean"
},
"contingencyMode": {
"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
},
"sralConfiguration": {
"title": "Additional Selection Fields",
"description": "Additional selection fields of validation report",
"type": "array",
"uniqueItems": true,
"items": {
"title": "SRAL Configuration Type",
"description": "SRAL configuration type",
"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"
]
}
},
"edocSpecAdditionalTable": {
"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": "string",
"maxLength": 10
},
"tableName": {
"title": "Table Name",
"description": "Table name",
"type": "string",
"maxLength": 30
}
},
"additionalProperties": false,
"required": [
"sequenceNumber",
"tableName"
]
}
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"generalInformation"
]
}
103 changes: 103 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,103 @@
"! <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">SRAL Configuration Type</p>
"! SRAL configuration type
BEGIN OF ty_sral_configuration,
"! <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_sral_configuration.
"! <p class="shorttext">SRAL Configuration</p>
"! SRAL configuration
TYPES ty_sral_configurations TYPE SORTED TABLE OF ty_sral_configuration 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
sequence_number TYPE c LENGTH 10,
"! <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">eDocument Type Specific Additional Tables</p>
"! eDocument type specific additional tables
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_edoc_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
archive_preprocess TYPE abap_bool,
"! <p class="shorttext">Created in Contingency Mode</p>
"! Created in contingency mode
contingency_mode TYPE abap_bool,

Choose a reason for hiding this comment

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

What is the contingency_mode referring to? to the edoc type or to the table?
Not really familiar with the topic, but it seems like it could belong to the table. Am I correct?
I would also like to understand the relationship between the contingency_mode and the contingency_edoc_type. Could it be that contingency_edoc_type is only relevant when contingency_mode is true?

Copy link
Author

Choose a reason for hiding this comment

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

Yes, contingency_edoc_type is relevant when contingency mode is activated.
Contingency is a process related to eInvoice solution that introduced by Government authorities (some countries) to process Invoice in offline instead of online submission when Tax authority server is down.

In our UI, user switch the invoice to contingency mode.

Choose a reason for hiding this comment

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

As discussed in the call, contingency_mode and the attribute below are moved to the bottom of the structure

Copy link
Author

Choose a reason for hiding this comment

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

Corrected as discussed

"! <p class="shorttext">Contingency eDocument Type</p>
"! Contingency eDocument type
contingency_edoc_type TYPE c LENGTH 10,
END OF ty_edoc_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_edoc_information,
"! <p class="shorttext">Additional Selection Fields</p>
"! Additional selection fields of validation report
sral_configuration TYPE ty_sral_configurations,
"! <p class="shorttext">eDocument Type Specific Additional Tables</p>
"! eDocument type specific additional tables
edoc_spec_additional_table 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