Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions file-formats/aifa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# AIFA File Format

File | Cardinality | Definition | Schema | Example
:--- | :--- | :--- | :--- | :---
`<name>.aifa.json` | 1 | [`zif_aff_aifa_v1.intf.abap`](./type/zif_aff_aifa_v1.intf.abap) | [`aifa-v1.json`](./aifa-v1.json)
184 changes: 184 additions & 0 deletions file-formats/aifa/aifa-v1.json
Original file line number Diff line number Diff line change
@@ -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": {
"number": {
"title": "Number",
"description": "Number",
"type": "string",
"maxLength": 3,
"pattern": "^[0-9]+$"
},
"checkObjName": {
"title": "Check",
"description": "Check",
"type": "string",
"maxLength": 30
},
"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": [
"number",
"checkObjName"
]
}
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"generalInformation"
]
}
103 changes: 103 additions & 0 deletions file-formats/aifa/type/zif_aff_aifa_v1.intf.abap
Original file line number Diff line number Diff line change
@@ -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,
"! <p class="shorttext">Treat As Error</p>
"! Treat as error if check is not successful
trigger_error TYPE c LENGTH 1 VALUE '',
"! <p class="shorttext">Ignore Data</p>
"! Ignore data if check is not successful
ignore_data TYPE c LENGTH 1 VALUE 'I',
END OF co_error_handling.

TYPES:
"! <p class="shorttext">Field To Check</p>
"! Field to check
BEGIN OF ty_field_to_check,
"! <p class="shorttext">Field Name</p>
"! Field name
name TYPE string,
END OF ty_field_to_check,
"! <p class="shorttext">Fields To Check</p>
"! Fields to check
ty_fields_to_check TYPE STANDARD TABLE OF ty_field_to_check WITH DEFAULT KEY.

TYPES:
"! <p class="shorttext">General Information</p>
"! General information
BEGIN OF ty_general_information,
"! <p class="shorttext">Namespace</p>
"! Namespace
"! $required
namespace TYPE c LENGTH 15,
"! <p class="shorttext">AIF Action</p>
"! AIF action
"! $required
aif_action TYPE c LENGTH 20,
"! <p class="shorttext">Main Component Type</p>
"! Main component type
main_component_type TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Class</p>
"! Class
class TYPE zif_aff_types_v1=>ty_object_name_30,
END OF ty_general_information,

"! <p class="shorttext">Check Details</p>
"! Check details
BEGIN OF ty_check_details,
"! <p class="shorttext">Number</p>
"! Number
"! $required
number TYPE n LENGTH 3,
"! <p class="shorttext">Check</p>
"! Check
"! $required
check_obj_name TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Check Behavior</p>
"! Check behavior
check_behaviour TYPE ty_error_handling_type,
"! <p class="shorttext">Field Name</p>
"! Field name
field_name TYPE ty_fields_to_check,
END OF ty_check_details,
"! <p class="shorttext">Check Data</p>
"! Check data
ty_checks TYPE STANDARD TABLE OF ty_check_details WITH DEFAULT KEY,

"! <p class="shorttext">Field To Restore</p>
"! Field to restore
BEGIN OF ty_field_to_restore,
"! <p class="shorttext">Name</p>
"! Name
name TYPE string,
END OF ty_field_to_restore,
"! <p class="shorttext">Fields To Restore</p>
"! Fields to restore
ty_fields_to_restore TYPE STANDARD TABLE OF ty_field_to_restore WITH DEFAULT KEY,

"! <p class="shorttext">Action</p>
"! Action
BEGIN OF ty_main,
"! $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_60_cloud,
"! <p class="shorttext">General Information</p>
"! General information
"! $required
general_information TYPE ty_general_information,
"! <p class="shorttext">Fields To Restore</p>
"! Fields to restore
field_restore TYPE ty_fields_to_restore,
"! <p class="shorttext">Checks</p>
"! Checks
check_data TYPE ty_checks,
END OF ty_main.

ENDINTERFACE.
7 changes: 7 additions & 0 deletions file-formats/aifa/type/zif_aff_aifa_v1.intf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"formatVersion": "1",
"header": {
"description": "AFF Type for AIFA (Action)",
"originalLanguage": "en"
}
}
Loading