Skip to content

Commit

Permalink
[ILMB] Add New Object ILMB (#536)
Browse files Browse the repository at this point in the history
* Add Files For ILMB

* React to AbapLint

* React to Abaplint

* React to abaplint

* Add Files - Changes to merge direct and indirect condition fields into one entry

* ILMB - Added Indirect Value Determination for Condition fields

* Remove example

* UX review changes

* Uploading unzipped files as per UX review

* UX Review changes

* Add files via upload

* Add files via upload

* Add files via upload

* Remove unnessecary files

* Redo change of README.md

---------

Co-authored-by: Michael Schneider <[email protected]>
Co-authored-by: Katharina Wurz <[email protected]>
Co-authored-by: KARSUV <[email protected]>
  • Loading branch information
4 people authored Sep 26, 2023
1 parent fa9250c commit 2cd0a39
Show file tree
Hide file tree
Showing 4 changed files with 318 additions and 0 deletions.
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
"! $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,
"! <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"
}
}

0 comments on commit 2cd0a39

Please sign in to comment.