diff --git a/file-formats/suco/README.md b/file-formats/suco/README.md new file mode 100644 index 000000000..ce7db1d78 --- /dev/null +++ b/file-formats/suco/README.md @@ -0,0 +1,5 @@ +# SUCO File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.suco.json` | 1 | [`zif_aff_suco_v1.intf.abap`](./type/zif_aff_suco_v1.intf.abap) | [`suco-v1.json`](./suco-v1.json) | [`z_aff_example_suco.suco.json`](./examples/z_aff_example_suco.suco.json) diff --git a/file-formats/suco/examples/z_aff_example_suco.suco.json b/file-formats/suco/examples/z_aff_example_suco.suco.json new file mode 100644 index 000000000..93a73b266 --- /dev/null +++ b/file-formats/suco/examples/z_aff_example_suco.suco.json @@ -0,0 +1,11 @@ +{ + "formatVersion": "1", + "header": { + "description": "", + "originalLanguage": "en" + }, + "leadingApplication": { + "objectType": "TRAN", + "objectName": "SACF" + } +} diff --git a/file-formats/suco/suco-v1.json b/file-formats/suco/suco-v1.json new file mode 100644 index 000000000..3f4268166 --- /dev/null +++ b/file-formats/suco/suco-v1.json @@ -0,0 +1,106 @@ +{ + "$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/suco/suco-v1.json", + "title": "Object Type SUCO (Authorization Default Variant)", + "description": "Object type SUCO (authorization default variant)", + "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": 80 + }, + "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" + ] + }, + "leadingApplication": { + "title": "Leading Application", + "description": "Leading application", + "type": "object", + "properties": { + "programId": { + "title": "Program ID", + "description": "Program ID", + "type": "string", + "maxLength": 4, + "default": "R3TR" + }, + "objectType": { + "title": "Object Type", + "description": "Object type", + "type": "string", + "maxLength": 4 + }, + "objectName": { + "title": "Object Name", + "description": "Object name", + "type": "string", + "maxLength": 40 + }, + "serviceType": { + "title": "Service Type", + "description": "Service type", + "type": "string", + "maxLength": 16 + }, + "serviceName": { + "title": "Service Name", + "description": "Service name", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "objectType", + "objectName" + ] + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "leadingApplication" + ] +} diff --git a/file-formats/suco/type/zif_aff_suco_v1.intf.abap b/file-formats/suco/type/zif_aff_suco_v1.intf.abap new file mode 100644 index 000000000..781ecf621 --- /dev/null +++ b/file-formats/suco/type/zif_aff_suco_v1.intf.abap @@ -0,0 +1,44 @@ +"! AFF Type for SUCO (Authorization Default Variant) +INTERFACE zif_aff_suco_v1 + PUBLIC. + + TYPES: + "!

Leading Application

+ "! Leading application + BEGIN OF ty_leading_application, + "!

Program ID

+ "! Program ID + "! $default 'R3TR' + program_id TYPE c LENGTH 4, + "!

Object Type

+ "! Object type + "! $required + object_type TYPE c LENGTH 4, + "!

Object Name

+ "! Object name + "! $required + object_name TYPE c LENGTH 40, + "!

Service Type

+ "! Service type + service_type TYPE c LENGTH 16, + "!

Service Name

+ "! Service name + service_name TYPE string, + END OF ty_leading_application. + + TYPES: + "!

Object Type SUCO (Authorization Default Variant)

+ "! Object type SUCO (authorization default variant) + 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_80_cloud, + "!

Leading Application

+ "! Leading application + "! $required + leading_application TYPE ty_leading_application, + END OF ty_main. +ENDINTERFACE. diff --git a/file-formats/suco/type/zif_aff_suco_v1.intf.json b/file-formats/suco/type/zif_aff_suco_v1.intf.json new file mode 100644 index 000000000..8ec680650 --- /dev/null +++ b/file-formats/suco/type/zif_aff_suco_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF type for SUCO (Authorization Default Variant)", + "originalLanguage": "en" + } +} diff --git a/file-formats/zif_aff_types_v1.intf.abap b/file-formats/zif_aff_types_v1.intf.abap index 9d1d4a197..df28a6d30 100644 --- a/file-formats/zif_aff_types_v1.intf.abap +++ b/file-formats/zif_aff_types_v1.intf.abap @@ -141,6 +141,17 @@ INTERFACE zif_aff_types_v1 PUBLIC. abap_language_version TYPE ty_abap_language_version, END OF ty_header_80. + TYPES: + "!

Header(no key user)

+ "! The header for an ABAP main object (without source code) with a description of 80 characters (no key user) + BEGIN OF ty_header_80_cloud, + "! $required + description TYPE ty_description_80, + "! $required + original_language TYPE ty_original_language, + abap_language_version TYPE ty_abap_language_version_cloud, + END OF ty_header_80_cloud. + TYPES: "!

Header

"! The header for an ABAP main object (without source code) with a description of 100 characters