diff --git a/file-formats/aifd/README.md b/file-formats/aifd/README.md new file mode 100644 index 000000000..112129681 --- /dev/null +++ b/file-formats/aifd/README.md @@ -0,0 +1,5 @@ +# AIFD File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.aifd.json` | 1 | [`zif_aff_aifd_v1.intf.abap`](./type/zif_aff_aifd_v1.intf.abap) | [`aifd-v1.json`](./aifd-v1.json) | [`z_aff_example_aifd.aifd.json`](./examples/z_aff_example_aifd.aifd.json) diff --git a/file-formats/aifd/aifd-v1.json b/file-formats/aifd/aifd-v1.json new file mode 100644 index 000000000..b40b1861f --- /dev/null +++ b/file-formats/aifd/aifd-v1.json @@ -0,0 +1,86 @@ +{ + "$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/aifd/aifd-v1.json", + "title": "Deployment Scenario", + "description": "Deployment scenario", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file 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": 60 + }, + "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" + ] + }, + "aifInterfaces": { + "title": "AIF Interfaces", + "description": "AIF interfaces", + "type": "array", + "items": { + "title": "AIF Interface", + "description": "AIF interface", + "type": "object", + "properties": { + "interfaceObjectName": { + "title": "Interface Object Name", + "description": "Interface object name", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false, + "required": [ + "interfaceObjectName" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "aifInterfaces" + ] +} diff --git a/file-formats/aifd/examples/z_aff_example_aifd.aifd.json b/file-formats/aifd/examples/z_aff_example_aifd.aifd.json new file mode 100644 index 000000000..519255d51 --- /dev/null +++ b/file-formats/aifd/examples/z_aff_example_aifd.aifd.json @@ -0,0 +1,19 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example AIFD for ABAP File Format", + "originalLanguage": "en", + "abapLanguageVersion": "cloudDevelopment" + }, + "aifInterfaces":[ + { + "interfaceObjectName":"INT_OBJ_1" + }, + { + "interfaceObjectName":"/AIFTCUST_WS_I00001" + }, + { + "interfaceObjectName":"/AIFTCUST_WS_O00001" + } + ] +} diff --git a/file-formats/aifd/type/zif_aff_aifd_v1.intf.abap b/file-formats/aifd/type/zif_aff_aifd_v1.intf.abap new file mode 100644 index 000000000..06b45b2df --- /dev/null +++ b/file-formats/aifd/type/zif_aff_aifd_v1.intf.abap @@ -0,0 +1,31 @@ +INTERFACE zif_aff_aifd_v1 + PUBLIC. + TYPES: + "!

AIF Interface

+ "! AIF interface + BEGIN OF ty_aif_interface, + "!

Interface Object Name

+ "! Interface object name + "! $required + interface_object_name TYPE c LENGTH 40, + END OF ty_aif_interface, + + "!

AIF Interfaces

+ "! AIF interfaces + ty_aif_interfaces TYPE STANDARD TABLE OF ty_aif_interface WITH DEFAULT KEY, + + "!

Deployment Scenario

+ "! Deployment scenario + BEGIN OF ty_main, + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Header

+ "! Header + "! $required + header TYPE zif_aff_types_v1=>ty_header_60_cloud, + "!

AIF Interfaces

+ "! AIF interfaces + "! $required + aif_interfaces TYPE ty_aif_interfaces, + END OF ty_main. +ENDINTERFACE. diff --git a/file-formats/aifd/type/zif_aff_aifd_v1.intf.json b/file-formats/aifd/type/zif_aff_aifd_v1.intf.json new file mode 100644 index 000000000..8f6158533 --- /dev/null +++ b/file-formats/aifd/type/zif_aff_aifd_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF type for AIFD (Deployment Scenario)", + "originalLanguage": "en" + } +}