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
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
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)
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
},
"contingencyMode": {
"title": "Created in Contingency Mode",
"description": "Created in contingency mode",
"type": "boolean"
},
"contingencyEdocType": {
"title": "eDocument Type Created Using Contingency",
"description": "eDocument type created using contingency",
"type": "string",
"maxLength": 10
},
"archivePreprocess": {
"title": "Preprocess Before Archiving",
"description": "Preprocess before archiving",
"type": "boolean"
}
},
"additionalProperties": false
},
"edocumentSralConfiguration": {
"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"
]
}
105 changes: 105 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,105 @@
"! <p class="shorttext synchronized" lang="en">eDocument Type</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">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">eDocument Type Created Using Contingency</p>
"! eDocument type created using contingency
contingency_edoc_type TYPE c LENGTH 10,
"! <p class="shorttext">Preprocess Before Archiving</p>
"! Preprocess before archiving
archive_preprocess TYPE abap_bool,
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
edocument_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": "eDocument Type",
"originalLanguage": "en"
}
}
Loading