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 10 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) |
183 changes: 183 additions & 0 deletions file-formats/ilmb/ilmb-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
{
"$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 Direct",
"description": "Condition fields for direct value determination",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Condition Field Details",
"description": "Condition field details",
"type": "object",
"properties": {
"name": {
"title": "Name",
"description": "Name",
"type": "string",
"maxLength": 30
},
"description": {
"title": "Description",
"description": "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": [
"name",
"sourceTable",
"sourceField"
]
}
}
},
"additionalProperties": false,
"required": [
"formatVersion",
"header",
"destructionObject",
"timeReferences",
"conditionFields"
]
}
95 changes: 95 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,95 @@
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">Name</p>
Copy link
Contributor

@wurzka wurzka Aug 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To have it in sync with time reference table:

Suggested change
"! <p class="shorttext">Name</p>
"! <p class="shorttext">Condition Field</p>

"! Name
wurzka marked this conversation as resolved.
Show resolved Hide resolved
"! $required
name TYPE zif_aff_types_v1=>ty_object_name_30,
wurzka marked this conversation as resolved.
Show resolved Hide resolved
"! <p class="shorttext">Description</p>
"! Condition field
srnawaz marked this conversation as resolved.
Show resolved Hide resolved
wurzka marked this conversation as resolved.
Show resolved Hide resolved
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 source_table source_field.

TYPES:
"! <p class="shorttext">Destruction Object</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">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.


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 Direct</p>
wurzka marked this conversation as resolved.
Show resolved Hide resolved
"! Condition fields for direct value determination
"! $required
condition_fields TYPE ty_cond_fields,
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