Skip to content
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

[ILMB] Add New Object ILMB #536

Merged
merged 21 commits into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all 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/ilmb/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# ILMB File Format

File | Cardinality | Definition | Schema | Example
:--- | :--- | :--- | :--- | :---
`<name>.ilmb.json` | 1 | [`zif_aff_ilmb_v1.intf.abap`](./type/zif_aff_ilmb_v1.intf.abap) | [`ilmb-v1.json`](./ilmb-v1.json)
198 changes: 198 additions & 0 deletions file-formats/ilmb/ilmb-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
{
"$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/ilmb/ilmb-v1.json",
"title": "ILM Object",
"description": "ILM object (ILMB) v1",
"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,
"maxLength": 2,
"pattern": "^[a-z]+$"
},
"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"
]
},
"destructionObject": {
"title": "Destruction Object",
"description": "Mapping ILM object to data destruction object",
"type": "object",
"properties": {
"name": {
"title": "Name",
"description": "Name",
"type": "string",
"maxLength": 30
}
},
"additionalProperties": false
},
"timeReferences": {
"title": "Time References",
"description": "Value determination for time references",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Time Reference Details",
"description": "Time reference details",
"type": "object",
"properties": {
"timeReference": {
"title": "Time Reference",
"description": "Time reference",
"type": "string",
"maxLength": 30
},
"sourceTable": {
"title": "Source Table",
"description": "Source table",
"type": "string",
"maxLength": 30
},
"sourceField": {
"title": "Source Field",
"description": "Source field",
"type": "string",
"maxLength": 30
},
"indirectValue": {
"title": "Indirect Value Determination",
"description": "Indirect Value Determination",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"timeReference",
"sourceTable",
"sourceField"
]
}
},
"conditionFields": {
"title": "Condition Fields",
"description": "Condition fields for direct value determination",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Condition Field Details",
"description": "Condition field details",
"type": "object",
"properties": {
"conditionField": {
"title": "Condition Field",
"description": "Condition field",
"type": "string",
"maxLength": 30
},
"description": {
"title": "Description",
"description": "Description of condition field",
"type": "string",
"maxLength": 60
},
"dataElement": {
"title": "Data Element",
"description": "Data element",
"type": "string",
"maxLength": 30
},
"sourceTable": {
"title": "Source Table",
"description": "Source table",
"type": "string",
"maxLength": 30
},
"sourceField": {
"title": "Source Field",
"description": "Source field",
"type": "string",
"maxLength": 30
},
"indirectValue": {
"title": "Indirect Value Determination",
"description": "Indirect Value Determination",
"type": "boolean"
},
"noIntervals": {
"title": "No Intervals",
"description": "No intervals",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"conditionField",
"sourceTable",
"sourceField"
]
}
},
"callbackClass": {
"title": "Value Determination Callback Class",
"description": "Value determination callback class",
"type": "object",
"properties": {
"name": {
"title": "Name",
"description": "Name",
"type": "string",
"maxLength": 30
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"destructionObject",
"timeReferences",
"conditionFields",
"callbackClass"
]
}
108 changes: 108 additions & 0 deletions file-formats/ilmb/type/zif_aff_ilmb_v1.intf.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
INTERFACE zif_aff_ilmb_v1
PUBLIC.

TYPES:
"! <p class="shorttext">Condition Field Details</p>
"! Condition field details
BEGIN OF ty_cond_field,
"! <p class="shorttext">Condition Field</p>
"! Condition field
srnawaz marked this conversation as resolved.
Show resolved Hide resolved
"! $required
condition_field TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Description</p>
"! Description of condition field
description TYPE zif_aff_types_v1=>ty_description_60,
"! <p class="shorttext">Data Element</p>
"! Data element
data_element TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Source Table</p>
"! Source table
"! $required
source_table TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Source Field</p>
"! Source field
"! $required
source_field TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Indirect Value Determination</p>
"! Indirect Value Determination
indirect_value TYPE abap_bool,
"! <p class="shorttext">No Intervals</p>
"! No intervals
no_intervals TYPE abap_bool,
END OF ty_cond_field,
"! <p class="shorttext">Condition Fields</p>
"! Condition fields
ty_cond_fields TYPE SORTED TABLE OF ty_cond_field WITH UNIQUE KEY condition_field source_table source_field.

TYPES:
"! <p class="shorttext">ILM</p>
"! Destruction object
BEGIN OF ty_destruction_object,
"! <p class="shorttext">Name</p>
"! Name
name TYPE zif_aff_types_v1=>ty_object_name_30,
END OF ty_destruction_object.

TYPES:
"! <p class="shorttext">Class</p>
"! Callback class
BEGIN OF ty_callback_class,
"! <p class="shorttext">Name</p>
"! Name
name TYPE zif_aff_types_v1=>ty_object_name_30,
END OF ty_callback_class.

TYPES:
"! <p class="shorttext">Time Reference Details</p>
"! Time reference details
BEGIN OF ty_time_reference,
schneidermic0 marked this conversation as resolved.
Show resolved Hide resolved
"! <p class="shorttext">Time Reference</p>
"! Time reference
"! $required
time_reference TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Source Table</p>
"! Source table
"! $required
source_table TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Source Field</p>
"! Source field
"! $required
source_field TYPE zif_aff_types_v1=>ty_object_name_30,
"! <p class="shorttext">Indirect Value Determination</p>
"! Indirect Value Determination
indirect_value TYPE abap_bool,
END OF ty_time_reference,
"! <p class="shorttext">Time References</p>
"! Time references
ty_time_references TYPE SORTED TABLE OF ty_time_reference WITH UNIQUE KEY time_reference source_table
source_field.

TYPES:
"! <p class="shorttext">ILM Object</p>
"! ILM object (ILMB) v1
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">Destruction Object</p>
"! Mapping ILM object to data destruction object
"! $required
destruction_object TYPE ty_destruction_object,
"! <p class="shorttext">Time References</p>
"! Value determination for time references
"! $required
time_references TYPE ty_time_references,
"! <p class="shorttext">Condition Fields</p>
"! Condition fields for direct value determination
"! $required
condition_fields TYPE ty_cond_fields,
"! <p class="shorttext">Value Determination Callback Class</p>
"! Value determination callback class
"! $required
callback_class TYPE ty_callback_class,
END OF ty_main.

ENDINTERFACE.
7 changes: 7 additions & 0 deletions file-formats/ilmb/type/zif_aff_ilmb_v1.intf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"formatVersion": "1",
"header": {
"description": "Interface with the ILMB AFF Type",
"originalLanguage": "en"
}
}
Loading