-
Notifications
You must be signed in to change notification settings - Fork 69
[EDOI] Add new object types EDOI #681
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
base: main
Are you sure you want to change the base?
Changes from all commits
a8ec8b7
499d83a
e1e96b2
ecdefa0
3a2e9b9
6b8c5b2
a158a2a
2759148
bbc4f1b
1e192f0
63a1453
167be48
dedf71f
47369f3
3a1ecf4
fdc3759
c7e09f2
a76b5ff
c6add98
39bee5a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# EDOI File Format | ||
|
||
File | Cardinality | Definition | Schema | Example | ||
:--- | :--- | :--- | :--- | :--- | ||
`<name>.edoi.json` | 1 | [`zif_aff_edoi_v1.intf.abap`](./type/zif_aff_edoi_v1.intf.abap) | [`edoi-v1.json`](./edoi-v1.json) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
{ | ||
"$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/edoi/edoi-v1.json", | ||
"title": "eDocument Interface", | ||
"description": "eDocument interface", | ||
"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": 100 | ||
}, | ||
"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": { | ||
"interfaceDirection": { | ||
"title": "Interface Direction", | ||
"description": "Interface direction", | ||
"type": "string", | ||
"enum": [ | ||
"outbound", | ||
"inbound" | ||
], | ||
"enumTitles": [ | ||
"Outbound", | ||
"Inbound" | ||
], | ||
"enumDescriptions": [ | ||
"Outbound", | ||
"Inbound" | ||
], | ||
"default": "outbound" | ||
} | ||
}, | ||
"additionalProperties": false, | ||
"required": [ | ||
"interfaceDirection" | ||
] | ||
}, | ||
"interfaceVersions": { | ||
"title": "Interface Versions", | ||
"description": "Interface versions", | ||
"type": "array", | ||
"uniqueItems": true, | ||
"items": { | ||
"title": "Interface Version", | ||
"description": "eDocument interface version", | ||
"type": "object", | ||
"properties": { | ||
"version": { | ||
"title": "Version", | ||
"description": "Version", | ||
"type": "integer", | ||
"minimum": 1, | ||
"maximum": 9999 | ||
}, | ||
"description": { | ||
"title": "Description", | ||
"description": "Description", | ||
"type": "string", | ||
"maxLength": 30 | ||
}, | ||
"activeFrom": { | ||
"title": "Active From", | ||
"description": "Active from", | ||
"type": "string", | ||
"format": "date-time" | ||
}, | ||
"communicationAttribute": { | ||
"title": "Communication Integration Attributes", | ||
"description": "Communication integration attributes", | ||
"type": "object", | ||
"properties": { | ||
"processType": { | ||
"title": "Process Type", | ||
"description": "DRC process type", | ||
"type": "string", | ||
"maxLength": 50 | ||
}, | ||
"processVersion": { | ||
"title": "Process Version", | ||
"description": "DRC process version", | ||
"type": "string", | ||
"maxLength": 20 | ||
}, | ||
"processSubtype": { | ||
"title": "Process Subtype", | ||
"description": "DRC process subtype", | ||
"type": "string", | ||
"maxLength": 50 | ||
}, | ||
"drcAction": { | ||
"title": "Action", | ||
"description": "DRC process action", | ||
"type": "string", | ||
"maxLength": 30 | ||
}, | ||
"responseInterface": { | ||
"title": "Response Interface", | ||
"description": "eDoc response interface", | ||
"type": "string", | ||
"maxLength": 30 | ||
}, | ||
"responseInterfaceVersion": { | ||
"title": "Response Interface Version", | ||
"description": "Response interface version", | ||
"type": "integer", | ||
"minimum": 1, | ||
"maximum": 9999 | ||
} | ||
}, | ||
"additionalProperties": false | ||
} | ||
}, | ||
"additionalProperties": false, | ||
"required": [ | ||
"version", | ||
"description", | ||
"activeFrom", | ||
"communicationAttribute" | ||
] | ||
} | ||
} | ||
}, | ||
"additionalProperties": false, | ||
"required": [ | ||
"formatVersion", | ||
"header", | ||
"generalInformation", | ||
"interfaceVersions" | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"formatVersion": "1", | ||
"header": { | ||
"description": "France: Customer Invoice Request", | ||
"originalLanguage": "en" | ||
}, | ||
"generalInformation": { | ||
"interfaceDirection": "outbound" | ||
}, | ||
"interfaceVersions": [ | ||
{ | ||
"version": 1, | ||
"description": "Initial Version", | ||
"activeFrom": "01.01.2025", | ||
"communicationAttribute": { | ||
"processType": "CUSTOMER_INVOICE", | ||
"processVersion": "1.0.0", | ||
"processSubtype": "DOMESTIC", | ||
"drcAction": "TRANSMIT", | ||
"responseInterface": "INVOICER", | ||
"responseInterfaceVersion": 1 | ||
} | ||
}, | ||
{ | ||
"version": 2, | ||
"description": "Version 2", | ||
"activeFrom": "01.07.2025", | ||
"communicationAttribute": { | ||
"processType": "CUSTOMER_INVOICE", | ||
"processVersion": "1.1.0", | ||
"processSubtype": "DOMESTIC", | ||
"drcAction": "TRANSMIT", | ||
"responseInterface": "INVOICER", | ||
"responseInterfaceVersion": 2 | ||
} | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,107 @@ | ||||||||||||||||||
INTERFACE zif_aff_edoi_v1 PUBLIC. | ||||||||||||||||||
|
||||||||||||||||||
"! <p class="shorttext">Interface Direction</p> | ||||||||||||||||||
"! Interface direction | ||||||||||||||||||
"! $values {@link zif_aff_edoi_v1.data:co_interface_direction} | ||||||||||||||||||
"! $default {@link zif_aff_edoi_v1.data:co_interface_direction.outbound} | ||||||||||||||||||
TYPES ty_interface_direction TYPE c LENGTH 1. | ||||||||||||||||||
CONSTANTS: | ||||||||||||||||||
"! <p class="shorttext">Interface Direction</p> | ||||||||||||||||||
"! Interface direction | ||||||||||||||||||
BEGIN OF co_interface_direction, | ||||||||||||||||||
"! <p class="shorttext">Outbound</p> | ||||||||||||||||||
"! Outbound | ||||||||||||||||||
outbound TYPE ty_interface_direction VALUE 'O', | ||||||||||||||||||
"! <p class="shorttext">Inbound</p> | ||||||||||||||||||
"! Inbound | ||||||||||||||||||
inbound TYPE ty_interface_direction VALUE 'I', | ||||||||||||||||||
END OF co_interface_direction. | ||||||||||||||||||
|
||||||||||||||||||
TYPES: | ||||||||||||||||||
"! <p class="shorttext">General Information</p> | ||||||||||||||||||
"! General information | ||||||||||||||||||
BEGIN OF ty_general_information, | ||||||||||||||||||
"! <p class="shorttext">Interface Direction</p> | ||||||||||||||||||
"! Interface direction | ||||||||||||||||||
"! $required | ||||||||||||||||||
interface_direction TYPE ty_interface_direction, | ||||||||||||||||||
END OF ty_general_information. | ||||||||||||||||||
|
||||||||||||||||||
TYPES: | ||||||||||||||||||
"! <p class="shorttext">Communication Integration Attributes</p> | ||||||||||||||||||
"! Communication integration attributes | ||||||||||||||||||
BEGIN OF ty_communication_attribute, | ||||||||||||||||||
"! <p class="shorttext">Process Type</p> | ||||||||||||||||||
"! DRC process type | ||||||||||||||||||
process_type TYPE c LENGTH 50, | ||||||||||||||||||
"! <p class="shorttext">Process Version</p> | ||||||||||||||||||
"! DRC process version | ||||||||||||||||||
process_version TYPE c LENGTH 20, | ||||||||||||||||||
"! <p class="shorttext">Process Subtype</p> | ||||||||||||||||||
"! DRC process subtype | ||||||||||||||||||
process_subtype TYPE c LENGTH 50, | ||||||||||||||||||
"! <p class="shorttext">Action</p> | ||||||||||||||||||
"! DRC process action | ||||||||||||||||||
drc_action TYPE c LENGTH 30, | ||||||||||||||||||
"! <p class="shorttext">Response Interface</p> | ||||||||||||||||||
"! eDoc response interface | ||||||||||||||||||
response_interface TYPE c LENGTH 30, | ||||||||||||||||||
"! <p class="shorttext">Response Interface Version</p> | ||||||||||||||||||
"! Response interface version | ||||||||||||||||||
"! $minimum 1 | ||||||||||||||||||
"! $maximum 9999 | ||||||||||||||||||
response_interface_version TYPE i, | ||||||||||||||||||
END OF ty_communication_attribute. | ||||||||||||||||||
|
||||||||||||||||||
TYPES: | ||||||||||||||||||
"! <p class="shorttext">Interface Version</p> | ||||||||||||||||||
"! eDocument interface version | ||||||||||||||||||
BEGIN OF ty_interface_version, | ||||||||||||||||||
"! <p class="shorttext">Version</p> | ||||||||||||||||||
"! Version | ||||||||||||||||||
"! $required | ||||||||||||||||||
"! $minimum 1 | ||||||||||||||||||
"! $maximum 9999 | ||||||||||||||||||
version TYPE i, | ||||||||||||||||||
"! <p class="shorttext">Description</p> | ||||||||||||||||||
"! Description | ||||||||||||||||||
"! $required | ||||||||||||||||||
description TYPE c LENGTH 30, | ||||||||||||||||||
"! <p class="shorttext">Active From</p> | ||||||||||||||||||
"! Active from | ||||||||||||||||||
"! $required | ||||||||||||||||||
active_from TYPE sy-datum, | ||||||||||||||||||
"! <p class="shorttext">Communication Integration Attributes</p> | ||||||||||||||||||
"! Communication integration attributes | ||||||||||||||||||
"! $required | ||||||||||||||||||
communication_attribute TYPE ty_communication_attribute, | ||||||||||||||||||
Comment on lines
+74
to
+77
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
You might even want to change the type to |
||||||||||||||||||
END OF ty_interface_version. | ||||||||||||||||||
|
||||||||||||||||||
"! <p class="shorttext">Interface Versions</p> | ||||||||||||||||||
"! Interface versions | ||||||||||||||||||
TYPES ty_interface_versions TYPE SORTED TABLE OF ty_interface_version WITH UNIQUE KEY version. | ||||||||||||||||||
|
||||||||||||||||||
TYPES: | ||||||||||||||||||
"! <p class="shorttext">eDocument Interface</p> | ||||||||||||||||||
"! eDocument interface | ||||||||||||||||||
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 zif_aff_types_v1=>ty_header_100_cloud, | ||||||||||||||||||
"! <p class="shorttext">General Information</p> | ||||||||||||||||||
"! General information | ||||||||||||||||||
"! $required | ||||||||||||||||||
general_information TYPE ty_general_information, | ||||||||||||||||||
"! <p class="shorttext">Interface Versions</p> | ||||||||||||||||||
"! Interface versions | ||||||||||||||||||
"! $required | ||||||||||||||||||
interface_versions TYPE ty_interface_versions, | ||||||||||||||||||
Comment on lines
+100
to
+103
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need |
||||||||||||||||||
|
||||||||||||||||||
END OF ty_main. | ||||||||||||||||||
|
||||||||||||||||||
ENDINTERFACE. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"formatVersion": "1", | ||
"header": { | ||
"description": "AFF for eDocument Interface (EDOI)", | ||
"originalLanguage": "en" | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None of these fields is required. However, component
communication_attribute
is required. This would allow entries like"communicationAttribute": {}
in the JSON data. I expect that this is not intended. Does it make sense to you to change one or more of these fields to required?