diff --git a/file-formats/aifa/README.md b/file-formats/aifa/README.md new file mode 100644 index 000000000..20df7edcf --- /dev/null +++ b/file-formats/aifa/README.md @@ -0,0 +1,5 @@ +# AIFA File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.aifa.json` | 1 | [`zif_aff_aifa_v1.intf.abap`](./type/zif_aff_aifa_v1.intf.abap) | [`aifa-v1.json`](./aifa-v1.json) diff --git a/file-formats/aifa/aifa-v1.json b/file-formats/aifa/aifa-v1.json new file mode 100644 index 000000000..7ac2f3114 --- /dev/null +++ b/file-formats/aifa/aifa-v1.json @@ -0,0 +1,184 @@ +{ + "$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/aifa/aifa-v1.json", + "title": "Action", + "description": "Action", + "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" + ] + }, + "generalInformation": { + "title": "General Information", + "description": "General information", + "type": "object", + "properties": { + "namespace": { + "title": "Namespace", + "description": "Namespace", + "type": "string", + "maxLength": 15 + }, + "aifAction": { + "title": "AIF Action", + "description": "AIF action", + "type": "string", + "maxLength": 20 + }, + "mainComponentType": { + "title": "Main Component Type", + "description": "Main component type", + "type": "string", + "maxLength": 30 + }, + "class": { + "title": "Class", + "description": "Class", + "type": "string", + "maxLength": 30 + } + }, + "additionalProperties": false, + "required": [ + "namespace", + "aifAction" + ] + }, + "fieldRestore": { + "title": "Fields To Restore", + "description": "Fields to restore", + "type": "array", + "items": { + "title": "Field To Restore", + "description": "Field to restore", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "Name", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "checkData": { + "title": "Checks", + "description": "Checks", + "type": "array", + "items": { + "title": "Check Details", + "description": "Check details", + "type": "object", + "properties": { + "checkObjName": { + "title": "Check", + "description": "Check", + "type": "string", + "maxLength": 30 + }, + "numericId": { + "title": "Numeric ID", + "description": "Numeric id", + "type": "string", + "maxLength": 3, + "pattern": "^[0-9]+$" + }, + "checkBehaviour": { + "title": "Check Behavior", + "description": "Check behavior", + "type": "string", + "enum": [ + "triggerError", + "ignoreData" + ], + "enumTitles": [ + "Treat As Error", + "Ignore Data" + ], + "enumDescriptions": [ + "Treat as error if check is not successful", + "Ignore data if check is not successful" + ], + "default": "ignoreData" + }, + "fieldName": { + "title": "Field Name", + "description": "Field name", + "type": "array", + "items": { + "title": "Field To Check", + "description": "Field to check", + "type": "object", + "properties": { + "name": { + "title": "Field Name", + "description": "Field name", + "type": "string" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false, + "required": [ + "checkObjName", + "numericId" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation" + ] +} diff --git a/file-formats/aifa/type/zif_aff_aifa_v1.intf.abap b/file-formats/aifa/type/zif_aff_aifa_v1.intf.abap new file mode 100644 index 000000000..a46b389ef --- /dev/null +++ b/file-formats/aifa/type/zif_aff_aifa_v1.intf.abap @@ -0,0 +1,103 @@ +INTERFACE zif_aff_aifa_v1 + PUBLIC. + + "! $values { @link zif_aff_aifa_v1.data:co_error_handling } + "! $default { @link zif_aff_aifa_v1.data:co_error_handling.ignore_data } + TYPES ty_error_handling_type TYPE c LENGTH 1. + CONSTANTS: + BEGIN OF co_error_handling, + "!

Treat As Error

+ "! Treat as error if check is not successful + trigger_error TYPE c LENGTH 1 VALUE '', + "!

Ignore Data

+ "! Ignore data if check is not successful + ignore_data TYPE c LENGTH 1 VALUE 'I', + END OF co_error_handling. + + TYPES: + "!

Field To Check

+ "! Field to check + BEGIN OF ty_field_to_check, + "!

Field Name

+ "! Field name + name TYPE string, + END OF ty_field_to_check, + "!

Fields To Check

+ "! Fields to check + ty_fields_to_check TYPE STANDARD TABLE OF ty_field_to_check WITH DEFAULT KEY. + + TYPES: + "!

General Information

+ "! General information + BEGIN OF ty_general_information, + "!

Namespace

+ "! Namespace + "! $required + namespace TYPE c LENGTH 15, + "!

AIF Action

+ "! AIF action + "! $required + aif_action TYPE c LENGTH 20, + "!

Main Component Type

+ "! Main component type + main_component_type TYPE zif_aff_types_v1=>ty_object_name_30, + "!

Class

+ "! Class + class TYPE zif_aff_types_v1=>ty_object_name_30, + END OF ty_general_information, + + "!

Check Details

+ "! Check details + BEGIN OF ty_check_details, + "!

Check

+ "! Check + "! $required + check_obj_name TYPE zif_aff_types_v1=>ty_object_name_30, + "!

Numeric ID

+ "! Numeric id + "! $required + numeric_id TYPE n LENGTH 3, + "!

Check Behavior

+ "! Check behavior + check_behaviour TYPE ty_error_handling_type, + "!

Field Name

+ "! Field name + field_name TYPE ty_fields_to_check, + END OF ty_check_details, + "!

Check Data

+ "! Check data + ty_checks TYPE STANDARD TABLE OF ty_check_details WITH DEFAULT KEY, + + "!

Field To Restore

+ "! Field to restore + BEGIN OF ty_field_to_restore, + "!

Name

+ "! Name + name TYPE string, + END OF ty_field_to_restore, + "!

Fields To Restore

+ "! Fields to restore + ty_fields_to_restore TYPE STANDARD TABLE OF ty_field_to_restore WITH DEFAULT KEY, + + "!

Action

+ "! Action + 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, + "!

General Information

+ "! General information + "! $required + general_information TYPE ty_general_information, + "!

Fields To Restore

+ "! Fields to restore + field_restore TYPE ty_fields_to_restore, + "!

Checks

+ "! Checks + check_data TYPE ty_checks, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/aifa/type/zif_aff_aifa_v1.intf.json b/file-formats/aifa/type/zif_aff_aifa_v1.intf.json new file mode 100644 index 000000000..5e857eabb --- /dev/null +++ b/file-formats/aifa/type/zif_aff_aifa_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF Type for AIFA (Action)", + "originalLanguage": "en" + } +}