Skip to content

[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

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
5 changes: 5 additions & 0 deletions file-formats/edoi/README.md
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)
180 changes: 180 additions & 0 deletions file-formats/edoi/edoi-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
{
"$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",
"maxLength": 1
}
},
"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"
}
},
"additionalProperties": false,
"required": [
"version",
"description",
"activeFrom"
]
}
},
"communicationAttributes": {
"title": "Communication Integration Attributes",
"description": "Communication integration attributes",
"type": "array",
"uniqueItems": true,
"items": {
"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,
"required": [
"processType",
"processVersion",
"processSubtype",
"drcAction",
"responseInterface",
"responseInterfaceVersion"
]
}
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"generalInformation",
"interfaceVersions",
"communicationAttributes"
]
}
116 changes: 116 additions & 0 deletions file-formats/edoi/type/zif_aff_edoi_v1.intf.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
INTERFACE zif_aff_edoi_v1 PUBLIC.

"! <p class="shorttext">Interface Direction</p>
"! Interface direction
"! $values {@link zif_aff_edoi_v1.data:co_edoc_int_direction}
"! $default {@link zif_aff_edoi_v1.data:co_edoc_int_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">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,
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">Communication Integration Attributes</p>
"! Communication integration attributes
BEGIN OF ty_communication_attribute,
"! <p class="shorttext">Process Type</p>
"! DRC process type
"! $required
process_type TYPE c LENGTH 50,
"! <p class="shorttext">Process Version</p>
"! DRC process version
"! $required
process_version TYPE c LENGTH 20,
"! <p class="shorttext">Process Subtype</p>
"! DRC process subtype
"! $required
process_subtype TYPE c LENGTH 50,
"! <p class="shorttext">Action</p>
"! DRC process action
"! $required
drc_action TYPE c LENGTH 30,
"! <p class="shorttext">Response Interface</p>
"! eDoc response interface
"! $required
response_interface TYPE c LENGTH 30,
"! <p class="shorttext">Response Interface Version</p>
"! Response interface version
"! $required
"! $minimum 1
"! $maximum 9999
response_interface_version TYPE i,

END OF ty_communication_attribute.
"! <p class="shorttext">Interface Versions</p>
"! eDocument interface versions
TYPES ty_communication_attributes TYPE SORTED TABLE OF ty_communication_attribute WITH UNIQUE KEY process_type.


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,
"! <p class="shorttext">Communication Integration Attributes</p>
"! Communication integration attributes
"! $required
communication_attributes TYPE ty_communication_attributes,

END OF ty_main.

ENDINTERFACE.
7 changes: 7 additions & 0 deletions file-formats/edoi/type/zif_aff_edoi_v1.intf.json
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"
}
}
Loading