From 07c3c461e0a9c6a2d8e89cd3df106bf3e208c6de Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 5 Jan 2023 16:13:42 +0100 Subject: [PATCH 01/29] React to abaplint --- file-formats/sush/sush/README.md | 5 + file-formats/sush/sush/sush-v1.json | 228 ++++++++++++++++++ .../sush/sush/type/zif_aff_sush_v1.intf.abap | 106 ++++++++ .../sush/sush/type/zif_aff_sush_v1.intf.json | 7 + 4 files changed, 346 insertions(+) create mode 100644 file-formats/sush/sush/README.md create mode 100644 file-formats/sush/sush/sush-v1.json create mode 100644 file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap create mode 100644 file-formats/sush/sush/type/zif_aff_sush_v1.intf.json diff --git a/file-formats/sush/sush/README.md b/file-formats/sush/sush/README.md new file mode 100644 index 000000000..2617ca19e --- /dev/null +++ b/file-formats/sush/sush/README.md @@ -0,0 +1,5 @@ +# SUSH File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.sush.json` | 1 | [`zif_aff_sush_v1.intf.abap`](./type/zif_aff_sush_v1.intf.abap) | [`sush-v1.json`](./sush-v1.json) | [`z_aff_example_sush.sush.json`](./examples/z_aff_example_sush.sush.json) diff --git a/file-formats/sush/sush/sush-v1.json b/file-formats/sush/sush/sush-v1.json new file mode 100644 index 000000000..2d402287d --- /dev/null +++ b/file-formats/sush/sush/sush-v1.json @@ -0,0 +1,228 @@ +{ + "$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/sush/sush-v1.json", + "title": "SUSH Object Type", + "description": "Object type SUSH", + "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", + "keyUser", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP for Key Users", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP for key user extensibility", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "general": { + "title": "General", + "description": "General", + "type": "object", + "properties": { + "name": { + "title": "Application Name", + "description": "Application Name of Authorization Default Value.", + "type": "string", + "maxLength": 30 + }, + "type": { + "title": "Type", + "description": "Type of Authorization Default Value.", + "type": "string", + "enum": [ + "transaction", + "?", + "rfcFunctionModule", + "hashValueForTadirObject", + "hashValueForExternalService", + "collisionHashValue" + ], + "enumDescriptions": [ + "Transaction", + "?", + "RFC Function Module", + "Hash Value for TADIR Object", + "Hash Value for External Service", + "Collision Hash Value" + ] + }, + "okflag": { + "title": "Maintenance Mode", + "description": "Maintenance Mode.", + "type": "string", + "enum": [ + "manualMaintenance", + "automaticMaintenance(allAuthorizationObjects)", + "automaticMaintenance(basisAuthorizationObjectsOnly)", + "applicationDoesNotRequireDefaultValues", + "applicationIsDeprecated", + "applicationIsObsolete" + ], + "enumDescriptions": [ + "Manual Maintenance", + "Automatic Maintenance (All Authorization Objects)", + "Automatic Maintenance (Basis Authorization Objects Only)", + "Application Does Not Require Default Values", + "Application is Deprecated", + "Application Is Obsolete" + ] + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "okflag" + ] + }, + "authorizationObjects": { + "title": "Authorization objects", + "description": "Authorization objects", + "type": "array", + "items": { + "title": "Authorization Objects Details", + "description": "Authorization Objects Details", + "type": "object", + "properties": { + "object": { + "title": "Object", + "description": "Name of Authorization Object", + "type": "string", + "maxLength": 10 + }, + "ttext": { + "title": "Object Description", + "description": "Authorization Object Description", + "type": "string", + "maxLength": 60 + }, + "okflag": { + "title": "Maintenance Status", + "description": "Maintenance Status", + "type": "string", + "enum": [ + "noAuthorizationCheck", + "authorizationCheckTakesPlace", + "undefined", + "authorizationCheckTakesPlace;DefaultValuesInUsobt", + "undefined", + "authorizationCheckTakesPlace,NoDefaultValues", + "inactiveAuthorizationDefault" + ], + "enumDescriptions": [ + "No authorization check", + "Authorization check takes place", + "Undefined", + "Authorization check takes place; default values in USOBT", + "Undefined", + "Authorization check takes place, no default values", + "Inactive Authorization Default" + ] + }, + "fields": { + "title": "Fields", + "description": "Authorization Fields.", + "type": "array", + "items": { + "title": "Authorization Field Details", + "description": "Authorization Field Details", + "type": "object", + "properties": { + "field": { + "title": "Field", + "description": "Name of Authorization Field", + "type": "string", + "maxLength": 10 + }, + "values": { + "title": "Values", + "description": "Name of Authorization Field Value", + "type": "array", + "items": { + "title": "Default Authorization Values", + "description": "Default Authorization Values", + "type": "object", + "properties": { + "low": { + "title": "From", + "description": "From Value", + "type": "string", + "maxLength": 40 + }, + "high": { + "title": "To", + "description": "To Values", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false, + "required": [ + "field" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "object" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "general" + ] +} diff --git a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap new file mode 100644 index 000000000..bb3ffa0a2 --- /dev/null +++ b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap @@ -0,0 +1,106 @@ +interface zif_aff_sush_v1 + public . + types: + "!

General

+ "! General + "! $required + begin of ty_general, + "!

Application Name

+ "! Application Name of Authorization Default Value. + "! $required + name type usobx-name, + "!

Type

+ "! Type of Authorization Default Value. + "! $required + type type usobx-type, + "!

Maintenance Mode

+ "! Maintenance Mode. + "! $required + okflag type usob_status_flag, + end of ty_general . + + types: + "!

Default Authorization Values

+ "! Default Authorization Values + begin of ty_value, + "!

From

+ "! From Value + "! $showAlways + low type usobt-low, + "!

To

+ "! To Values + "! $showAlways + high type usobt-high, + end of ty_value . + + types: + "!

Authorization Fields

+ "! Authorization Fields + ty_values type standard table of ty_value with default key. + + types: + "!

Authorization Field Details

+ "! Authorization Field Details + begin of ty_fldtablestruc, + "!

Field

+ "! Name of Authorization Field + "! $required + field type usobt-field, + "!

Values

+ "! Name of Authorization Field Value + values type ty_values, + end of ty_fldtablestruc . + + types: + "!

Authorization Fields

+ "! Authorization Fields + ty_authorization_fields type standard table of ty_fldtablestruc with default key. + + types: + "!

Authorization Objects Details

+ "! Authorization Objects Details + begin of ty_objtablestruc, + "!

Object

+ "! Name of Authorization Object + "! $required + object type usobx-object, + "!

Object Description

+ "! Authorization Object Description + "! $showAlways + ttext type tobjt-ttext, + "!

Maintenance Status

+ "! Maintenance Status + "! $showAlways + okflag type usobx-okflag, + "!

Fields

+ "! Authorization Fields. + "! $showAlways + fields type ty_authorization_fields, + + end of ty_objtablestruc . + + types: + "!

Authorization Objects

+ "! Authorization Objects + ty_authorization_objects type standard table of ty_objtablestruc with default key. + + types: + "!

SUSH Object Type

+ "! Object type SUSH + 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_60_src, + "!

General

+ "! General + "! $required + general type ty_general, + "!

Authorization objects

+ "! Authorization objects + authorization_objects type ty_authorization_objects, + end of ty_main . + +endinterface. diff --git a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json new file mode 100644 index 000000000..920811c45 --- /dev/null +++ b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "Authentication Default Values AFF", + "originalLanguage": "en" + } +} From 630dd2f10bf6c57f12312a6a4c121499e4aacea7 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 24 Jul 2025 10:47:16 +0200 Subject: [PATCH 02/29] Add fildes for TRAN --- file-formats/tran/tran/README.md | 13 + file-formats/tran/tran/tran-v1.json | 552 ++++++++++++++++++ .../tran/tran/type/zif_aff_tran_v1.intf.abap | 468 +++++++++++++++ .../tran/tran/type/zif_aff_tran_v1.intf.json | 7 + 4 files changed, 1040 insertions(+) create mode 100644 file-formats/tran/tran/README.md create mode 100644 file-formats/tran/tran/tran-v1.json create mode 100644 file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap create mode 100644 file-formats/tran/tran/type/zif_aff_tran_v1.intf.json diff --git a/file-formats/tran/tran/README.md b/file-formats/tran/tran/README.md new file mode 100644 index 000000000..e66e356c7 --- /dev/null +++ b/file-formats/tran/tran/README.md @@ -0,0 +1,13 @@ +# Transaction File Format + +## Object Type Information + +Object Type | Description | Group +:--- | :--- | :--- +TRAN | Transaction | Others + +## File Structure + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) diff --git a/file-formats/tran/tran/tran-v1.json b/file-formats/tran/tran/tran-v1.json new file mode 100644 index 000000000..6c061f28c --- /dev/null +++ b/file-formats/tran/tran/tran-v1.json @@ -0,0 +1,552 @@ +{ + "$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/tran/tran-v1.json", + "title": "Transaction", + "description": "Transaction", + "type": "object", + "properties": { + "formatVersion": { + "title": "Format Version", + "description": "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", + "keyUser", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP for Key Users", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP for key user extensibility", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "generalInformation": { + "title": "General Information", + "description": "General Information contains details about the transaction, depending on the transaction type.", + "type": "object", + "properties": { + "transactionType": { + "title": "Transaction Type", + "description": "The transaction type defines which object will be started at runtime when the transaction is called. Depending on the transaction type, other type of object can be started and different fields become relevant.", + "type": "string", + "enum": [ + "dia", + "oo", + "par", + "rep", + "var" + ], + "enumTitles": [ + "Dialog Transaction", + "OO Transaction", + "Parameter Transaction", + "Report Transaction", + "Variant Transaction" + ], + "enumDescriptions": [ + "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction." + ], + "default": "par" + }, + "lockStatus": { + "title": "Lock Status", + "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", + "type": "boolean" + }, + "dialogTransaction": { + "title": "Dialog Transaction", + "description": "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "type": "object", + "properties": { + "programName": { + "title": "Program", + "description": "Program name for dialog transaction", + "type": "string", + "maxLength": 40 + }, + "programDynnr": { + "title": "Dynpro", + "description": "Transaction start dynpro number for dialog transaction", + "type": "integer", + "minimum": -2147483648, + "maximum": 2147483647 + }, + "stvMaintenanceMode": { + "title": "Editing of standard transaction variant allowed", + "description": "If this indicator is set, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance. This changes how the transaction looks at runtime, when it is started directly via its transaction code.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "parameterTransaction": { + "title": "Parameter Transaction", + "description": "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "type": "object", + "properties": { + "parParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number that are started when the transaction is called. The parent transaction can be a dialog or a report transaction.", + "type": "string", + "maxLength": 20 + }, + "skipInitialScreenMode": { + "title": "Skip Initial Screen", + "description": "Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", + "type": "string", + "maxLength": 1 + }, + "parameterValues": { + "title": "Parameter values", + "description": "Parameter values", + "type": "array", + "items": { + "title": "Parameter Value", + "description": "Parameter transaction parameter value", + "type": "object", + "properties": { + "parameterName": { + "title": "Parameter Name", + "description": "Name of the parameter for the parameter transaction", + "type": "string", + "maxLength": 132 + }, + "parameterValue": { + "title": "Parameter Value", + "description": "Value for the parameter of the parameter transaction", + "type": "string", + "maxLength": 50 + } + }, + "additionalProperties": false, + "required": [ + "parameterName" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "parParentTransactionCode" + ] + }, + "reportTransaction": { + "title": "Report Transaction", + "description": "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "type": "object", + "properties": { + "reportName": { + "title": "Report", + "description": "Report name for the report transaction", + "type": "string", + "maxLength": 40 + }, + "reportDynnr": { + "title": "Screen", + "description": "Transaction start selection screen for the report transaction", + "type": "integer", + "minimum": -2147483648, + "maximum": 2147483647 + }, + "reportVariantName": { + "title": "Variant", + "description": "Variant name for the report transaction", + "type": "string", + "maxLength": 14 + } + }, + "additionalProperties": false + }, + "ooTransaction": { + "title": "OO Transaction", + "description": "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "type": "object", + "properties": { + "localInProgramIndi": { + "title": "Local in Program", + "description": "If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class.", + "type": "boolean" + }, + "classProgramName": { + "title": "Program", + "description": "Name of the program for the OO transacton", + "type": "string", + "maxLength": 40 + }, + "className": { + "title": "Class", + "description": "Name of the ABAP class", + "type": "string", + "maxLength": 30 + }, + "methodName": { + "title": "Method Name", + "description": "Name of the method of the ABAP class", + "type": "string", + "maxLength": 61 + }, + "ooTransactionModelIndi": { + "title": "OO Transaction Model", + "description": "If this indicator is set, the OO transaction follows the object-oriented transaction model. See the interface IF_OS_TRANSACTION_MANAGER for more information.", + "type": "boolean" + }, + "updateMode": { + "title": "Update Mode", + "description": "The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately.", + "type": "string", + "enum": [ + "asynchronous", + "synchronous", + "local" + ], + "enumTitles": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "enumDescriptions": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "default": "asynchronous" + } + }, + "additionalProperties": false, + "required": [ + "className", + "methodName" + ] + }, + "variantTransaction": { + "title": "Variant Transaction", + "description": "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction.", + "type": "object", + "properties": { + "varParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code links related transaction to its original (parent) transaction. It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration.", + "type": "string", + "maxLength": 20 + }, + "transactionVariantCiIndi": { + "title": "Cross Client", + "description": "If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific.", + "type": "boolean" + }, + "transactionCiVariantName": { + "title": "Transaction Variant", + "description": "Name of the cross-client transaction variant. A cross-client transaction variant is available in the system regardless of which client is currently active, and the field contents used in the transaction variant must be available in all clients.", + "type": "string", + "maxLength": 30 + }, + "transactionVariantName": { + "title": "Transaction Variant", + "description": "Name of the client-specific transaction variant. A client-specific transaction variant exists only in the client where it was created, and the field contents used in the transaction variant must be available in that client.", + "type": "string", + "maxLength": 30 + } + }, + "additionalProperties": false, + "required": [ + "varParentTransactionCode" + ] + } + }, + "additionalProperties": false, + "required": [ + "transactionType" + ] + }, + "userInterface": { + "title": "User Interface", + "description": "User Interface manage UI classification and GUI support", + "type": "object", + "properties": { + "inheritanceMode": { + "title": "Inherit UI Attributes", + "description": "Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions.", + "type": "boolean" + }, + "uiClasification": { + "title": "UI Classification", + "description": "Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, without menus or toolbars.", + "type": "string", + "enum": [ + "professionalUserTransaction", + "easyWebTransaction" + ], + "enumTitles": [ + "Professional User Transaction", + "Easy Web Transaction" + ], + "enumDescriptions": [ + "Professional User Transactions are designed for experienced, frequent users of the SAP System who mainly run highly complex transactions.", + "Easy Web Transactions are the logical further development of Internet Application Components (IACs). You must specify a service name for an Easy Web Transactions, if one exists and is different from the name of the transaction." + ], + "default": "professionalUserTransaction" + }, + "iacServiceName": { + "title": "Service", + "description": "The Service Name of an Internet Application Component (IAC) links a transaction to a web service, enabling its execution via a browser. It's required for Easy Web Transactions if the service name differs from the transaction name.", + "type": "string", + "maxLength": 14 + }, + "pervasiveMode": { + "title": "Pervasive Enabled", + "description": "Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity.", + "type": "boolean" + }, + "webguiMode": { + "title": "SAP GUI for HTML", + "description": "The transaction supports the start from SAP GUI for HTML.", + "type": "boolean" + }, + "platinMode": { + "title": "SAP GUI for Java", + "description": "The transaction supports the start from SAP GUI for Java.", + "type": "boolean" + }, + "win32Mode": { + "title": "SAP GUI for Windows", + "description": "The transaction supports the start from SAP GUI for Windows.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "authorizations": { + "title": "Authorizations", + "description": "Authorizations contain settings related to security and access control: Start Authorization Object and Authorization Default Values", + "type": "object", + "properties": { + "startAuthorizationObject": { + "title": "Start Authorization Object", + "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the transaction’s authorization defaults.", + "type": "object", + "properties": { + "authObjectName": { + "title": "Start Authorization Object Name", + "description": "Name of the start authorization object", + "type": "string", + "maxLength": 10 + }, + "authObjectFieldValues": { + "title": "Start Authorization Object Field Values", + "description": "Fields with values for the start authorization object", + "type": "array", + "items": { + "title": "Start Authorization Object Field Value", + "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the transaction’s authorization defaults.", + "type": "object", + "properties": { + "authFieldName": { + "title": "Authorization Field", + "description": "Name of the authorization field of the start authorization object", + "type": "string", + "maxLength": 10 + }, + "authFieldValue": { + "title": "Authorization Value", + "description": "Value for the authorization field", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false, + "required": [ + "authFieldName" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "authObjectName" + ] + }, + "authorizationDefaults": { + "title": "Authorization Default Values", + "description": "Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent security settings across users and roles.", + "type": "object", + "properties": { + "maintenanceMode": { + "title": "Maintenance Mode", + "description": "Maintenance modes for applications define how applications can be modified.", + "type": "string", + "enum": [ + "manual", + "automatic", + "automaticBasisObjects", + "noDefaultValues", + "deprecated", + "obsolete" + ], + "enumTitles": [ + "Manual Maintenance", + "Automatic Maintenance (All Objects)", + "Automatic Maintenance (Basis Authorization Objects Only)", + "Application Does Not Require Default Values", + "Application Is Deprecated", + "Application Is Obsolete" + ], + "enumDescriptions": [ + "This mode is appropriate as long as maintenance of default data has not been completed yet. New objects whose check has been detected by the authorization trace are added to the object list in change mode with the maintenance status Not maintained.", + "In change mode, all authorization objects added from the authorization trace are automatically assigned the default status No Default.", + "Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are automatically added with the default status No Default. All other new objects are given the status Unmaintained, which must be changed.", + "This modus is given to all applications for whose execution only the start authorization is required.", + "It is used to classify applications that are not being developed any more but that can still be used. In the case of transactions, it is possible to designate successor transactions.", + "This mode is used to classify applications that are not being developed any more and because of this do not meet important functional requirements or are not needed any more." + ], + "default": "manual" + }, + "inheritanceMode": { + "title": "Inheritance Mode", + "description": "Authorization defaults inheritance mode controls how authorization settings are passed from a parent transaction to its variants, ensuring consistent access rights and roles across related transactions.", + "type": "boolean" + }, + "documentation": { + "title": "Authorization Defaults Documentation for Application", + "description": "Authorization defaults documentation for application.", + "type": "string" + }, + "authObjects": { + "title": "Authorization Defaults Authorization Objects", + "description": "Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent security settings across users and roles.", + "type": "array", + "items": { + "title": "Authorization Defaults Authorization Object Details", + "description": "Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent security settings across users and roles.", + "type": "object", + "properties": { + "authObjectName": { + "title": "Authorization Object Name", + "description": "Name of the authorization object", + "type": "string", + "maxLength": 10 + }, + "maintenanceStatus": { + "title": "Maintenance Status", + "description": "The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu.", + "type": "string", + "enum": [ + "undefined", + "noDefault", + "defaultWithValues", + "defaultWithoutValues", + "inactiveValues" + ], + "enumTitles": [ + "Undefined", + "No Default", + "Default With Field Values", + "Default Without Field Values", + "Default Inactive" + ], + "enumDescriptions": [ + "The maintenance status is undefined and must be specified.", + "This status is given to all objects that are not required for the execution of functions in the application. The authorization check is executed in exactly the same way the statuses described above.", + "This default status is assigned to all objects that are used to protect functions within the associated application and for which the delivery of fixed values in one or more authorization fields would help to simplify authorization maintenance in roles.", + "This status is suitable for objects whose authorizations are required for using an application, but all of whose authorization fields have to be maintained by the role administrator with customer-specific values.", + "For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless of which authorizations the user actually has. For objects belonging to the application areas Basis (S_*) and HR (P_* and PLOG), it is forbidden." + ], + "default": "defaultWithValues" + }, + "documentation": { + "title": "Authorization Defaults Documentation for Object", + "description": "Authorization defaults documentation for object", + "type": "string" + }, + "authObjectFieldValues": { + "title": "Authorization Defaults Authorization Field Value", + "description": "Authorization defaults authorization field value", + "type": "array", + "items": { + "title": "Authorization Defaults Authorization Field Value", + "description": "Authorization defaults authorization field value", + "type": "object", + "properties": { + "authFieldName": { + "title": "Authorization Field", + "description": "Authorization field", + "type": "string", + "maxLength": 10 + }, + "authFieldLowValue": { + "title": "From", + "description": "From value", + "type": "string", + "maxLength": 40 + }, + "authFieldHighValue": { + "title": "To", + "description": "To value", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "authorizationDefaults" + ] + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation" + ] +} diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap new file mode 100644 index 000000000..b6c8a5962 --- /dev/null +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap @@ -0,0 +1,468 @@ +INTERFACE zif_aff_tran_v1 + PUBLIC. + + "! $values {@link zif_aff_tran_v1.data:co_transaction_type} + "! $default {@link zif_aff_tran_v1.data:co_transaction_type.par} + TYPES ty_transaction_type TYPE c LENGTH 1. + CONSTANTS: + "!

Transaction Type

+ "! The transaction type defines which object will be started at runtime when the transaction is called. + "! Depending on the transaction type, other type of object can be started and different fields become relevant. + "! {@link zif_aff_tran_v1.data:ty_transaction_type } + BEGIN OF co_transaction_type, + "!

Dialog Transaction

+ "! The runtime calls a dynpro of a function group, module pool or report. + "! The dynpro specified as initial screen must not be a selection screen. + "! The program logic defines which screens are displayed after the initial screen. + dia TYPE ty_transaction_type VALUE 'D', + "!

OO Transaction

+ "! At runtime, the system calls a class method. The transaction links to either the ABAP Object + "! Services Transaction Service (for persistent objects) or to a public method of a class. + "! For instance methods, the system auto-creates a class instance. + oo TYPE ty_transaction_type VALUE 'O', + "!

Parameter Transaction

+ "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. + "! You can also skip the initial screen to prevent users from changing these predefined values. + par TYPE ty_transaction_type VALUE 'P', + "!

Report Transaction

+ "! The runtime calls a dynpro of a report. + "! The dynpro specified as initial screen must be a selection screen. + "! The execution of a report usually has three stages: data entry, data processing, and data output. + rep TYPE ty_transaction_type VALUE 'R', + "!

Variant Transaction

+ "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. + "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. + var TYPE ty_transaction_type VALUE 'V', + END OF co_transaction_type. + + "! $values {@link zif_aff_tran_v1.data:co_ui_classification} + "! $default {@link zif_aff_tran_v1.data:co_ui_classification.professional_user_transaction} + TYPES ty_ui_classification TYPE c LENGTH 1. + CONSTANTS: + "!

UI Classification

+ "! The UI classification indicates the target user group of the transaction. + BEGIN OF co_ui_classification, + "!

Professional User Transaction

+ "! Professional User Transactions are designed for experienced, frequent users of the SAP System who mainly run highly complex transactions. + professional_user_transaction TYPE ty_ui_classification VALUE 'P', + "!

Easy Web Transaction

+ "! Easy Web Transactions are the logical further development of Internet Application Components (IACs). + "! You must specify a service name for an Easy Web Transactions, if one exists and is different from the name of the transaction. + easy_web_transaction TYPE ty_ui_classification VALUE 'E', + END OF co_ui_classification. + + TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. + CONSTANTS: + "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} + "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.skip} + "!

Skip Initial Screen Mode

+ BEGIN OF co_skip_initial_screen_mode, + "!

Skip Initial Screen

+ "! Skip Initial Screen + skip TYPE ty_skip_initial_screen_mode VALUE 'Y', + "!

Show Initial Screen

+ "! Show Initial Screen + show TYPE ty_skip_initial_screen_mode VALUE 'N', + END OF co_skip_initial_screen_mode. + + "! $values {@link zif_aff_tran_v1.data:co_update_mode} + "! $default {@link zif_aff_tran_v1.data:co_update_mode.asynchronous} + TYPES ty_update_mode TYPE c LENGTH 1. + CONSTANTS: + "!

Update Mode

+ "! Update Mode for OO Transactions + BEGIN OF co_update_mode, + "!

Asynchronous

+ "! Asynchronous + asynchronous TYPE ty_update_mode VALUE 'U', + "!

Synchronous

+ "! Synchronous + synchronous TYPE ty_update_mode VALUE 'S', + "!

Local

+ "! Local + local TYPE ty_update_mode VALUE 'L', + END OF co_update_mode. + + TYPES: + BEGIN OF ty_dia, + "!

Program

+ "! Program name for dialog transaction + program_name TYPE c LENGTH 40, + "!

Dynpro

+ "! Transaction start dynpro number for dialog transaction + program_dynnr TYPE i, + "!

Editing of standard transaction variant allowed

+ "! If this indicator is set, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance. + "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. + stv_maintenance_mode TYPE abap_bool, + END OF ty_dia. + + TYPES: + BEGIN OF ty_rep, + "!

Report

+ "! Report name for the report transaction + report_name TYPE c LENGTH 40, + "!

Screen

+ "! Transaction start selection screen for the report transaction + report_dynnr TYPE i, + "!

Variant

+ "! Variant name for the report transaction + report_variant_name TYPE c LENGTH 14, + END OF ty_rep. + + TYPES: + BEGIN OF ty_oo, + "!

Local in Program

+ "! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class. + local_in_program_indi TYPE abap_bool, + "!

Program

+ "! Name of the program for the OO transacton + class_program_name TYPE c LENGTH 40, + "!

Class

+ "! Name of the ABAP class + "! $required + class_name TYPE c LENGTH 30, + "!

Method Name

+ "! Name of the method of the ABAP class + "! $required + method_name TYPE c LENGTH 61, + "!

OO Transaction Model

+ "! If this indicator is set, the OO transaction follows the object-oriented transaction model. + "! See the interface IF_OS_TRANSACTION_MANAGER for more information. + oo_transaction_model_indi TYPE abap_bool, + "!

Update Mode

+ "! The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately. + update_mode TYPE ty_update_mode, + END OF ty_oo. + + TYPES: + "!

Parameter Value

+ "! Parameter transaction parameter value + BEGIN OF ty_par_pv, + "!

Parameter Name

+ "! Name of the parameter for the parameter transaction + "! $required + parameter_name TYPE c LENGTH 132, + "!

Parameter Value

+ "! Value for the parameter of the parameter transaction + parameter_value TYPE c LENGTH 50, + END OF ty_par_pv. + TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH EMPTY KEY. + + TYPES: + BEGIN OF ty_par, + "!

Parent Transaction

+ "! The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number + "! that are started when the transaction is called. The parent transaction can be a dialog or a report transaction. + "! $required + par_parent_transaction_code TYPE c LENGTH 20, + "!

Skip Initial Screen

+ "! Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values. + skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, + "!

Parameter values

+ "! Parameter values + parameter_values TYPE ty_par_pv_t, + END OF ty_par. + + TYPES: + BEGIN OF ty_var, + "!

Parent Transaction

+ "! The parent transaction code links related transaction to its original (parent) transaction. + "! It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration. + "! $required + var_parent_transaction_code TYPE c LENGTH 20, + "!

Cross Client

+ "! If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific. + transaction_variant_ci_indi TYPE abap_bool, + "!

Transaction Variant

+ "! Name of the cross-client transaction variant. + "! A cross-client transaction variant is available in the system regardless of which client is currently active, + "! and the field contents used in the transaction variant must be available in all clients. + transaction_ci_variant_name TYPE c LENGTH 30, + "!

Transaction Variant

+ "! Name of the client-specific transaction variant. + "! A client-specific transaction variant exists only in the client where it was created, + "! and the field contents used in the transaction variant must be available in that client. + transaction_variant_name TYPE c LENGTH 30, + END OF ty_var. + + TYPES: + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_mode} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} + ty_maintenance_mode TYPE c LENGTH 1, + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and + "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} + ty_maintenance_status TYPE c LENGTH 1. + + CONSTANTS: + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + BEGIN OF co_maintenance_mode, + "!

Manual Maintenance

+ "! This mode is appropriate as long as maintenance of default data has not been completed yet. + "! New objects whose check has been detected by the authorization trace are added to the object list in change mode with the maintenance status Not maintained. + manual TYPE ty_maintenance_mode VALUE space, + "!

Automatic Maintenance (All Objects)

+ "! In change mode, all authorization objects added from the authorization trace are automatically assigned the default status No Default. + automatic TYPE ty_maintenance_mode VALUE 'A', + "!

Automatic Maintenance (Basis Authorization Objects Only)

+ "! Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are automatically added with the default status No Default. + "! All other new objects are given the status Unmaintained, which must be changed. + automatic_basis_objects TYPE ty_maintenance_mode VALUE 'B', + "!

Application Does Not Require Default Values

+ "! This modus is given to all applications for whose execution only the start authorization is required. + no_default_values TYPE ty_maintenance_mode VALUE 'I', + "!

Application Is Deprecated

+ "! It is used to classify applications that are not being developed any more but that can still be used. + "! In the case of transactions, it is possible to designate successor transactions. + deprecated TYPE ty_maintenance_mode VALUE 'D', + "!

Application Is Obsolete

+ "! This mode is used to classify applications that are not being developed any more and because of this do not meet important functional requirements or + "! are not needed any more. + obsolete TYPE ty_maintenance_mode VALUE 'O', + END OF co_maintenance_mode, + + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and + "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + BEGIN OF co_maintenance_status, + "!

Undefined

+ "! The maintenance status is undefined and must be specified. + undefined TYPE ty_maintenance_status VALUE ' ', + "!

No Default

+ "! This status is given to all objects that are not required for the execution of functions in the application. + "! The authorization check is executed in exactly the same way the statuses described above. + no_default TYPE ty_maintenance_status VALUE 'X', + "!

Default With Field Values

+ "! This default status is assigned to all objects that are used to protect functions within the associated application and + "! for which the delivery of fixed values in one or more authorization fields would help to simplify authorization maintenance in roles. + default_with_values TYPE ty_maintenance_status VALUE 'Y', + "!

Default Without Field Values

+ "! This status is suitable for objects whose authorizations are required for using an application, + "! but all of whose authorization fields have to be maintained by the role administrator with customer-specific values. + default_without_values TYPE ty_maintenance_status VALUE 'V', + "!

Default Inactive

+ "! For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless of which authorizations the user actually has. + "! For objects belonging to the application areas Basis (S_*) and HR (P_* and PLOG), it is forbidden. + inactive_values TYPE ty_maintenance_status VALUE 'I', + END OF co_maintenance_status. + + TYPES: + "!

Authorization Value

+ "! Authorization value + ty_val TYPE c LENGTH 40, + "!

Authorization Field

+ "! Authorization field + ty_field TYPE c LENGTH 10. + + TYPES: + "!

Start Authorization Object Field Value

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + BEGIN OF ty_sao_afv, + "!

Authorization Field

+ "! Name of the authorization field of the start authorization object + "! $required + auth_field_name TYPE ty_field, + "!

Authorization Value

+ "! Value for the authorization field + auth_field_value TYPE ty_val, + END OF ty_sao_afv. + + "!

Start Authorization Object Field Value

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH EMPTY KEY. + + TYPES: + "!

Start Authorization Object

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + BEGIN OF ty_sao, + "!

Start Authorization Object Name

+ "! Name of the start authorization object + "! $required + auth_object_name TYPE c LENGTH 10, + "!

Start Authorization Object Field Values

+ "! Fields with values for the start authorization object + auth_object_field_values TYPE ty_sao_afv_t, + END OF ty_sao. + + TYPES: + "!

Authorization Defaults Authorization Field Value

+ "! Authorization defaults authorization field value + BEGIN OF ty_ad_afv, + "!

Authorization Field

+ "! Authorization field + auth_field_name TYPE ty_field, + "!

From

+ "! From value + "! $showAlways + auth_field_low_value TYPE ty_val, + "!

To

+ "! To value + auth_field_high_value TYPE ty_val, + END OF ty_ad_afv. + TYPES: + "!

Authorization Defaults Authorization Field Values

+ "! Authorization defaults authorization field values + ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. + + TYPES: + "!

Authorization Defaults Authorization Object Details

+ "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, + "! simplifying role maintenance and ensuring consistent security settings across users and roles. + BEGIN OF ty_ad_ao, + "!

Authorization Object Name

+ "! Name of the authorization object + auth_object_name TYPE c LENGTH 10, + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and + "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + maintenance_status TYPE ty_maintenance_status, + "!

Authorization Defaults Documentation for Object

+ "! Authorization defaults documentation for object + documentation TYPE string, + "!

Authorization Defaults Authorization Field Value

+ "! Authorization defaults authorization field value + auth_object_field_values TYPE ty_ad_afv_t, + END OF ty_ad_ao. + + "!

Authorization Defaults Authorization Objects

+ "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, + "! simplifying role maintenance and ensuring consistent security settings across users and roles. + TYPES ty_ad_ao_t TYPE STANDARD TABLE OF ty_ad_ao WITH KEY auth_object_name. + + TYPES: + BEGIN OF ty_ad, + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + maintenance_mode TYPE ty_maintenance_mode, + "!

Inheritance Mode

+ "! Authorization defaults inheritance mode controls how authorization settings are passed from a parent transaction to its variants, + "! ensuring consistent access rights and roles across related transactions. + inheritance_mode TYPE abap_bool, + "!

Authorization Defaults Documentation for Application

+ "! Authorization defaults documentation for application. + documentation TYPE string, + "!

Authorization Defaults Authorization Objects

+ "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, + "! simplifying role maintenance and ensuring consistent security settings across users and roles. + auth_objects TYPE ty_ad_ao_t, + END OF ty_ad. + + TYPES: + BEGIN OF ty_ua, + "!

Inherit UI Attributes

+ "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are + "! inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions. + inheritance_mode TYPE abap_bool, + "!

UI Classification

+ "! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. + "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, + "! without menus or toolbars. + ui_clasification TYPE ty_ui_classification, + "!

Service

+ "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, enabling its execution via a browser. + "! It's required for Easy Web Transactions if the service name differs from the transaction name. + iac_service_name TYPE c LENGTH 14, + "!

Pervasive Enabled

+ "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. + "! It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity. + pervasive_mode TYPE abap_bool, + "!

SAP GUI for HTML

+ "! The transaction supports the start from SAP GUI for HTML. + webgui_mode TYPE abap_bool, + "!

SAP GUI for Java

+ "! The transaction supports the start from SAP GUI for Java. + platin_mode TYPE abap_bool, + "!

SAP GUI for Windows

+ "! The transaction supports the start from SAP GUI for Windows. + win32_mode TYPE abap_bool, + END OF ty_ua. + + TYPES: + BEGIN OF ty_impl, + "!

Transaction Type

+ "! The transaction type defines which object will be started at runtime when the transaction is called. + "! Depending on the transaction type, other type of object can be started and different fields become relevant. + "! $required + transaction_type TYPE ty_transaction_type, + "!

Lock Status

+ "! Transaction lock status indicates whether a transaction is currently blocked from execution. + "! It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out. + lock_status TYPE abap_bool, + "!

Dialog Transaction

+ "! The runtime calls a dynpro of a function group, module pool or report. + "! The dynpro specified as initial screen must not be a selection screen. + "! The program logic defines which screens are displayed after the initial screen. + dialog_transaction TYPE ty_dia, + "!

Parameter Transaction

+ "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. + "! You can also skip the initial screen to prevent users from changing these predefined values. + parameter_transaction TYPE ty_par, + "!

Report Transaction

+ "! The runtime calls a dynpro of a report. + "! The dynpro specified as initial screen must be a selection screen. + "! The execution of a report usually has three stages: data entry, data processing, and data output. + report_transaction TYPE ty_rep, + "!

OO Transaction

+ "! At runtime, the system calls a class method. The transaction links to either the ABAP Object + "! Services Transaction Service (for persistent objects) or to a public method of a class. + "! For instance methods, the system auto-creates a class instance. + oo_transaction TYPE ty_oo, + "!

Variant Transaction

+ "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. + "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. + variant_transaction TYPE ty_var, + END OF ty_impl. + + TYPES: + BEGIN OF ty_authorizations, + "!

Start Authorization Object

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + start_authorization_object TYPE ty_sao, + "!

Authorization Default Values

+ "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, + "! simplifying role maintenance and ensuring consistent security settings across users and roles. + "! $required + authorization_defaults TYPE ty_ad, + END OF ty_authorizations. + + TYPES: + "!

Transaction

+ "! Transaction + BEGIN OF ty_main, + "!

Format Version

+ "! Format version + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Header

+ "! Header + "! $required + header TYPE zif_aff_types_v1=>ty_header_80, + "!

General Information

+ "! General Information contains details about the transaction, depending on the transaction type. + "! $required + general_information TYPE ty_impl, + "!

User Interface

+ "! User Interface manage UI classification and GUI support + user_interface TYPE ty_ua, + "!

Authorizations

+ "! Authorizations contain settings related to security and access control: + "! Start Authorization Object and + "! Authorization Default Values + authorizations TYPE ty_authorizations, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.json b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.json new file mode 100644 index 000000000..3bffc160d --- /dev/null +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF for type TRAN - V1", + "originalLanguage": "en" + } +} From d663b3bad4a00c162d6d7ec3f95f5bef929524be Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 24 Jul 2025 11:28:48 +0200 Subject: [PATCH 03/29] React to abaplint --- .../tran/tran/type/zif_aff_tran_v1.intf.abap | 115 ++-- .../tran/tran/zif_aff_tran_v1.intf.abap | 497 ++++++++++++++++++ .../tran/tran/zif_aff_tran_v1.intf.json | 7 + 3 files changed, 576 insertions(+), 43 deletions(-) create mode 100644 file-formats/tran/tran/zif_aff_tran_v1.intf.abap create mode 100644 file-formats/tran/tran/zif_aff_tran_v1.intf.json diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap index b6c8a5962..3af3673db 100644 --- a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap @@ -43,11 +43,13 @@ INTERFACE zif_aff_tran_v1 "! The UI classification indicates the target user group of the transaction. BEGIN OF co_ui_classification, "!

Professional User Transaction

- "! Professional User Transactions are designed for experienced, frequent users of the SAP System who mainly run highly complex transactions. + "! Professional User Transactions are designed for experienced, frequent users of the SAP System + "! who mainly run highly complex transactions. professional_user_transaction TYPE ty_ui_classification VALUE 'P', "!

Easy Web Transaction

"! Easy Web Transactions are the logical further development of Internet Application Components (IACs). - "! You must specify a service name for an Easy Web Transactions, if one exists and is different from the name of the transaction. + "! You must specify a service name for an Easy Web Transactions, if one exists and is different + "! from the name of the transaction. easy_web_transaction TYPE ty_ui_classification VALUE 'E', END OF co_ui_classification. @@ -92,7 +94,8 @@ INTERFACE zif_aff_tran_v1 "! Transaction start dynpro number for dialog transaction program_dynnr TYPE i, "!

Editing of standard transaction variant allowed

- "! If this indicator is set, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance. + "! If this indicator is set, activating a transaction variant as standard transaction variant + "! is enabled in the transaction variant maintenance. "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. stv_maintenance_mode TYPE abap_bool, END OF ty_dia. @@ -113,7 +116,8 @@ INTERFACE zif_aff_tran_v1 TYPES: BEGIN OF ty_oo, "!

Local in Program

- "! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class. + "! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. + "! Otherwise it uses a global ABAP class. local_in_program_indi TYPE abap_bool, "!

Program

"! Name of the program for the OO transacton @@ -131,7 +135,8 @@ INTERFACE zif_aff_tran_v1 "! See the interface IF_OS_TRANSACTION_MANAGER for more information. oo_transaction_model_indi TYPE abap_bool, "!

Update Mode

- "! The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately. + "! The update mode for an OO transaction defines how data changes are processed: synchronously, + "! asynchronously, or immediately. update_mode TYPE ty_update_mode, END OF ty_oo. @@ -147,17 +152,19 @@ INTERFACE zif_aff_tran_v1 "! Value for the parameter of the parameter transaction parameter_value TYPE c LENGTH 50, END OF ty_par_pv. - TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH EMPTY KEY. + TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH DEFAULT KEY. TYPES: BEGIN OF ty_par, "!

Parent Transaction

- "! The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number - "! that are started when the transaction is called. The parent transaction can be a dialog or a report transaction. + "! The parent transaction code of the parameter transaction defines the transaction that provides + "! the program and the dynpro number that are started when the transaction is called. + "! The parent transaction can be a dialog or a report transaction. "! $required par_parent_transaction_code TYPE c LENGTH 20, "!

Skip Initial Screen

- "! Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values. + "! Skip initial screen mode allows bypassing the first screen of the parent + "! transaction by using predefined values. skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, "!

Parameter values

"! Parameter values @@ -168,11 +175,13 @@ INTERFACE zif_aff_tran_v1 BEGIN OF ty_var, "!

Parent Transaction

"! The parent transaction code links related transaction to its original (parent) transaction. - "! It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration. + "! It enables inheritance of settings like UI attributes or authorizations, + "! ensuring consistency and reducing duplication in configuration. "! $required var_parent_transaction_code TYPE c LENGTH 20, "!

Cross Client

- "! If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific. + "! If the indicator is set, the transaction variant is cross-client. If the switch is not set, + "! the transaction variant is client-specific. transaction_variant_ci_indi TYPE abap_bool, "!

Transaction Variant

"! Name of the cross-client transaction variant. @@ -193,8 +202,9 @@ INTERFACE zif_aff_tran_v1 "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} ty_maintenance_mode TYPE c LENGTH 1, "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it + "! in its application andwhether an authorization default is added to a role’s data + "! by the profile generator when the app is in the role menu. "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} ty_maintenance_status TYPE c LENGTH 1. @@ -205,13 +215,16 @@ INTERFACE zif_aff_tran_v1 BEGIN OF co_maintenance_mode, "!

Manual Maintenance

"! This mode is appropriate as long as maintenance of default data has not been completed yet. - "! New objects whose check has been detected by the authorization trace are added to the object list in change mode with the maintenance status Not maintained. + "! New objects whose check has been detected by the authorization trace are added + "! to the object list in change mode with the maintenance status Not maintained. manual TYPE ty_maintenance_mode VALUE space, "!

Automatic Maintenance (All Objects)

- "! In change mode, all authorization objects added from the authorization trace are automatically assigned the default status No Default. + "! In change mode, all authorization objects added from the authorization trace are + "! automatically assigned the default status No Default. automatic TYPE ty_maintenance_mode VALUE 'A', "!

Automatic Maintenance (Basis Authorization Objects Only)

- "! Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are automatically added with the default status No Default. + "! Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are + "! automatically added with the default status No Default. "! All other new objects are given the status Unmaintained, which must be changed. automatic_basis_objects TYPE ty_maintenance_mode VALUE 'B', "!

Application Does Not Require Default Values

@@ -222,33 +235,39 @@ INTERFACE zif_aff_tran_v1 "! In the case of transactions, it is possible to designate successor transactions. deprecated TYPE ty_maintenance_mode VALUE 'D', "!

Application Is Obsolete

- "! This mode is used to classify applications that are not being developed any more and because of this do not meet important functional requirements or + "! This mode is used to classify applications that are not being developed any more and because of + "! this do not meet important functional requirements or "! are not needed any more. obsolete TYPE ty_maintenance_mode VALUE 'O', END OF co_maintenance_mode, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + "! whether an authorization default is added to a role’s data by the profile + "! generator when the app is in the role menu. BEGIN OF co_maintenance_status, "!

Undefined

"! The maintenance status is undefined and must be specified. undefined TYPE ty_maintenance_status VALUE ' ', "!

No Default

- "! This status is given to all objects that are not required for the execution of functions in the application. - "! The authorization check is executed in exactly the same way the statuses described above. + "! This status is given to all objects that are not required for the execution + "! of functions in the application. The authorization check is executed in exactly + "! the same way the statuses described above. no_default TYPE ty_maintenance_status VALUE 'X', "!

Default With Field Values

- "! This default status is assigned to all objects that are used to protect functions within the associated application and - "! for which the delivery of fixed values in one or more authorization fields would help to simplify authorization maintenance in roles. + "! This default status is assigned to all objects that are used to protect functions + "! within the associated application and for which the delivery of fixed values in one + "! or more authorization fields would help to simplify authorization maintenance in roles. default_with_values TYPE ty_maintenance_status VALUE 'Y', "!

Default Without Field Values

"! This status is suitable for objects whose authorizations are required for using an application, - "! but all of whose authorization fields have to be maintained by the role administrator with customer-specific values. + "! but all of whose authorization fields have to be maintained by the role + "! administrator with customer-specific values. default_without_values TYPE ty_maintenance_status VALUE 'V', "!

Default Inactive

- "! For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless of which authorizations the user actually has. - "! For objects belonging to the application areas Basis (S_*) and HR (P_* and PLOG), it is forbidden. + "! For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless + "! of which authorizations the user actually has. For objects belonging to the application areas + "! Basis (S_*) and HR (P_* and PLOG), it is forbidden. inactive_values TYPE ty_maintenance_status VALUE 'I', END OF co_maintenance_status. @@ -279,7 +298,7 @@ INTERFACE zif_aff_tran_v1 "! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. "! This object is auto-assigned in the transaction’s authorization defaults. - TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH EMPTY KEY. + TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. TYPES: "!

Start Authorization Object

@@ -318,15 +337,17 @@ INTERFACE zif_aff_tran_v1 TYPES: "!

Authorization Defaults Authorization Object Details

- "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, + "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, "! simplifying role maintenance and ensuring consistent security settings across users and roles. BEGIN OF ty_ad_ao, "!

Authorization Object Name

"! Name of the authorization object auth_object_name TYPE c LENGTH 10, "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu. + "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for + "! it in its application and whether an authorization default is added to a role’s data by + "! the profile generator when the app is in the role menu. maintenance_status TYPE ty_maintenance_status, "!

Authorization Defaults Documentation for Object

"! Authorization defaults documentation for object @@ -337,8 +358,9 @@ INTERFACE zif_aff_tran_v1 END OF ty_ad_ao. "!

Authorization Defaults Authorization Objects

- "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, - "! simplifying role maintenance and ensuring consistent security settings across users and roles. + "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent + "! security settings across users and roles. TYPES ty_ad_ao_t TYPE STANDARD TABLE OF ty_ad_ao WITH KEY auth_object_name. TYPES: @@ -347,23 +369,26 @@ INTERFACE zif_aff_tran_v1 "! Maintenance modes for applications define how applications can be modified. maintenance_mode TYPE ty_maintenance_mode, "!

Inheritance Mode

- "! Authorization defaults inheritance mode controls how authorization settings are passed from a parent transaction to its variants, + "! Authorization defaults inheritance mode controls how authorization settings are passed from + "! a parent transaction to its variants, "! ensuring consistent access rights and roles across related transactions. inheritance_mode TYPE abap_bool, "!

Authorization Defaults Documentation for Application

"! Authorization defaults documentation for application. documentation TYPE string, "!

Authorization Defaults Authorization Objects

- "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, - "! simplifying role maintenance and ensuring consistent security settings across users and roles. + "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent + "! security settings across users and roles. auth_objects TYPE ty_ad_ao_t, END OF ty_ad. TYPES: BEGIN OF ty_ua, "!

Inherit UI Attributes

- "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are - "! inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions. + "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants + "! or field attributes are inherited from a parent transaction to its variants, ensuring + "! consistent user interfaces across related transactions. inheritance_mode TYPE abap_bool, "!

UI Classification

"! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. @@ -371,12 +396,14 @@ INTERFACE zif_aff_tran_v1 "! without menus or toolbars. ui_clasification TYPE ty_ui_classification, "!

Service

- "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, enabling its execution via a browser. - "! It's required for Easy Web Transactions if the service name differs from the transaction name. + "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, + "! enabling its execution via a browser. It's required for Easy Web Transactions if the service + "! name differs from the transaction name. iac_service_name TYPE c LENGTH 14, "!

Pervasive Enabled

- "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. - "! It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity. + "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, + "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core + "! functions with minimal screen complexity. pervasive_mode TYPE abap_bool, "!

SAP GUI for HTML

"! The transaction supports the start from SAP GUI for HTML. @@ -398,7 +425,8 @@ INTERFACE zif_aff_tran_v1 transaction_type TYPE ty_transaction_type, "!

Lock Status

"! Transaction lock status indicates whether a transaction is currently blocked from execution. - "! It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out. + "! It helps prevent unauthorized or unintended use, especially during maintenance, development, + "! or when a transaction is obsolete or being phased out. lock_status TYPE abap_bool, "!

Dialog Transaction

"! The runtime calls a dynpro of a function group, module pool or report. @@ -433,8 +461,9 @@ INTERFACE zif_aff_tran_v1 "! This object is auto-assigned in the transaction’s authorization defaults. start_authorization_object TYPE ty_sao, "!

Authorization Default Values

- "! Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, - "! simplifying role maintenance and ensuring consistent security settings across users and roles. + "! Authorization default values define which authorization objects and field values are automatically proposed + "! when creating roles for a transaction, simplifying role maintenance and ensuring consistent security + "! settings across users and roles. "! $required authorization_defaults TYPE ty_ad, END OF ty_authorizations. diff --git a/file-formats/tran/tran/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/zif_aff_tran_v1.intf.abap new file mode 100644 index 000000000..3af3673db --- /dev/null +++ b/file-formats/tran/tran/zif_aff_tran_v1.intf.abap @@ -0,0 +1,497 @@ +INTERFACE zif_aff_tran_v1 + PUBLIC. + + "! $values {@link zif_aff_tran_v1.data:co_transaction_type} + "! $default {@link zif_aff_tran_v1.data:co_transaction_type.par} + TYPES ty_transaction_type TYPE c LENGTH 1. + CONSTANTS: + "!

Transaction Type

+ "! The transaction type defines which object will be started at runtime when the transaction is called. + "! Depending on the transaction type, other type of object can be started and different fields become relevant. + "! {@link zif_aff_tran_v1.data:ty_transaction_type } + BEGIN OF co_transaction_type, + "!

Dialog Transaction

+ "! The runtime calls a dynpro of a function group, module pool or report. + "! The dynpro specified as initial screen must not be a selection screen. + "! The program logic defines which screens are displayed after the initial screen. + dia TYPE ty_transaction_type VALUE 'D', + "!

OO Transaction

+ "! At runtime, the system calls a class method. The transaction links to either the ABAP Object + "! Services Transaction Service (for persistent objects) or to a public method of a class. + "! For instance methods, the system auto-creates a class instance. + oo TYPE ty_transaction_type VALUE 'O', + "!

Parameter Transaction

+ "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. + "! You can also skip the initial screen to prevent users from changing these predefined values. + par TYPE ty_transaction_type VALUE 'P', + "!

Report Transaction

+ "! The runtime calls a dynpro of a report. + "! The dynpro specified as initial screen must be a selection screen. + "! The execution of a report usually has three stages: data entry, data processing, and data output. + rep TYPE ty_transaction_type VALUE 'R', + "!

Variant Transaction

+ "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. + "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. + var TYPE ty_transaction_type VALUE 'V', + END OF co_transaction_type. + + "! $values {@link zif_aff_tran_v1.data:co_ui_classification} + "! $default {@link zif_aff_tran_v1.data:co_ui_classification.professional_user_transaction} + TYPES ty_ui_classification TYPE c LENGTH 1. + CONSTANTS: + "!

UI Classification

+ "! The UI classification indicates the target user group of the transaction. + BEGIN OF co_ui_classification, + "!

Professional User Transaction

+ "! Professional User Transactions are designed for experienced, frequent users of the SAP System + "! who mainly run highly complex transactions. + professional_user_transaction TYPE ty_ui_classification VALUE 'P', + "!

Easy Web Transaction

+ "! Easy Web Transactions are the logical further development of Internet Application Components (IACs). + "! You must specify a service name for an Easy Web Transactions, if one exists and is different + "! from the name of the transaction. + easy_web_transaction TYPE ty_ui_classification VALUE 'E', + END OF co_ui_classification. + + TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. + CONSTANTS: + "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} + "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.skip} + "!

Skip Initial Screen Mode

+ BEGIN OF co_skip_initial_screen_mode, + "!

Skip Initial Screen

+ "! Skip Initial Screen + skip TYPE ty_skip_initial_screen_mode VALUE 'Y', + "!

Show Initial Screen

+ "! Show Initial Screen + show TYPE ty_skip_initial_screen_mode VALUE 'N', + END OF co_skip_initial_screen_mode. + + "! $values {@link zif_aff_tran_v1.data:co_update_mode} + "! $default {@link zif_aff_tran_v1.data:co_update_mode.asynchronous} + TYPES ty_update_mode TYPE c LENGTH 1. + CONSTANTS: + "!

Update Mode

+ "! Update Mode for OO Transactions + BEGIN OF co_update_mode, + "!

Asynchronous

+ "! Asynchronous + asynchronous TYPE ty_update_mode VALUE 'U', + "!

Synchronous

+ "! Synchronous + synchronous TYPE ty_update_mode VALUE 'S', + "!

Local

+ "! Local + local TYPE ty_update_mode VALUE 'L', + END OF co_update_mode. + + TYPES: + BEGIN OF ty_dia, + "!

Program

+ "! Program name for dialog transaction + program_name TYPE c LENGTH 40, + "!

Dynpro

+ "! Transaction start dynpro number for dialog transaction + program_dynnr TYPE i, + "!

Editing of standard transaction variant allowed

+ "! If this indicator is set, activating a transaction variant as standard transaction variant + "! is enabled in the transaction variant maintenance. + "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. + stv_maintenance_mode TYPE abap_bool, + END OF ty_dia. + + TYPES: + BEGIN OF ty_rep, + "!

Report

+ "! Report name for the report transaction + report_name TYPE c LENGTH 40, + "!

Screen

+ "! Transaction start selection screen for the report transaction + report_dynnr TYPE i, + "!

Variant

+ "! Variant name for the report transaction + report_variant_name TYPE c LENGTH 14, + END OF ty_rep. + + TYPES: + BEGIN OF ty_oo, + "!

Local in Program

+ "! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. + "! Otherwise it uses a global ABAP class. + local_in_program_indi TYPE abap_bool, + "!

Program

+ "! Name of the program for the OO transacton + class_program_name TYPE c LENGTH 40, + "!

Class

+ "! Name of the ABAP class + "! $required + class_name TYPE c LENGTH 30, + "!

Method Name

+ "! Name of the method of the ABAP class + "! $required + method_name TYPE c LENGTH 61, + "!

OO Transaction Model

+ "! If this indicator is set, the OO transaction follows the object-oriented transaction model. + "! See the interface IF_OS_TRANSACTION_MANAGER for more information. + oo_transaction_model_indi TYPE abap_bool, + "!

Update Mode

+ "! The update mode for an OO transaction defines how data changes are processed: synchronously, + "! asynchronously, or immediately. + update_mode TYPE ty_update_mode, + END OF ty_oo. + + TYPES: + "!

Parameter Value

+ "! Parameter transaction parameter value + BEGIN OF ty_par_pv, + "!

Parameter Name

+ "! Name of the parameter for the parameter transaction + "! $required + parameter_name TYPE c LENGTH 132, + "!

Parameter Value

+ "! Value for the parameter of the parameter transaction + parameter_value TYPE c LENGTH 50, + END OF ty_par_pv. + TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH DEFAULT KEY. + + TYPES: + BEGIN OF ty_par, + "!

Parent Transaction

+ "! The parent transaction code of the parameter transaction defines the transaction that provides + "! the program and the dynpro number that are started when the transaction is called. + "! The parent transaction can be a dialog or a report transaction. + "! $required + par_parent_transaction_code TYPE c LENGTH 20, + "!

Skip Initial Screen

+ "! Skip initial screen mode allows bypassing the first screen of the parent + "! transaction by using predefined values. + skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, + "!

Parameter values

+ "! Parameter values + parameter_values TYPE ty_par_pv_t, + END OF ty_par. + + TYPES: + BEGIN OF ty_var, + "!

Parent Transaction

+ "! The parent transaction code links related transaction to its original (parent) transaction. + "! It enables inheritance of settings like UI attributes or authorizations, + "! ensuring consistency and reducing duplication in configuration. + "! $required + var_parent_transaction_code TYPE c LENGTH 20, + "!

Cross Client

+ "! If the indicator is set, the transaction variant is cross-client. If the switch is not set, + "! the transaction variant is client-specific. + transaction_variant_ci_indi TYPE abap_bool, + "!

Transaction Variant

+ "! Name of the cross-client transaction variant. + "! A cross-client transaction variant is available in the system regardless of which client is currently active, + "! and the field contents used in the transaction variant must be available in all clients. + transaction_ci_variant_name TYPE c LENGTH 30, + "!

Transaction Variant

+ "! Name of the client-specific transaction variant. + "! A client-specific transaction variant exists only in the client where it was created, + "! and the field contents used in the transaction variant must be available in that client. + transaction_variant_name TYPE c LENGTH 30, + END OF ty_var. + + TYPES: + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_mode} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} + ty_maintenance_mode TYPE c LENGTH 1, + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it + "! in its application andwhether an authorization default is added to a role’s data + "! by the profile generator when the app is in the role menu. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} + ty_maintenance_status TYPE c LENGTH 1. + + CONSTANTS: + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + BEGIN OF co_maintenance_mode, + "!

Manual Maintenance

+ "! This mode is appropriate as long as maintenance of default data has not been completed yet. + "! New objects whose check has been detected by the authorization trace are added + "! to the object list in change mode with the maintenance status Not maintained. + manual TYPE ty_maintenance_mode VALUE space, + "!

Automatic Maintenance (All Objects)

+ "! In change mode, all authorization objects added from the authorization trace are + "! automatically assigned the default status No Default. + automatic TYPE ty_maintenance_mode VALUE 'A', + "!

Automatic Maintenance (Basis Authorization Objects Only)

+ "! Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are + "! automatically added with the default status No Default. + "! All other new objects are given the status Unmaintained, which must be changed. + automatic_basis_objects TYPE ty_maintenance_mode VALUE 'B', + "!

Application Does Not Require Default Values

+ "! This modus is given to all applications for whose execution only the start authorization is required. + no_default_values TYPE ty_maintenance_mode VALUE 'I', + "!

Application Is Deprecated

+ "! It is used to classify applications that are not being developed any more but that can still be used. + "! In the case of transactions, it is possible to designate successor transactions. + deprecated TYPE ty_maintenance_mode VALUE 'D', + "!

Application Is Obsolete

+ "! This mode is used to classify applications that are not being developed any more and because of + "! this do not meet important functional requirements or + "! are not needed any more. + obsolete TYPE ty_maintenance_mode VALUE 'O', + END OF co_maintenance_mode, + + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and + "! whether an authorization default is added to a role’s data by the profile + "! generator when the app is in the role menu. + BEGIN OF co_maintenance_status, + "!

Undefined

+ "! The maintenance status is undefined and must be specified. + undefined TYPE ty_maintenance_status VALUE ' ', + "!

No Default

+ "! This status is given to all objects that are not required for the execution + "! of functions in the application. The authorization check is executed in exactly + "! the same way the statuses described above. + no_default TYPE ty_maintenance_status VALUE 'X', + "!

Default With Field Values

+ "! This default status is assigned to all objects that are used to protect functions + "! within the associated application and for which the delivery of fixed values in one + "! or more authorization fields would help to simplify authorization maintenance in roles. + default_with_values TYPE ty_maintenance_status VALUE 'Y', + "!

Default Without Field Values

+ "! This status is suitable for objects whose authorizations are required for using an application, + "! but all of whose authorization fields have to be maintained by the role + "! administrator with customer-specific values. + default_without_values TYPE ty_maintenance_status VALUE 'V', + "!

Default Inactive

+ "! For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless + "! of which authorizations the user actually has. For objects belonging to the application areas + "! Basis (S_*) and HR (P_* and PLOG), it is forbidden. + inactive_values TYPE ty_maintenance_status VALUE 'I', + END OF co_maintenance_status. + + TYPES: + "!

Authorization Value

+ "! Authorization value + ty_val TYPE c LENGTH 40, + "!

Authorization Field

+ "! Authorization field + ty_field TYPE c LENGTH 10. + + TYPES: + "!

Start Authorization Object Field Value

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + BEGIN OF ty_sao_afv, + "!

Authorization Field

+ "! Name of the authorization field of the start authorization object + "! $required + auth_field_name TYPE ty_field, + "!

Authorization Value

+ "! Value for the authorization field + auth_field_value TYPE ty_val, + END OF ty_sao_afv. + + "!

Start Authorization Object Field Value

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. + + TYPES: + "!

Start Authorization Object

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + BEGIN OF ty_sao, + "!

Start Authorization Object Name

+ "! Name of the start authorization object + "! $required + auth_object_name TYPE c LENGTH 10, + "!

Start Authorization Object Field Values

+ "! Fields with values for the start authorization object + auth_object_field_values TYPE ty_sao_afv_t, + END OF ty_sao. + + TYPES: + "!

Authorization Defaults Authorization Field Value

+ "! Authorization defaults authorization field value + BEGIN OF ty_ad_afv, + "!

Authorization Field

+ "! Authorization field + auth_field_name TYPE ty_field, + "!

From

+ "! From value + "! $showAlways + auth_field_low_value TYPE ty_val, + "!

To

+ "! To value + auth_field_high_value TYPE ty_val, + END OF ty_ad_afv. + TYPES: + "!

Authorization Defaults Authorization Field Values

+ "! Authorization defaults authorization field values + ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. + + TYPES: + "!

Authorization Defaults Authorization Object Details

+ "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, + "! simplifying role maintenance and ensuring consistent security settings across users and roles. + BEGIN OF ty_ad_ao, + "!

Authorization Object Name

+ "! Name of the authorization object + auth_object_name TYPE c LENGTH 10, + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for + "! it in its application and whether an authorization default is added to a role’s data by + "! the profile generator when the app is in the role menu. + maintenance_status TYPE ty_maintenance_status, + "!

Authorization Defaults Documentation for Object

+ "! Authorization defaults documentation for object + documentation TYPE string, + "!

Authorization Defaults Authorization Field Value

+ "! Authorization defaults authorization field value + auth_object_field_values TYPE ty_ad_afv_t, + END OF ty_ad_ao. + + "!

Authorization Defaults Authorization Objects

+ "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent + "! security settings across users and roles. + TYPES ty_ad_ao_t TYPE STANDARD TABLE OF ty_ad_ao WITH KEY auth_object_name. + + TYPES: + BEGIN OF ty_ad, + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + maintenance_mode TYPE ty_maintenance_mode, + "!

Inheritance Mode

+ "! Authorization defaults inheritance mode controls how authorization settings are passed from + "! a parent transaction to its variants, + "! ensuring consistent access rights and roles across related transactions. + inheritance_mode TYPE abap_bool, + "!

Authorization Defaults Documentation for Application

+ "! Authorization defaults documentation for application. + documentation TYPE string, + "!

Authorization Defaults Authorization Objects

+ "! Authorization default values define which authorization objects and field values are automatically + "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent + "! security settings across users and roles. + auth_objects TYPE ty_ad_ao_t, + END OF ty_ad. + + TYPES: + BEGIN OF ty_ua, + "!

Inherit UI Attributes

+ "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants + "! or field attributes are inherited from a parent transaction to its variants, ensuring + "! consistent user interfaces across related transactions. + inheritance_mode TYPE abap_bool, + "!

UI Classification

+ "! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. + "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, + "! without menus or toolbars. + ui_clasification TYPE ty_ui_classification, + "!

Service

+ "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, + "! enabling its execution via a browser. It's required for Easy Web Transactions if the service + "! name differs from the transaction name. + iac_service_name TYPE c LENGTH 14, + "!

Pervasive Enabled

+ "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, + "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core + "! functions with minimal screen complexity. + pervasive_mode TYPE abap_bool, + "!

SAP GUI for HTML

+ "! The transaction supports the start from SAP GUI for HTML. + webgui_mode TYPE abap_bool, + "!

SAP GUI for Java

+ "! The transaction supports the start from SAP GUI for Java. + platin_mode TYPE abap_bool, + "!

SAP GUI for Windows

+ "! The transaction supports the start from SAP GUI for Windows. + win32_mode TYPE abap_bool, + END OF ty_ua. + + TYPES: + BEGIN OF ty_impl, + "!

Transaction Type

+ "! The transaction type defines which object will be started at runtime when the transaction is called. + "! Depending on the transaction type, other type of object can be started and different fields become relevant. + "! $required + transaction_type TYPE ty_transaction_type, + "!

Lock Status

+ "! Transaction lock status indicates whether a transaction is currently blocked from execution. + "! It helps prevent unauthorized or unintended use, especially during maintenance, development, + "! or when a transaction is obsolete or being phased out. + lock_status TYPE abap_bool, + "!

Dialog Transaction

+ "! The runtime calls a dynpro of a function group, module pool or report. + "! The dynpro specified as initial screen must not be a selection screen. + "! The program logic defines which screens are displayed after the initial screen. + dialog_transaction TYPE ty_dia, + "!

Parameter Transaction

+ "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. + "! You can also skip the initial screen to prevent users from changing these predefined values. + parameter_transaction TYPE ty_par, + "!

Report Transaction

+ "! The runtime calls a dynpro of a report. + "! The dynpro specified as initial screen must be a selection screen. + "! The execution of a report usually has three stages: data entry, data processing, and data output. + report_transaction TYPE ty_rep, + "!

OO Transaction

+ "! At runtime, the system calls a class method. The transaction links to either the ABAP Object + "! Services Transaction Service (for persistent objects) or to a public method of a class. + "! For instance methods, the system auto-creates a class instance. + oo_transaction TYPE ty_oo, + "!

Variant Transaction

+ "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. + "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. + variant_transaction TYPE ty_var, + END OF ty_impl. + + TYPES: + BEGIN OF ty_authorizations, + "!

Start Authorization Object

+ "! A start authorization object controls who may run a transaction. It is checked at transaction start. + "! Fields must have single or empty values. Empty fields trigger a DUMMY check. + "! This object is auto-assigned in the transaction’s authorization defaults. + start_authorization_object TYPE ty_sao, + "!

Authorization Default Values

+ "! Authorization default values define which authorization objects and field values are automatically proposed + "! when creating roles for a transaction, simplifying role maintenance and ensuring consistent security + "! settings across users and roles. + "! $required + authorization_defaults TYPE ty_ad, + END OF ty_authorizations. + + TYPES: + "!

Transaction

+ "! Transaction + BEGIN OF ty_main, + "!

Format Version

+ "! Format version + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Header

+ "! Header + "! $required + header TYPE zif_aff_types_v1=>ty_header_80, + "!

General Information

+ "! General Information contains details about the transaction, depending on the transaction type. + "! $required + general_information TYPE ty_impl, + "!

User Interface

+ "! User Interface manage UI classification and GUI support + user_interface TYPE ty_ua, + "!

Authorizations

+ "! Authorizations contain settings related to security and access control: + "! Start Authorization Object and + "! Authorization Default Values + authorizations TYPE ty_authorizations, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/tran/tran/zif_aff_tran_v1.intf.json b/file-formats/tran/tran/zif_aff_tran_v1.intf.json new file mode 100644 index 000000000..3bffc160d --- /dev/null +++ b/file-formats/tran/tran/zif_aff_tran_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF for type TRAN - V1", + "originalLanguage": "en" + } +} From fcb415bb10dbd59b686fd2d294aa8c2c528dd2ab Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 24 Jul 2025 11:41:15 +0200 Subject: [PATCH 04/29] React of abaplint 2 --- file-formats/tran/tran/tran-v1.json | 6 +++--- .../tran/tran/type/zif_aff_tran_v1.intf.abap | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/file-formats/tran/tran/tran-v1.json b/file-formats/tran/tran/tran-v1.json index 6c061f28c..70c9b21a3 100644 --- a/file-formats/tran/tran/tran-v1.json +++ b/file-formats/tran/tran/tran-v1.json @@ -363,7 +363,7 @@ "properties": { "startAuthorizationObject": { "title": "Start Authorization Object", - "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the transaction’s authorization defaults.", + "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the authorization defaults transaction.", "type": "object", "properties": { "authObjectName": { @@ -378,7 +378,7 @@ "type": "array", "items": { "title": "Start Authorization Object Field Value", - "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the transaction’s authorization defaults.", + "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the authorization defaults of transaction.", "type": "object", "properties": { "authFieldName": { @@ -468,7 +468,7 @@ }, "maintenanceStatus": { "title": "Maintenance Status", - "description": "The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and whether an authorization default is added to a role’s data by the profile generator when the app is in the role menu.", + "description": "The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and whether an authorization default is added to a data of role data by the profile generator when the app is in the role menu.", "type": "string", "enum": [ "undefined", diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap index 3af3673db..ee5e1d7d9 100644 --- a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap @@ -203,7 +203,7 @@ INTERFACE zif_aff_tran_v1 ty_maintenance_mode TYPE c LENGTH 1, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it - "! in its application andwhether an authorization default is added to a role’s data + "! in its application andwhether an authorization default is added to a data of role "! by the profile generator when the app is in the role menu. "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} @@ -243,7 +243,7 @@ INTERFACE zif_aff_tran_v1 "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a role’s data by the profile + "! whether an authorization default is added to a data of role by the profile "! generator when the app is in the role menu. BEGIN OF co_maintenance_status, "!

Undefined

@@ -283,7 +283,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object Field Value

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults of transaction. BEGIN OF ty_sao_afv, "!

Authorization Field

"! Name of the authorization field of the start authorization object @@ -304,7 +304,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. BEGIN OF ty_sao, "!

Start Authorization Object Name

"! Name of the start authorization object @@ -346,7 +346,7 @@ INTERFACE zif_aff_tran_v1 auth_object_name TYPE c LENGTH 10, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for - "! it in its application and whether an authorization default is added to a role’s data by + "! it in its application and whether an authorization default is added to a data of role data by "! the profile generator when the app is in the role menu. maintenance_status TYPE ty_maintenance_status, "!

Authorization Defaults Documentation for Object

@@ -458,7 +458,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. start_authorization_object TYPE ty_sao, "!

Authorization Default Values

"! Authorization default values define which authorization objects and field values are automatically proposed From feea4b7c3c200bc3e1663a0b990f64e99eb4e2ef Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 24 Jul 2025 11:49:27 +0200 Subject: [PATCH 05/29] React to abaplint --- .../tran/tran/type/zif_aff_tran_v1.intf.abap | 2 +- file-formats/tran/tran/zif_aff_tran_v1.intf.abap | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap index ee5e1d7d9..9ea7d931c 100644 --- a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap @@ -297,7 +297,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object Field Value

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. TYPES: diff --git a/file-formats/tran/tran/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/zif_aff_tran_v1.intf.abap index 3af3673db..9ea7d931c 100644 --- a/file-formats/tran/tran/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/tran/zif_aff_tran_v1.intf.abap @@ -203,7 +203,7 @@ INTERFACE zif_aff_tran_v1 ty_maintenance_mode TYPE c LENGTH 1, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it - "! in its application andwhether an authorization default is added to a role’s data + "! in its application andwhether an authorization default is added to a data of role "! by the profile generator when the app is in the role menu. "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} @@ -243,7 +243,7 @@ INTERFACE zif_aff_tran_v1 "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a role’s data by the profile + "! whether an authorization default is added to a data of role by the profile "! generator when the app is in the role menu. BEGIN OF co_maintenance_status, "!

Undefined

@@ -283,7 +283,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object Field Value

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults of transaction. BEGIN OF ty_sao_afv, "!

Authorization Field

"! Name of the authorization field of the start authorization object @@ -297,14 +297,14 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object Field Value

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. TYPES: "!

Start Authorization Object

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. BEGIN OF ty_sao, "!

Start Authorization Object Name

"! Name of the start authorization object @@ -346,7 +346,7 @@ INTERFACE zif_aff_tran_v1 auth_object_name TYPE c LENGTH 10, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for - "! it in its application and whether an authorization default is added to a role’s data by + "! it in its application and whether an authorization default is added to a data of role data by "! the profile generator when the app is in the role menu. maintenance_status TYPE ty_maintenance_status, "!

Authorization Defaults Documentation for Object

@@ -458,7 +458,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the transaction’s authorization defaults. + "! This object is auto-assigned in the authorization defaults transaction. start_authorization_object TYPE ty_sao, "!

Authorization Default Values

"! Authorization default values define which authorization objects and field values are automatically proposed From 21a23c27f79d4a7275c10253e15b97c14d31ac85 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 24 Jul 2025 15:29:06 +0200 Subject: [PATCH 06/29] React of abaplint 2 From 2b468bd1bfe17d36dacce4d6148d4c1a3daa478f Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:22:38 +0200 Subject: [PATCH 07/29] New types in AFF interface --- file-formats/tran/tran/README.md | 2 +- file-formats/tran/tran/tran-v1.json | 90 +++++++++++++++++-- .../tran/tran/type/zif_aff_tran_v1.intf.abap | 73 +++++++++++++-- 3 files changed, 152 insertions(+), 13 deletions(-) diff --git a/file-formats/tran/tran/README.md b/file-formats/tran/tran/README.md index e66e356c7..74b442134 100644 --- a/file-formats/tran/tran/README.md +++ b/file-formats/tran/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json.tran.json`](./examples/se93_test_par.tran.json.tran.json) diff --git a/file-formats/tran/tran/tran-v1.json b/file-formats/tran/tran/tran-v1.json index 70c9b21a3..f89bc0bd2 100644 --- a/file-formats/tran/tran/tran-v1.json +++ b/file-formats/tran/tran/tran-v1.json @@ -307,7 +307,20 @@ "inheritanceMode": { "title": "Inherit UI Attributes", "description": "Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions.", - "type": "boolean" + "type": "string", + "enum": [ + "active", + "inactive" + ], + "enumTitles": [ + "Active", + "Inactive" + ], + "enumDescriptions": [ + "Active", + "Inactive" + ], + "default": "inactive" }, "uiClasification": { "title": "UI Classification", @@ -336,22 +349,74 @@ "pervasiveMode": { "title": "Pervasive Enabled", "description": "Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity.", - "type": "boolean" + "type": "string", + "enum": [ + "disabled", + "enabled" + ], + "enumTitles": [ + "Disabled", + "Enabled" + ], + "enumDescriptions": [ + "Disabled", + "Enabled" + ], + "default": "enabled" }, "webguiMode": { "title": "SAP GUI for HTML", "description": "The transaction supports the start from SAP GUI for HTML.", - "type": "boolean" + "type": "string", + "enum": [ + "supported", + "notSupported" + ], + "enumTitles": [ + "Supported", + "Not Supported" + ], + "enumDescriptions": [ + "Supported", + "Not Supported" + ], + "default": "supported" }, "platinMode": { "title": "SAP GUI for Java", "description": "The transaction supports the start from SAP GUI for Java.", - "type": "boolean" + "type": "string", + "enum": [ + "supported", + "notSupported" + ], + "enumTitles": [ + "Supported", + "Not Supported" + ], + "enumDescriptions": [ + "Supported", + "Not Supported" + ], + "default": "supported" }, "win32Mode": { "title": "SAP GUI for Windows", "description": "The transaction supports the start from SAP GUI for Windows.", - "type": "boolean" + "type": "string", + "enum": [ + "supported", + "notSupported" + ], + "enumTitles": [ + "Supported", + "Not Supported" + ], + "enumDescriptions": [ + "Supported", + "Not Supported" + ], + "default": "supported" } }, "additionalProperties": false @@ -444,7 +509,20 @@ "inheritanceMode": { "title": "Inheritance Mode", "description": "Authorization defaults inheritance mode controls how authorization settings are passed from a parent transaction to its variants, ensuring consistent access rights and roles across related transactions.", - "type": "boolean" + "type": "string", + "enum": [ + "active", + "inactive" + ], + "enumTitles": [ + "Active", + "Inactive" + ], + "enumDescriptions": [ + "Active", + "Inactive" + ], + "default": "active" }, "documentation": { "title": "Authorization Defaults Documentation for Application", diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap index 9ea7d931c..9c5adef23 100644 --- a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap @@ -53,6 +53,51 @@ INTERFACE zif_aff_tran_v1 easy_web_transaction TYPE ty_ui_classification VALUE 'E', END OF co_ui_classification. + "! $values {@link zif_aff_tran_v1.data:co_ua_inheritance_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_inheritance_mode.inactive} + TYPES ty_ua_inheritance_mode TYPE c LENGTH 1. + CONSTANTS: + "!

UI Attributes Inheritance Mode

+ "! UI attributes inheritance mode + BEGIN OF co_ua_inheritance_mode, + "!

Active

+ "! Active + active TYPE ty_ua_inheritance_mode VALUE 'A', + "!

Inactive

+ "! Inactive + inactive TYPE ty_ua_inheritance_mode VALUE 'I', + END OF co_ua_inheritance_mode. + + "! $values {@link zif_aff_tran_v1.data:co_ua_pervasive_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_pervasive_mode.enabled} + TYPES ty_ua_pervasive_mode TYPE c LENGTH 1. + CONSTANTS: + "!

UI Attributes Inheritance Mode

+ "! UI attributes inheritance mode + BEGIN OF co_ua_pervasive_mode, + "!

Disabled

+ "! Disabled + disabled TYPE ty_ua_pervasive_mode VALUE 'D', + "!

Enabled

+ "! Enabled + enabled TYPE ty_ua_pervasive_mode VALUE 'E', + END OF co_ua_pervasive_mode. + + "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} + TYPES ty_ua_support_mode TYPE c LENGTH 1. + CONSTANTS: + "!

SAP GUI Support

+ "! SAP GUI support + BEGIN OF co_ua_support_mode, + "!

Supported

+ "! Supported + supported TYPE ty_ua_support_mode VALUE 'X', + "!

Not Supported

+ "! Not Supported + not_supported TYPE ty_ua_support_mode VALUE ' ', + END OF co_ua_support_mode. + TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. CONSTANTS: "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} @@ -271,6 +316,22 @@ INTERFACE zif_aff_tran_v1 inactive_values TYPE ty_maintenance_status VALUE 'I', END OF co_maintenance_status. + "! $values {@link zif_aff_tran_v1.data:co_inheritance_mode} + "! $default {@link zif_aff_tran_v1.data:co_inheritance_mode.active} + TYPES ty_inheritance_mode TYPE c LENGTH 10. + CONSTANTS: + "!

Authorization Defaults Inheritance Mode

+ "! The inheritance mode control if the authorization defaults of the parent + "! transaction are used, of if the parameter transaction uses own authorization defaults. + BEGIN OF co_inheritance_mode, + "!

Active

+ "! Active + active TYPE ty_inheritance_mode VALUE 'ACTIVE', + "!

Inactive

+ "! Inactive + inactive TYPE ty_inheritance_mode VALUE 'INACTIVE', + END OF co_inheritance_mode. + TYPES: "!

Authorization Value

"! Authorization value @@ -372,7 +433,7 @@ INTERFACE zif_aff_tran_v1 "! Authorization defaults inheritance mode controls how authorization settings are passed from "! a parent transaction to its variants, "! ensuring consistent access rights and roles across related transactions. - inheritance_mode TYPE abap_bool, + inheritance_mode TYPE ty_inheritance_mode, "!

Authorization Defaults Documentation for Application

"! Authorization defaults documentation for application. documentation TYPE string, @@ -389,7 +450,7 @@ INTERFACE zif_aff_tran_v1 "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants "! or field attributes are inherited from a parent transaction to its variants, ensuring "! consistent user interfaces across related transactions. - inheritance_mode TYPE abap_bool, + inheritance_mode TYPE ty_ua_inheritance_mode, "!

UI Classification

"! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, @@ -404,16 +465,16 @@ INTERFACE zif_aff_tran_v1 "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core "! functions with minimal screen complexity. - pervasive_mode TYPE abap_bool, + pervasive_mode TYPE ty_ua_pervasive_mode, "!

SAP GUI for HTML

"! The transaction supports the start from SAP GUI for HTML. - webgui_mode TYPE abap_bool, + webgui_mode TYPE ty_ua_support_mode, "!

SAP GUI for Java

"! The transaction supports the start from SAP GUI for Java. - platin_mode TYPE abap_bool, + platin_mode TYPE ty_ua_support_mode, "!

SAP GUI for Windows

"! The transaction supports the start from SAP GUI for Windows. - win32_mode TYPE abap_bool, + win32_mode TYPE ty_ua_support_mode, END OF ty_ua. TYPES: From f374af912dfde59d57403a842f47f89067476c4d Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:32:06 +0200 Subject: [PATCH 08/29] Delete of SUSH --- file-formats/sush/sush/README.md | 5 - file-formats/sush/sush/sush-v1.json | 228 ------------------ .../sush/sush/type/zif_aff_sush_v1.intf.abap | 106 -------- .../sush/sush/type/zif_aff_sush_v1.intf.json | 7 - 4 files changed, 346 deletions(-) delete mode 100644 file-formats/sush/sush/README.md delete mode 100644 file-formats/sush/sush/sush-v1.json delete mode 100644 file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap delete mode 100644 file-formats/sush/sush/type/zif_aff_sush_v1.intf.json diff --git a/file-formats/sush/sush/README.md b/file-formats/sush/sush/README.md deleted file mode 100644 index 2617ca19e..000000000 --- a/file-formats/sush/sush/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# SUSH File Format - -File | Cardinality | Definition | Schema | Example -:--- | :--- | :--- | :--- | :--- -`.sush.json` | 1 | [`zif_aff_sush_v1.intf.abap`](./type/zif_aff_sush_v1.intf.abap) | [`sush-v1.json`](./sush-v1.json) | [`z_aff_example_sush.sush.json`](./examples/z_aff_example_sush.sush.json) diff --git a/file-formats/sush/sush/sush-v1.json b/file-formats/sush/sush/sush-v1.json deleted file mode 100644 index 2d402287d..000000000 --- a/file-formats/sush/sush/sush-v1.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "$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/sush/sush-v1.json", - "title": "SUSH Object Type", - "description": "Object type SUSH", - "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", - "keyUser", - "cloudDevelopment" - ], - "enumTitles": [ - "Standard", - "ABAP for Key Users", - "ABAP Cloud Development" - ], - "enumDescriptions": [ - "Standard", - "ABAP for key user extensibility", - "ABAP cloud development" - ], - "default": "standard" - } - }, - "additionalProperties": false, - "required": [ - "description", - "originalLanguage" - ] - }, - "general": { - "title": "General", - "description": "General", - "type": "object", - "properties": { - "name": { - "title": "Application Name", - "description": "Application Name of Authorization Default Value.", - "type": "string", - "maxLength": 30 - }, - "type": { - "title": "Type", - "description": "Type of Authorization Default Value.", - "type": "string", - "enum": [ - "transaction", - "?", - "rfcFunctionModule", - "hashValueForTadirObject", - "hashValueForExternalService", - "collisionHashValue" - ], - "enumDescriptions": [ - "Transaction", - "?", - "RFC Function Module", - "Hash Value for TADIR Object", - "Hash Value for External Service", - "Collision Hash Value" - ] - }, - "okflag": { - "title": "Maintenance Mode", - "description": "Maintenance Mode.", - "type": "string", - "enum": [ - "manualMaintenance", - "automaticMaintenance(allAuthorizationObjects)", - "automaticMaintenance(basisAuthorizationObjectsOnly)", - "applicationDoesNotRequireDefaultValues", - "applicationIsDeprecated", - "applicationIsObsolete" - ], - "enumDescriptions": [ - "Manual Maintenance", - "Automatic Maintenance (All Authorization Objects)", - "Automatic Maintenance (Basis Authorization Objects Only)", - "Application Does Not Require Default Values", - "Application is Deprecated", - "Application Is Obsolete" - ] - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "okflag" - ] - }, - "authorizationObjects": { - "title": "Authorization objects", - "description": "Authorization objects", - "type": "array", - "items": { - "title": "Authorization Objects Details", - "description": "Authorization Objects Details", - "type": "object", - "properties": { - "object": { - "title": "Object", - "description": "Name of Authorization Object", - "type": "string", - "maxLength": 10 - }, - "ttext": { - "title": "Object Description", - "description": "Authorization Object Description", - "type": "string", - "maxLength": 60 - }, - "okflag": { - "title": "Maintenance Status", - "description": "Maintenance Status", - "type": "string", - "enum": [ - "noAuthorizationCheck", - "authorizationCheckTakesPlace", - "undefined", - "authorizationCheckTakesPlace;DefaultValuesInUsobt", - "undefined", - "authorizationCheckTakesPlace,NoDefaultValues", - "inactiveAuthorizationDefault" - ], - "enumDescriptions": [ - "No authorization check", - "Authorization check takes place", - "Undefined", - "Authorization check takes place; default values in USOBT", - "Undefined", - "Authorization check takes place, no default values", - "Inactive Authorization Default" - ] - }, - "fields": { - "title": "Fields", - "description": "Authorization Fields.", - "type": "array", - "items": { - "title": "Authorization Field Details", - "description": "Authorization Field Details", - "type": "object", - "properties": { - "field": { - "title": "Field", - "description": "Name of Authorization Field", - "type": "string", - "maxLength": 10 - }, - "values": { - "title": "Values", - "description": "Name of Authorization Field Value", - "type": "array", - "items": { - "title": "Default Authorization Values", - "description": "Default Authorization Values", - "type": "object", - "properties": { - "low": { - "title": "From", - "description": "From Value", - "type": "string", - "maxLength": 40 - }, - "high": { - "title": "To", - "description": "To Values", - "type": "string", - "maxLength": 40 - } - }, - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "required": [ - "field" - ] - } - } - }, - "additionalProperties": false, - "required": [ - "object" - ] - } - } - }, - "additionalProperties": false, - "required": [ - "formatVersion", - "header", - "general" - ] -} diff --git a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap deleted file mode 100644 index bb3ffa0a2..000000000 --- a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.abap +++ /dev/null @@ -1,106 +0,0 @@ -interface zif_aff_sush_v1 - public . - types: - "!

General

- "! General - "! $required - begin of ty_general, - "!

Application Name

- "! Application Name of Authorization Default Value. - "! $required - name type usobx-name, - "!

Type

- "! Type of Authorization Default Value. - "! $required - type type usobx-type, - "!

Maintenance Mode

- "! Maintenance Mode. - "! $required - okflag type usob_status_flag, - end of ty_general . - - types: - "!

Default Authorization Values

- "! Default Authorization Values - begin of ty_value, - "!

From

- "! From Value - "! $showAlways - low type usobt-low, - "!

To

- "! To Values - "! $showAlways - high type usobt-high, - end of ty_value . - - types: - "!

Authorization Fields

- "! Authorization Fields - ty_values type standard table of ty_value with default key. - - types: - "!

Authorization Field Details

- "! Authorization Field Details - begin of ty_fldtablestruc, - "!

Field

- "! Name of Authorization Field - "! $required - field type usobt-field, - "!

Values

- "! Name of Authorization Field Value - values type ty_values, - end of ty_fldtablestruc . - - types: - "!

Authorization Fields

- "! Authorization Fields - ty_authorization_fields type standard table of ty_fldtablestruc with default key. - - types: - "!

Authorization Objects Details

- "! Authorization Objects Details - begin of ty_objtablestruc, - "!

Object

- "! Name of Authorization Object - "! $required - object type usobx-object, - "!

Object Description

- "! Authorization Object Description - "! $showAlways - ttext type tobjt-ttext, - "!

Maintenance Status

- "! Maintenance Status - "! $showAlways - okflag type usobx-okflag, - "!

Fields

- "! Authorization Fields. - "! $showAlways - fields type ty_authorization_fields, - - end of ty_objtablestruc . - - types: - "!

Authorization Objects

- "! Authorization Objects - ty_authorization_objects type standard table of ty_objtablestruc with default key. - - types: - "!

SUSH Object Type

- "! Object type SUSH - 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_60_src, - "!

General

- "! General - "! $required - general type ty_general, - "!

Authorization objects

- "! Authorization objects - authorization_objects type ty_authorization_objects, - end of ty_main . - -endinterface. diff --git a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json b/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json deleted file mode 100644 index 920811c45..000000000 --- a/file-formats/sush/sush/type/zif_aff_sush_v1.intf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "formatVersion": "1", - "header": { - "description": "Authentication Default Values AFF", - "originalLanguage": "en" - } -} From 6a84f166154f9a21ee00a770eba1351cd5503b5f Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:44:22 +0200 Subject: [PATCH 09/29] Add example for TRAN --- file-formats/tran/{tran => }/README.md | 2 +- .../examples/z_aff_example_tran.tran.json | 63 +++ file-formats/tran/{tran => }/tran-v1.json | 0 .../tran/tran/zif_aff_tran_v1.intf.abap | 497 ------------------ .../tran/tran/zif_aff_tran_v1.intf.json | 7 - .../{tran => }/type/zif_aff_tran_v1.intf.abap | 0 .../{tran => }/type/zif_aff_tran_v1.intf.json | 0 7 files changed, 64 insertions(+), 505 deletions(-) rename file-formats/tran/{tran => }/README.md (81%) create mode 100644 file-formats/tran/examples/z_aff_example_tran.tran.json rename file-formats/tran/{tran => }/tran-v1.json (100%) delete mode 100644 file-formats/tran/tran/zif_aff_tran_v1.intf.abap delete mode 100644 file-formats/tran/tran/zif_aff_tran_v1.intf.json rename file-formats/tran/{tran => }/type/zif_aff_tran_v1.intf.abap (100%) rename file-formats/tran/{tran => }/type/zif_aff_tran_v1.intf.json (100%) diff --git a/file-formats/tran/tran/README.md b/file-formats/tran/README.md similarity index 81% rename from file-formats/tran/tran/README.md rename to file-formats/tran/README.md index 74b442134..654a72c66 100644 --- a/file-formats/tran/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json.tran.json`](./examples/se93_test_par.tran.json.tran.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json`](./examples/z_aff_example_tran.tran.json) \ No newline at end of file diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json new file mode 100644 index 000000000..2f3d3150c --- /dev/null +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -0,0 +1,63 @@ +{ + "formatVersion": "1", + "header": { + "description": "SE93 Test - Parameter Transaction", + "originalLanguage": "en" + }, + "generalInformation": { + "transactionType": "par", + "parameterTransaction": { + "parParentTransactionCode": "SE16", + "skipInitialScreenMode": "N", + "parameterValues": [ + { + "parameterName": "DATABROWSE-TABLENAME", + "parameterValue": "TSTC" + } + ] + } + }, + "userInterface": { + "inheritanceMode": "active", + "pervasiveMode": "disabled", + "webguiMode": "N", + "platinMode": "N", + "win32Mode": "N" + }, + "authorizations": { + "authorizationDefaults": { + "inheritanceMode": "inactive", + "authObjects": [ + { + "authObjectName": "S_ABPLNGVS", + "maintenanceStatus": "noDefault" + }, + { + "authObjectName": "S_DEVELOP", + "maintenanceStatus": "noDefault" + }, + { + "authObjectName": "S_TABU_CLI", + "maintenanceStatus": "noDefault" + }, + { + "authObjectName": "S_TABU_NAM", + "authObjectFieldValues": [ + { + "authFieldName": "ACTVT", + "authFieldLowValue": "03" + }, + { + "authFieldName": "TABLE", + "authFieldLowValue": "" + } + ] + }, + { + "authObjectName": "S_TCODE", + "maintenanceStatus": "noDefault" + } + ] + } + } +} diff --git a/file-formats/tran/tran/tran-v1.json b/file-formats/tran/tran-v1.json similarity index 100% rename from file-formats/tran/tran/tran-v1.json rename to file-formats/tran/tran-v1.json diff --git a/file-formats/tran/tran/zif_aff_tran_v1.intf.abap b/file-formats/tran/tran/zif_aff_tran_v1.intf.abap deleted file mode 100644 index 9ea7d931c..000000000 --- a/file-formats/tran/tran/zif_aff_tran_v1.intf.abap +++ /dev/null @@ -1,497 +0,0 @@ -INTERFACE zif_aff_tran_v1 - PUBLIC. - - "! $values {@link zif_aff_tran_v1.data:co_transaction_type} - "! $default {@link zif_aff_tran_v1.data:co_transaction_type.par} - TYPES ty_transaction_type TYPE c LENGTH 1. - CONSTANTS: - "!

Transaction Type

- "! The transaction type defines which object will be started at runtime when the transaction is called. - "! Depending on the transaction type, other type of object can be started and different fields become relevant. - "! {@link zif_aff_tran_v1.data:ty_transaction_type } - BEGIN OF co_transaction_type, - "!

Dialog Transaction

- "! The runtime calls a dynpro of a function group, module pool or report. - "! The dynpro specified as initial screen must not be a selection screen. - "! The program logic defines which screens are displayed after the initial screen. - dia TYPE ty_transaction_type VALUE 'D', - "!

OO Transaction

- "! At runtime, the system calls a class method. The transaction links to either the ABAP Object - "! Services Transaction Service (for persistent objects) or to a public method of a class. - "! For instance methods, the system auto-creates a class instance. - oo TYPE ty_transaction_type VALUE 'O', - "!

Parameter Transaction

- "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. - "! You can also skip the initial screen to prevent users from changing these predefined values. - par TYPE ty_transaction_type VALUE 'P', - "!

Report Transaction

- "! The runtime calls a dynpro of a report. - "! The dynpro specified as initial screen must be a selection screen. - "! The execution of a report usually has three stages: data entry, data processing, and data output. - rep TYPE ty_transaction_type VALUE 'R', - "!

Variant Transaction

- "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. - "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. - var TYPE ty_transaction_type VALUE 'V', - END OF co_transaction_type. - - "! $values {@link zif_aff_tran_v1.data:co_ui_classification} - "! $default {@link zif_aff_tran_v1.data:co_ui_classification.professional_user_transaction} - TYPES ty_ui_classification TYPE c LENGTH 1. - CONSTANTS: - "!

UI Classification

- "! The UI classification indicates the target user group of the transaction. - BEGIN OF co_ui_classification, - "!

Professional User Transaction

- "! Professional User Transactions are designed for experienced, frequent users of the SAP System - "! who mainly run highly complex transactions. - professional_user_transaction TYPE ty_ui_classification VALUE 'P', - "!

Easy Web Transaction

- "! Easy Web Transactions are the logical further development of Internet Application Components (IACs). - "! You must specify a service name for an Easy Web Transactions, if one exists and is different - "! from the name of the transaction. - easy_web_transaction TYPE ty_ui_classification VALUE 'E', - END OF co_ui_classification. - - TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. - CONSTANTS: - "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} - "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.skip} - "!

Skip Initial Screen Mode

- BEGIN OF co_skip_initial_screen_mode, - "!

Skip Initial Screen

- "! Skip Initial Screen - skip TYPE ty_skip_initial_screen_mode VALUE 'Y', - "!

Show Initial Screen

- "! Show Initial Screen - show TYPE ty_skip_initial_screen_mode VALUE 'N', - END OF co_skip_initial_screen_mode. - - "! $values {@link zif_aff_tran_v1.data:co_update_mode} - "! $default {@link zif_aff_tran_v1.data:co_update_mode.asynchronous} - TYPES ty_update_mode TYPE c LENGTH 1. - CONSTANTS: - "!

Update Mode

- "! Update Mode for OO Transactions - BEGIN OF co_update_mode, - "!

Asynchronous

- "! Asynchronous - asynchronous TYPE ty_update_mode VALUE 'U', - "!

Synchronous

- "! Synchronous - synchronous TYPE ty_update_mode VALUE 'S', - "!

Local

- "! Local - local TYPE ty_update_mode VALUE 'L', - END OF co_update_mode. - - TYPES: - BEGIN OF ty_dia, - "!

Program

- "! Program name for dialog transaction - program_name TYPE c LENGTH 40, - "!

Dynpro

- "! Transaction start dynpro number for dialog transaction - program_dynnr TYPE i, - "!

Editing of standard transaction variant allowed

- "! If this indicator is set, activating a transaction variant as standard transaction variant - "! is enabled in the transaction variant maintenance. - "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. - stv_maintenance_mode TYPE abap_bool, - END OF ty_dia. - - TYPES: - BEGIN OF ty_rep, - "!

Report

- "! Report name for the report transaction - report_name TYPE c LENGTH 40, - "!

Screen

- "! Transaction start selection screen for the report transaction - report_dynnr TYPE i, - "!

Variant

- "! Variant name for the report transaction - report_variant_name TYPE c LENGTH 14, - END OF ty_rep. - - TYPES: - BEGIN OF ty_oo, - "!

Local in Program

- "! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. - "! Otherwise it uses a global ABAP class. - local_in_program_indi TYPE abap_bool, - "!

Program

- "! Name of the program for the OO transacton - class_program_name TYPE c LENGTH 40, - "!

Class

- "! Name of the ABAP class - "! $required - class_name TYPE c LENGTH 30, - "!

Method Name

- "! Name of the method of the ABAP class - "! $required - method_name TYPE c LENGTH 61, - "!

OO Transaction Model

- "! If this indicator is set, the OO transaction follows the object-oriented transaction model. - "! See the interface IF_OS_TRANSACTION_MANAGER for more information. - oo_transaction_model_indi TYPE abap_bool, - "!

Update Mode

- "! The update mode for an OO transaction defines how data changes are processed: synchronously, - "! asynchronously, or immediately. - update_mode TYPE ty_update_mode, - END OF ty_oo. - - TYPES: - "!

Parameter Value

- "! Parameter transaction parameter value - BEGIN OF ty_par_pv, - "!

Parameter Name

- "! Name of the parameter for the parameter transaction - "! $required - parameter_name TYPE c LENGTH 132, - "!

Parameter Value

- "! Value for the parameter of the parameter transaction - parameter_value TYPE c LENGTH 50, - END OF ty_par_pv. - TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH DEFAULT KEY. - - TYPES: - BEGIN OF ty_par, - "!

Parent Transaction

- "! The parent transaction code of the parameter transaction defines the transaction that provides - "! the program and the dynpro number that are started when the transaction is called. - "! The parent transaction can be a dialog or a report transaction. - "! $required - par_parent_transaction_code TYPE c LENGTH 20, - "!

Skip Initial Screen

- "! Skip initial screen mode allows bypassing the first screen of the parent - "! transaction by using predefined values. - skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, - "!

Parameter values

- "! Parameter values - parameter_values TYPE ty_par_pv_t, - END OF ty_par. - - TYPES: - BEGIN OF ty_var, - "!

Parent Transaction

- "! The parent transaction code links related transaction to its original (parent) transaction. - "! It enables inheritance of settings like UI attributes or authorizations, - "! ensuring consistency and reducing duplication in configuration. - "! $required - var_parent_transaction_code TYPE c LENGTH 20, - "!

Cross Client

- "! If the indicator is set, the transaction variant is cross-client. If the switch is not set, - "! the transaction variant is client-specific. - transaction_variant_ci_indi TYPE abap_bool, - "!

Transaction Variant

- "! Name of the cross-client transaction variant. - "! A cross-client transaction variant is available in the system regardless of which client is currently active, - "! and the field contents used in the transaction variant must be available in all clients. - transaction_ci_variant_name TYPE c LENGTH 30, - "!

Transaction Variant

- "! Name of the client-specific transaction variant. - "! A client-specific transaction variant exists only in the client where it was created, - "! and the field contents used in the transaction variant must be available in that client. - transaction_variant_name TYPE c LENGTH 30, - END OF ty_var. - - TYPES: - "!

Maintenance Mode

- "! Maintenance modes for applications define how applications can be modified. - "! $values {@link zif_aff_tran_v1.data:co_maintenance_mode} - "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} - ty_maintenance_mode TYPE c LENGTH 1, - "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it - "! in its application andwhether an authorization default is added to a data of role - "! by the profile generator when the app is in the role menu. - "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} - "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} - ty_maintenance_status TYPE c LENGTH 1. - - CONSTANTS: - "!

Maintenance Mode

- "! Maintenance modes for applications define how applications can be modified. - BEGIN OF co_maintenance_mode, - "!

Manual Maintenance

- "! This mode is appropriate as long as maintenance of default data has not been completed yet. - "! New objects whose check has been detected by the authorization trace are added - "! to the object list in change mode with the maintenance status Not maintained. - manual TYPE ty_maintenance_mode VALUE space, - "!

Automatic Maintenance (All Objects)

- "! In change mode, all authorization objects added from the authorization trace are - "! automatically assigned the default status No Default. - automatic TYPE ty_maintenance_mode VALUE 'A', - "!

Automatic Maintenance (Basis Authorization Objects Only)

- "! Only authorization objects from the application areas Basis (S_*) and HR (P_* and PLOG) are - "! automatically added with the default status No Default. - "! All other new objects are given the status Unmaintained, which must be changed. - automatic_basis_objects TYPE ty_maintenance_mode VALUE 'B', - "!

Application Does Not Require Default Values

- "! This modus is given to all applications for whose execution only the start authorization is required. - no_default_values TYPE ty_maintenance_mode VALUE 'I', - "!

Application Is Deprecated

- "! It is used to classify applications that are not being developed any more but that can still be used. - "! In the case of transactions, it is possible to designate successor transactions. - deprecated TYPE ty_maintenance_mode VALUE 'D', - "!

Application Is Obsolete

- "! This mode is used to classify applications that are not being developed any more and because of - "! this do not meet important functional requirements or - "! are not needed any more. - obsolete TYPE ty_maintenance_mode VALUE 'O', - END OF co_maintenance_mode, - - "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and - "! whether an authorization default is added to a data of role by the profile - "! generator when the app is in the role menu. - BEGIN OF co_maintenance_status, - "!

Undefined

- "! The maintenance status is undefined and must be specified. - undefined TYPE ty_maintenance_status VALUE ' ', - "!

No Default

- "! This status is given to all objects that are not required for the execution - "! of functions in the application. The authorization check is executed in exactly - "! the same way the statuses described above. - no_default TYPE ty_maintenance_status VALUE 'X', - "!

Default With Field Values

- "! This default status is assigned to all objects that are used to protect functions - "! within the associated application and for which the delivery of fixed values in one - "! or more authorization fields would help to simplify authorization maintenance in roles. - default_with_values TYPE ty_maintenance_status VALUE 'Y', - "!

Default Without Field Values

- "! This status is suitable for objects whose authorizations are required for using an application, - "! but all of whose authorization fields have to be maintained by the role - "! administrator with customer-specific values. - default_without_values TYPE ty_maintenance_status VALUE 'V', - "!

Default Inactive

- "! For objects with this status, the authorization check always returns the value sy-subrc = 0 regardless - "! of which authorizations the user actually has. For objects belonging to the application areas - "! Basis (S_*) and HR (P_* and PLOG), it is forbidden. - inactive_values TYPE ty_maintenance_status VALUE 'I', - END OF co_maintenance_status. - - TYPES: - "!

Authorization Value

- "! Authorization value - ty_val TYPE c LENGTH 40, - "!

Authorization Field

- "! Authorization field - ty_field TYPE c LENGTH 10. - - TYPES: - "!

Start Authorization Object Field Value

- "! A start authorization object controls who may run a transaction. It is checked at transaction start. - "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the authorization defaults of transaction. - BEGIN OF ty_sao_afv, - "!

Authorization Field

- "! Name of the authorization field of the start authorization object - "! $required - auth_field_name TYPE ty_field, - "!

Authorization Value

- "! Value for the authorization field - auth_field_value TYPE ty_val, - END OF ty_sao_afv. - - "!

Start Authorization Object Field Value

- "! A start authorization object controls who may run a transaction. It is checked at transaction start. - "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the authorization defaults transaction. - TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. - - TYPES: - "!

Start Authorization Object

- "! A start authorization object controls who may run a transaction. It is checked at transaction start. - "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the authorization defaults transaction. - BEGIN OF ty_sao, - "!

Start Authorization Object Name

- "! Name of the start authorization object - "! $required - auth_object_name TYPE c LENGTH 10, - "!

Start Authorization Object Field Values

- "! Fields with values for the start authorization object - auth_object_field_values TYPE ty_sao_afv_t, - END OF ty_sao. - - TYPES: - "!

Authorization Defaults Authorization Field Value

- "! Authorization defaults authorization field value - BEGIN OF ty_ad_afv, - "!

Authorization Field

- "! Authorization field - auth_field_name TYPE ty_field, - "!

From

- "! From value - "! $showAlways - auth_field_low_value TYPE ty_val, - "!

To

- "! To value - auth_field_high_value TYPE ty_val, - END OF ty_ad_afv. - TYPES: - "!

Authorization Defaults Authorization Field Values

- "! Authorization defaults authorization field values - ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. - - TYPES: - "!

Authorization Defaults Authorization Object Details

- "! Authorization default values define which authorization objects and field values are automatically - "! proposed when creating roles for a transaction, - "! simplifying role maintenance and ensuring consistent security settings across users and roles. - BEGIN OF ty_ad_ao, - "!

Authorization Object Name

- "! Name of the authorization object - auth_object_name TYPE c LENGTH 10, - "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for - "! it in its application and whether an authorization default is added to a data of role data by - "! the profile generator when the app is in the role menu. - maintenance_status TYPE ty_maintenance_status, - "!

Authorization Defaults Documentation for Object

- "! Authorization defaults documentation for object - documentation TYPE string, - "!

Authorization Defaults Authorization Field Value

- "! Authorization defaults authorization field value - auth_object_field_values TYPE ty_ad_afv_t, - END OF ty_ad_ao. - - "!

Authorization Defaults Authorization Objects

- "! Authorization default values define which authorization objects and field values are automatically - "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent - "! security settings across users and roles. - TYPES ty_ad_ao_t TYPE STANDARD TABLE OF ty_ad_ao WITH KEY auth_object_name. - - TYPES: - BEGIN OF ty_ad, - "!

Maintenance Mode

- "! Maintenance modes for applications define how applications can be modified. - maintenance_mode TYPE ty_maintenance_mode, - "!

Inheritance Mode

- "! Authorization defaults inheritance mode controls how authorization settings are passed from - "! a parent transaction to its variants, - "! ensuring consistent access rights and roles across related transactions. - inheritance_mode TYPE abap_bool, - "!

Authorization Defaults Documentation for Application

- "! Authorization defaults documentation for application. - documentation TYPE string, - "!

Authorization Defaults Authorization Objects

- "! Authorization default values define which authorization objects and field values are automatically - "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent - "! security settings across users and roles. - auth_objects TYPE ty_ad_ao_t, - END OF ty_ad. - - TYPES: - BEGIN OF ty_ua, - "!

Inherit UI Attributes

- "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants - "! or field attributes are inherited from a parent transaction to its variants, ensuring - "! consistent user interfaces across related transactions. - inheritance_mode TYPE abap_bool, - "!

UI Classification

- "! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. - "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, - "! without menus or toolbars. - ui_clasification TYPE ty_ui_classification, - "!

Service

- "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, - "! enabling its execution via a browser. It's required for Easy Web Transactions if the service - "! name differs from the transaction name. - iac_service_name TYPE c LENGTH 14, - "!

Pervasive Enabled

- "! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, - "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core - "! functions with minimal screen complexity. - pervasive_mode TYPE abap_bool, - "!

SAP GUI for HTML

- "! The transaction supports the start from SAP GUI for HTML. - webgui_mode TYPE abap_bool, - "!

SAP GUI for Java

- "! The transaction supports the start from SAP GUI for Java. - platin_mode TYPE abap_bool, - "!

SAP GUI for Windows

- "! The transaction supports the start from SAP GUI for Windows. - win32_mode TYPE abap_bool, - END OF ty_ua. - - TYPES: - BEGIN OF ty_impl, - "!

Transaction Type

- "! The transaction type defines which object will be started at runtime when the transaction is called. - "! Depending on the transaction type, other type of object can be started and different fields become relevant. - "! $required - transaction_type TYPE ty_transaction_type, - "!

Lock Status

- "! Transaction lock status indicates whether a transaction is currently blocked from execution. - "! It helps prevent unauthorized or unintended use, especially during maintenance, development, - "! or when a transaction is obsolete or being phased out. - lock_status TYPE abap_bool, - "!

Dialog Transaction

- "! The runtime calls a dynpro of a function group, module pool or report. - "! The dynpro specified as initial screen must not be a selection screen. - "! The program logic defines which screens are displayed after the initial screen. - dialog_transaction TYPE ty_dia, - "!

Parameter Transaction

- "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. - "! You can also skip the initial screen to prevent users from changing these predefined values. - parameter_transaction TYPE ty_par, - "!

Report Transaction

- "! The runtime calls a dynpro of a report. - "! The dynpro specified as initial screen must be a selection screen. - "! The execution of a report usually has three stages: data entry, data processing, and data output. - report_transaction TYPE ty_rep, - "!

OO Transaction

- "! At runtime, the system calls a class method. The transaction links to either the ABAP Object - "! Services Transaction Service (for persistent objects) or to a public method of a class. - "! For instance methods, the system auto-creates a class instance. - oo_transaction TYPE ty_oo, - "!

Variant Transaction

- "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. - "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. - variant_transaction TYPE ty_var, - END OF ty_impl. - - TYPES: - BEGIN OF ty_authorizations, - "!

Start Authorization Object

- "! A start authorization object controls who may run a transaction. It is checked at transaction start. - "! Fields must have single or empty values. Empty fields trigger a DUMMY check. - "! This object is auto-assigned in the authorization defaults transaction. - start_authorization_object TYPE ty_sao, - "!

Authorization Default Values

- "! Authorization default values define which authorization objects and field values are automatically proposed - "! when creating roles for a transaction, simplifying role maintenance and ensuring consistent security - "! settings across users and roles. - "! $required - authorization_defaults TYPE ty_ad, - END OF ty_authorizations. - - TYPES: - "!

Transaction

- "! Transaction - BEGIN OF ty_main, - "!

Format Version

- "! Format version - "! $required - format_version TYPE zif_aff_types_v1=>ty_format_version, - "!

Header

- "! Header - "! $required - header TYPE zif_aff_types_v1=>ty_header_80, - "!

General Information

- "! General Information contains details about the transaction, depending on the transaction type. - "! $required - general_information TYPE ty_impl, - "!

User Interface

- "! User Interface manage UI classification and GUI support - user_interface TYPE ty_ua, - "!

Authorizations

- "! Authorizations contain settings related to security and access control: - "! Start Authorization Object and - "! Authorization Default Values - authorizations TYPE ty_authorizations, - END OF ty_main. - -ENDINTERFACE. diff --git a/file-formats/tran/tran/zif_aff_tran_v1.intf.json b/file-formats/tran/tran/zif_aff_tran_v1.intf.json deleted file mode 100644 index 3bffc160d..000000000 --- a/file-formats/tran/tran/zif_aff_tran_v1.intf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "formatVersion": "1", - "header": { - "description": "AFF for type TRAN - V1", - "originalLanguage": "en" - } -} diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap similarity index 100% rename from file-formats/tran/tran/type/zif_aff_tran_v1.intf.abap rename to file-formats/tran/type/zif_aff_tran_v1.intf.abap diff --git a/file-formats/tran/tran/type/zif_aff_tran_v1.intf.json b/file-formats/tran/type/zif_aff_tran_v1.intf.json similarity index 100% rename from file-formats/tran/tran/type/zif_aff_tran_v1.intf.json rename to file-formats/tran/type/zif_aff_tran_v1.intf.json From 65e5e7c5d3c258d7243307a048e20d82e135d836 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:47:28 +0200 Subject: [PATCH 10/29] React to EditorConfig --- file-formats/tran/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md index 654a72c66..6047cbd9f 100644 --- a/file-formats/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json`](./examples/z_aff_example_tran.tran.json) \ No newline at end of file +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json`](./examples/z_aff_example_tran.tran.json) From d7b5eb9667efa468c739a67ebbb2560f87d7f62a Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 15:26:38 +0200 Subject: [PATCH 11/29] React to JSON examples --- file-formats/tran/examples/z_aff_example_tran.tran.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 2f3d3150c..b5e535d46 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -19,10 +19,8 @@ }, "userInterface": { "inheritanceMode": "active", - "pervasiveMode": "disabled", - "webguiMode": "N", - "platinMode": "N", - "win32Mode": "N" + "pervasiveMode": "", + "win32Mode": "notSupported" }, "authorizations": { "authorizationDefaults": { From 9604e30a170726bfaf64516085b52954dacaa35f Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 15:46:37 +0200 Subject: [PATCH 12/29] React to validate JASON Examples --- file-formats/tran/README.md | 2 +- file-formats/tran/examples/z_aff_example_tran.tran.json | 6 ++++-- file-formats/tran/tran-v1.json | 2 +- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md index 6047cbd9f..a930208de 100644 --- a/file-formats/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json`](./examples/z_aff_example_tran.tran.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json`](./examples/se93_test_par.tran.json) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index b5e535d46..f26c17b63 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -19,8 +19,10 @@ }, "userInterface": { "inheritanceMode": "active", - "pervasiveMode": "", - "win32Mode": "notSupported" + "pervasiveMode": "disabled", + "webguiMode": "S", + "platinMode": "S", + "win32Mode": "N" }, "authorizations": { "authorizationDefaults": { diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index f89bc0bd2..623765f0c 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -322,7 +322,7 @@ ], "default": "inactive" }, - "uiClasification": { + "uiClassification": { "title": "UI Classification", "description": "Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, without menus or toolbars.", "type": "string", diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 9c5adef23..8dab5a061 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -455,7 +455,7 @@ INTERFACE zif_aff_tran_v1 "! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, "! without menus or toolbars. - ui_clasification TYPE ty_ui_classification, + ui_classification TYPE ty_ui_classification, "!

Service

"! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, "! enabling its execution via a browser. It's required for Easy Web Transactions if the service From e6162f196b3d060c8144c86c700141495d764318 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 25 Jul 2025 16:04:59 +0200 Subject: [PATCH 13/29] React to error --- file-formats/tran/README.md | 2 +- .../tran/examples/z_aff_example_tran.tran.json | 4 +--- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 12 ++++++------ 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md index a930208de..7e29aff83 100644 --- a/file-formats/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json`](./examples/se93_test_par.tran.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json](./examples/z_aff_example_tran.tran.json) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index f26c17b63..60657b003 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -20,9 +20,7 @@ "userInterface": { "inheritanceMode": "active", "pervasiveMode": "disabled", - "webguiMode": "S", - "platinMode": "S", - "win32Mode": "N" + "win32Mode": "notSupported" }, "authorizations": { "authorizationDefaults": { diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 8dab5a061..c2dea9ae4 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -450,7 +450,7 @@ INTERFACE zif_aff_tran_v1 "! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants "! or field attributes are inherited from a parent transaction to its variants, ensuring "! consistent user interfaces across related transactions. - inheritance_mode TYPE ty_ua_inheritance_mode, + inheritance_mode TYPE ty_ua_inheritance_mode, "!

UI Classification

"! Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. "! Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, @@ -460,21 +460,21 @@ INTERFACE zif_aff_tran_v1 "! The Service Name of an Internet Application Component (IAC) links a transaction to a web service, "! enabling its execution via a browser. It's required for Easy Web Transactions if the service "! name differs from the transaction name. - iac_service_name TYPE c LENGTH 14, + iac_service_name TYPE c LENGTH 14, "!

Pervasive Enabled

"! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core "! functions with minimal screen complexity. - pervasive_mode TYPE ty_ua_pervasive_mode, + pervasive_mode TYPE ty_ua_pervasive_mode, "!

SAP GUI for HTML

"! The transaction supports the start from SAP GUI for HTML. - webgui_mode TYPE ty_ua_support_mode, + webgui_mode TYPE ty_ua_support_mode, "!

SAP GUI for Java

"! The transaction supports the start from SAP GUI for Java. - platin_mode TYPE ty_ua_support_mode, + platin_mode TYPE ty_ua_support_mode, "!

SAP GUI for Windows

"! The transaction supports the start from SAP GUI for Windows. - win32_mode TYPE ty_ua_support_mode, + win32_mode TYPE ty_ua_support_mode, END OF ty_ua. TYPES: From 48237f3ad8c87a620bb5b01f83314fe39ffad909 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:07:45 +0200 Subject: [PATCH 14/29] Correct AFF --- file-formats/tran/README.md | 2 +- file-formats/tran/tran-v1.json | 14 +++++++++++++- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md index 7e29aff83..a930208de 100644 --- a/file-formats/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json](./examples/z_aff_example_tran.tran.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json`](./examples/se93_test_par.tran.json) diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index 623765f0c..55c235a06 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -135,7 +135,19 @@ "title": "Skip Initial Screen", "description": "Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", "type": "string", - "maxLength": 1 + "enum": [ + "skip", + "show" + ], + "enumTitles": [ + "Skip Initial Screen", + "Show Initial Screen" + ], + "enumDescriptions": [ + "Skip Initial Screen", + "Show Initial Screen" + ], + "default": "show" }, "parameterValues": { "title": "Parameter values", diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index c2dea9ae4..561b4736b 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -98,10 +98,10 @@ INTERFACE zif_aff_tran_v1 not_supported TYPE ty_ua_support_mode VALUE ' ', END OF co_ua_support_mode. + "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} + "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.show} TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. CONSTANTS: - "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} - "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.skip} "!

Skip Initial Screen Mode

BEGIN OF co_skip_initial_screen_mode, "!

Skip Initial Screen

From 61a3cdfc2b340798da1e31397ed574911b8ce8b7 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:27:34 +0200 Subject: [PATCH 15/29] React to Validate examples against schema From 539934b34d3178f7158100495e62b442a56107c3 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:49:30 +0200 Subject: [PATCH 16/29] React to Validate examples against schema --- file-formats/tran/examples/z_aff_example_tran.tran.json | 1 - 1 file changed, 1 deletion(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 60657b003..28bcc77e9 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -8,7 +8,6 @@ "transactionType": "par", "parameterTransaction": { "parParentTransactionCode": "SE16", - "skipInitialScreenMode": "N", "parameterValues": [ { "parameterName": "DATABROWSE-TABLENAME", From 8449a516c68fe95201f74947d4dad29141dc023d Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:52:20 +0200 Subject: [PATCH 17/29] React to check markdown --- file-formats/tran/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md index a930208de..6047cbd9f 100644 --- a/file-formats/tran/README.md +++ b/file-formats/tran/README.md @@ -10,4 +10,4 @@ TRAN | Transaction | Others File | Cardinality | Definition | Schema | Example :--- | :--- | :--- | :--- | :--- -`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`se93_test_par.tran.json`](./examples/se93_test_par.tran.json) +`.tran.json` | 1 | [`zif_aff_tran_v1.intf.abap`](./type/zif_aff_tran_v1.intf.abap) | [`tran-v1.json`](./tran-v1.json) | [`z_aff_example_tran.tran.json`](./examples/z_aff_example_tran.tran.json) From 9f652e7c0cc45eccc76869129097179f8875adb9 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 13:20:19 +0200 Subject: [PATCH 18/29] New type in AFF --- file-formats/tran/tran-v1.json | 19 ++++++++++++--- .../tran/type/zif_aff_tran_v1.intf.abap | 24 +++++++++++++++---- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index 55c235a06..eed6b8cd4 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -92,7 +92,20 @@ "lockStatus": { "title": "Lock Status", "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", - "type": "boolean" + "type": "string", + "enum": [ + "locked", + "notLocked" + ], + "enumTitles": [ + "Locked", + "Not Locked" + ], + "enumDescriptions": [ + "Locked", + "Not locked" + ], + "default": "notLocked" }, "dialogTransaction": { "title": "Dialog Transaction", @@ -140,8 +153,8 @@ "show" ], "enumTitles": [ - "Skip Initial Screen", - "Show Initial Screen" + "Skip", + "Show" ], "enumDescriptions": [ "Skip Initial Screen", diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 561b4736b..4800445e1 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -98,16 +98,30 @@ INTERFACE zif_aff_tran_v1 not_supported TYPE ty_ua_support_mode VALUE ' ', END OF co_ua_support_mode. - "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} - "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.show} + "! $values {@link zif_aff_tran_v1.data:co_lock_status} + "! $default {@link zif_aff_tran_v1.data:co_lock_status.Not_Locked} + TYPES ty_lock_status TYPE c LENGTH 1. + CONSTANTS: + "!

Lock Status

+ BEGIN OF co_lock_status, + "!

Locked

+ "! Locked + locked TYPE ty_lock_status VALUE 'X', + "!

Not Locked

+ "! Not locked + not_locked TYPE ty_lock_status VALUE ' ', + END OF co_lock_status. + + "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} + "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.show} TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. CONSTANTS: "!

Skip Initial Screen Mode

BEGIN OF co_skip_initial_screen_mode, - "!

Skip Initial Screen

+ "!

Skip

"! Skip Initial Screen skip TYPE ty_skip_initial_screen_mode VALUE 'Y', - "!

Show Initial Screen

+ "!

Show

"! Show Initial Screen show TYPE ty_skip_initial_screen_mode VALUE 'N', END OF co_skip_initial_screen_mode. @@ -488,7 +502,7 @@ INTERFACE zif_aff_tran_v1 "! Transaction lock status indicates whether a transaction is currently blocked from execution. "! It helps prevent unauthorized or unintended use, especially during maintenance, development, "! or when a transaction is obsolete or being phased out. - lock_status TYPE abap_bool, + lock_status TYPE ty_lock_status, "!

Dialog Transaction

"! The runtime calls a dynpro of a function group, module pool or report. "! The dynpro specified as initial screen must not be a selection screen. From 020596df52822580843a87c2a5cb4d3b7a2f429d Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 14:12:06 +0200 Subject: [PATCH 19/29] New Type in AFF --- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 4800445e1..047ded498 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -126,6 +126,20 @@ INTERFACE zif_aff_tran_v1 show TYPE ty_skip_initial_screen_mode VALUE 'N', END OF co_skip_initial_screen_mode. + "! $values {@link zif_aff_tran_v1.data:co_variant_maintenance_mode} + "! $default {@link zif_aff_tran_v1.data:co_variant_maintenance_mode.no_allowed} + TYPES ty_variant_maintenance_mode TYPE c LENGTH 1. + CONSTANTS: + "!

Editing of standard transaction variant

+ BEGIN OF co_variant_maintenance_mode, + "!

Allowed

+ "! Allowed + allowed TYPE ty_variant_maintenance_mode VALUE 'A', + "!

Not Allowed

+ "! Not Allowed + not_allowed TYPE ty_variant_maintenance_mode VALUE 'N', + END OF co_variant_maintenance_mode. + "! $values {@link zif_aff_tran_v1.data:co_update_mode} "! $default {@link zif_aff_tran_v1.data:co_update_mode.asynchronous} TYPES ty_update_mode TYPE c LENGTH 1. From 2d6ec4e253a97cc5eb1b04839aae1d03af762a37 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 28 Jul 2025 14:23:51 +0200 Subject: [PATCH 20/29] New Type in AFF --- file-formats/tran/tran-v1.json | 17 +++++++++++++++-- .../tran/type/zif_aff_tran_v1.intf.abap | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index eed6b8cd4..6357ac1da 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -126,9 +126,22 @@ "maximum": 2147483647 }, "stvMaintenanceMode": { - "title": "Editing of standard transaction variant allowed", + "title": "Editing of standard transaction variant", "description": "If this indicator is set, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance. This changes how the transaction looks at runtime, when it is started directly via its transaction code.", - "type": "boolean" + "type": "string", + "enum": [ + "allowed", + "notAllowed" + ], + "enumTitles": [ + "Allowed", + "Not Allowed" + ], + "enumDescriptions": [ + "Allowed", + "Not Allowed" + ], + "default": "notAllowed" } }, "additionalProperties": false diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 047ded498..124d052a9 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -127,7 +127,7 @@ INTERFACE zif_aff_tran_v1 END OF co_skip_initial_screen_mode. "! $values {@link zif_aff_tran_v1.data:co_variant_maintenance_mode} - "! $default {@link zif_aff_tran_v1.data:co_variant_maintenance_mode.no_allowed} + "! $default {@link zif_aff_tran_v1.data:co_variant_maintenance_mode.not_allowed} TYPES ty_variant_maintenance_mode TYPE c LENGTH 1. CONSTANTS: "!

Editing of standard transaction variant

@@ -166,11 +166,11 @@ INTERFACE zif_aff_tran_v1 "!

Dynpro

"! Transaction start dynpro number for dialog transaction program_dynnr TYPE i, - "!

Editing of standard transaction variant allowed

+ "!

Editing of standard transaction variant

"! If this indicator is set, activating a transaction variant as standard transaction variant "! is enabled in the transaction variant maintenance. "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. - stv_maintenance_mode TYPE abap_bool, + stv_maintenance_mode TYPE ty_variant_maintenance_mode, END OF ty_dia. TYPES: From 62f188b9844a9bf5305c497be4ae9e8a94ff3689 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:45:08 +0200 Subject: [PATCH 21/29] React to CrossCheck1 --- .../examples/z_aff_example_tran.tran.json | 23 +- file-formats/tran/tran-v1.json | 705 +++++++++--------- .../tran/type/zif_aff_tran_v1.intf.abap | 464 +++++++----- 3 files changed, 644 insertions(+), 548 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 28bcc77e9..e8937678f 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -4,22 +4,15 @@ "description": "SE93 Test - Parameter Transaction", "originalLanguage": "en" }, - "generalInformation": { - "transactionType": "par", - "parameterTransaction": { - "parParentTransactionCode": "SE16", - "parameterValues": [ - { - "parameterName": "DATABROWSE-TABLENAME", - "parameterValue": "TSTC" - } - ] - } - }, + "generalInformation": {}, "userInterface": { - "inheritanceMode": "active", - "pervasiveMode": "disabled", - "win32Mode": "notSupported" + "uiAttributes": { + "inheritanceMode": "active", + "pervasiveMode": "disabled", + "webguiMode": "S", + "platinMode": "S", + "win32Mode": "N" + } }, "authorizations": { "authorizationDefaults": { diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index 6357ac1da..521611bbf 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -59,402 +59,417 @@ }, "generalInformation": { "title": "General Information", - "description": "General Information contains details about the transaction, depending on the transaction type.", + "description": "The general information contains details about the transaction, depending on the transaction type.", "type": "object", "properties": { - "transactionType": { - "title": "Transaction Type", - "description": "The transaction type defines which object will be started at runtime when the transaction is called. Depending on the transaction type, other type of object can be started and different fields become relevant.", - "type": "string", - "enum": [ - "dia", - "oo", - "par", - "rep", - "var" - ], - "enumTitles": [ - "Dialog Transaction", - "OO Transaction", - "Parameter Transaction", - "Report Transaction", - "Variant Transaction" - ], - "enumDescriptions": [ - "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", - "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", - "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", - "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", - "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction." - ], - "default": "par" - }, - "lockStatus": { - "title": "Lock Status", - "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", - "type": "string", - "enum": [ - "locked", - "notLocked" - ], - "enumTitles": [ - "Locked", - "Not Locked" - ], - "enumDescriptions": [ - "Locked", - "Not locked" - ], - "default": "notLocked" - }, - "dialogTransaction": { - "title": "Dialog Transaction", - "description": "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "implementation": { + "title": "Implementation", + "description": "The implementation contains details about the transaction, depending on the transaction type.", "type": "object", "properties": { - "programName": { - "title": "Program", - "description": "Program name for dialog transaction", - "type": "string", - "maxLength": 40 - }, - "programDynnr": { - "title": "Dynpro", - "description": "Transaction start dynpro number for dialog transaction", - "type": "integer", - "minimum": -2147483648, - "maximum": 2147483647 - }, - "stvMaintenanceMode": { - "title": "Editing of standard transaction variant", - "description": "If this indicator is set, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance. This changes how the transaction looks at runtime, when it is started directly via its transaction code.", + "transactionType": { + "title": "Transaction Type", + "description": "The transaction type defines which object will be started at runtime when the transaction is called. Depending on the transaction type, other type of object can be started and different fields become relevant.", "type": "string", "enum": [ - "allowed", - "notAllowed" + "dialogTransaction", + "ooTransaction", + "parameterTransaction", + "reportTransaction", + "variantTransaction" ], "enumTitles": [ - "Allowed", - "Not Allowed" + "Dialog Transaction", + "OO Transaction", + "Parameter Transaction", + "Report Transaction", + "Variant Transaction" ], "enumDescriptions": [ - "Allowed", - "Not Allowed" + "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction." ], - "default": "notAllowed" - } - }, - "additionalProperties": false - }, - "parameterTransaction": { - "title": "Parameter Transaction", - "description": "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", - "type": "object", - "properties": { - "parParentTransactionCode": { - "title": "Parent Transaction", - "description": "The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number that are started when the transaction is called. The parent transaction can be a dialog or a report transaction.", - "type": "string", - "maxLength": 20 + "default": "parameterTransaction" }, - "skipInitialScreenMode": { - "title": "Skip Initial Screen", - "description": "Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", + "lockStatus": { + "title": "Lock Status", + "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", "type": "string", "enum": [ - "skip", - "show" + "locked", + "notLocked" ], "enumTitles": [ - "Skip", - "Show" + "Locked", + "Not Locked" ], "enumDescriptions": [ - "Skip Initial Screen", - "Show Initial Screen" + "Locked", + "Not locked" ], - "default": "show" + "default": "notLocked" }, - "parameterValues": { - "title": "Parameter values", - "description": "Parameter values", - "type": "array", - "items": { - "title": "Parameter Value", - "description": "Parameter transaction parameter value", - "type": "object", - "properties": { - "parameterName": { - "title": "Parameter Name", - "description": "Name of the parameter for the parameter transaction", - "type": "string", - "maxLength": 132 - }, - "parameterValue": { + "dialogTransaction": { + "title": "Dialog Transaction", + "description": "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "type": "object", + "properties": { + "programName": { + "title": "Program", + "description": "Program name for dialog transaction", + "type": "string", + "maxLength": 40 + }, + "programDynnr": { + "title": "Dynpro", + "description": "Transaction start dynpro number for dialog transaction", + "type": "string", + "maxLength": 4, + "pattern": "^[0-9]+$" + }, + "stvMaintenanceMode": { + "title": "Standard Transaction Variant Maintenance", + "description": "If the standard transaction variant maintenance mode is allowed, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance.", + "type": "string", + "enum": [ + "allowed", + "notAllowed" + ], + "enumTitles": [ + "Allowed", + "Not Allowed" + ], + "enumDescriptions": [ + "Allowed", + "Not Allowed" + ], + "default": "notAllowed" + } + }, + "additionalProperties": false + }, + "parameterTransaction": { + "title": "Parameter Transaction", + "description": "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "type": "object", + "properties": { + "parParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number that are started when the transaction is called. The parent transaction can be a dialog or a report transaction.", + "type": "string", + "maxLength": 20 + }, + "skipInitialScreenMode": { + "title": "Skip Initial Screen", + "description": "Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", + "type": "string", + "enum": [ + "skip", + "show" + ], + "enumTitles": [ + "Skip", + "Show" + ], + "enumDescriptions": [ + "Skip Initial Screen", + "Show Initial Screen" + ], + "default": "show" + }, + "parameterValues": { + "title": "Parameter values", + "description": "Parameter values", + "type": "array", + "items": { "title": "Parameter Value", - "description": "Value for the parameter of the parameter transaction", - "type": "string", - "maxLength": 50 + "description": "Parameter transaction parameter value", + "type": "object", + "properties": { + "parameterName": { + "title": "Parameter Name", + "description": "Name of the parameter for the parameter transaction", + "type": "string", + "maxLength": 132 + }, + "parameterValue": { + "title": "Parameter Value", + "description": "Value for the parameter of the parameter transaction", + "type": "string", + "maxLength": 50 + } + }, + "additionalProperties": false, + "required": [ + "parameterName" + ] } + } + }, + "additionalProperties": false, + "required": [ + "parParentTransactionCode" + ] + }, + "reportTransaction": { + "title": "Report Transaction", + "description": "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "type": "object", + "properties": { + "reportName": { + "title": "Report", + "description": "Report name for the report transaction", + "type": "string", + "maxLength": 40 }, - "additionalProperties": false, - "required": [ - "parameterName" - ] - } + "reportDynnr": { + "title": "Screen", + "description": "Transaction start selection screen for the report transaction", + "type": "string", + "maxLength": 4 + }, + "reportVariantName": { + "title": "Variant", + "description": "Variant name for the report transaction", + "type": "string", + "maxLength": 14 + } + }, + "additionalProperties": false + }, + "ooTransaction": { + "title": "OO Transaction", + "description": "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "type": "object", + "properties": { + "localInProgramIndi": { + "title": "Local in Program", + "description": "If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class.", + "type": "boolean" + }, + "classProgramName": { + "title": "Program", + "description": "Name of the program for the OO transacton", + "type": "string", + "maxLength": 40 + }, + "className": { + "title": "Class", + "description": "Name of the ABAP class", + "type": "string", + "maxLength": 30 + }, + "methodName": { + "title": "Method", + "description": "Name of the method of the ABAP class", + "type": "string", + "maxLength": 61 + }, + "ooTransactionModelIndi": { + "title": "OO Transaction Model", + "description": "If this indicator is set, the OO transaction follows the object-oriented transaction model. See the interface IF_OS_TRANSACTION_MANAGER for more information.", + "type": "boolean" + }, + "updateMode": { + "title": "Update Mode", + "description": "The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately.", + "type": "string", + "enum": [ + "asynchronous", + "synchronous", + "local" + ], + "enumTitles": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "enumDescriptions": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "default": "asynchronous" + } + }, + "additionalProperties": false, + "required": [ + "className", + "methodName" + ] + }, + "variantTransaction": { + "title": "Variant Transaction", + "description": "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction.", + "type": "object", + "properties": { + "varParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code links related transaction to its original (parent) transaction. It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration.", + "type": "string", + "maxLength": 20 + }, + "transactionVariantCiIndi": { + "title": "Cross-Client", + "description": "If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific.", + "type": "boolean" + }, + "transactionCiVariantName": { + "title": "Transaction Variant", + "description": "Name of the cross-client transaction variant. A cross-client transaction variant is available in the system regardless of which client is currently active, and the field contents used in the transaction variant must be available in all clients.", + "type": "string", + "maxLength": 30 + }, + "transactionVariantName": { + "title": "Transaction Variant", + "description": "Name of the client-specific transaction variant. A client-specific transaction variant exists only in the client where it was created, and the field contents used in the transaction variant must be available in that client.", + "type": "string", + "maxLength": 30 + } + }, + "additionalProperties": false, + "required": [ + "varParentTransactionCode" + ] } }, "additionalProperties": false, "required": [ - "parParentTransactionCode" + "transactionType" ] - }, - "reportTransaction": { - "title": "Report Transaction", - "description": "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + } + }, + "additionalProperties": false + }, + "userInterface": { + "title": "User Interface", + "description": "User Interface manage UI classification and GUI support", + "type": "object", + "properties": { + "uiAttributes": { + "title": "UI Attributes", + "description": "UI attributes manage UI classification and GUI support", "type": "object", "properties": { - "reportName": { - "title": "Report", - "description": "Report name for the report transaction", - "type": "string", - "maxLength": 40 - }, - "reportDynnr": { - "title": "Screen", - "description": "Transaction start selection screen for the report transaction", - "type": "integer", - "minimum": -2147483648, - "maximum": 2147483647 - }, - "reportVariantName": { - "title": "Variant", - "description": "Variant name for the report transaction", + "inheritanceMode": { + "title": "Inherit UI Attributes", + "description": "Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions.", "type": "string", - "maxLength": 14 - } - }, - "additionalProperties": false - }, - "ooTransaction": { - "title": "OO Transaction", - "description": "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", - "type": "object", - "properties": { - "localInProgramIndi": { - "title": "Local in Program", - "description": "If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class.", - "type": "boolean" + "enum": [ + "active", + "inactive" + ], + "enumTitles": [ + "Active", + "Inactive" + ], + "enumDescriptions": [ + "Active", + "Inactive" + ], + "default": "inactive" }, - "classProgramName": { - "title": "Program", - "description": "Name of the program for the OO transacton", + "uiClassification": { + "title": "UI Classification", + "description": "Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, without menus or toolbars.", "type": "string", - "maxLength": 40 + "enum": [ + "professionalUserTransaction", + "easyWebTransaction" + ], + "enumTitles": [ + "Professional User Transaction", + "Easy Web Transaction" + ], + "enumDescriptions": [ + "Professional User Transactions are designed for experienced, frequent users of the SAP System who mainly run highly complex transactions.", + "Easy Web Transactions are the logical further development of Internet Application Components (IACs). You must specify a service name for an Easy Web Transactions, if one exists and is different from the name of the transaction." + ], + "default": "professionalUserTransaction" }, - "className": { - "title": "Class", - "description": "Name of the ABAP class", + "iacServiceName": { + "title": "Service", + "description": "The Service Name of an Internet Application Component (IAC) links a transaction to a web service, enabling its execution via a browser. It's required for Easy Web Transactions if the service name differs from the transaction name.", "type": "string", - "maxLength": 30 + "maxLength": 14 }, - "methodName": { - "title": "Method Name", - "description": "Name of the method of the ABAP class", + "pervasiveMode": { + "title": "Pervasive Enabled", + "description": "Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity.", "type": "string", - "maxLength": 61 - }, - "ooTransactionModelIndi": { - "title": "OO Transaction Model", - "description": "If this indicator is set, the OO transaction follows the object-oriented transaction model. See the interface IF_OS_TRANSACTION_MANAGER for more information.", - "type": "boolean" + "enum": [ + "disabled", + "enabled" + ], + "enumTitles": [ + "Disabled", + "Enabled" + ], + "enumDescriptions": [ + "Disabled", + "Enabled" + ], + "default": "enabled" }, - "updateMode": { - "title": "Update Mode", - "description": "The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately.", + "webguiMode": { + "title": "SAP GUI for HTML", + "description": "The transaction supports the start from SAP GUI for HTML.", "type": "string", "enum": [ - "asynchronous", - "synchronous", - "local" + "supported", + "notSupported" ], "enumTitles": [ - "Asynchronous", - "Synchronous", - "Local" + "Supported", + "Not Supported" ], "enumDescriptions": [ - "Asynchronous", - "Synchronous", - "Local" + "Supported", + "Not Supported" ], - "default": "asynchronous" - } - }, - "additionalProperties": false, - "required": [ - "className", - "methodName" - ] - }, - "variantTransaction": { - "title": "Variant Transaction", - "description": "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction.", - "type": "object", - "properties": { - "varParentTransactionCode": { - "title": "Parent Transaction", - "description": "The parent transaction code links related transaction to its original (parent) transaction. It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration.", - "type": "string", - "maxLength": 20 - }, - "transactionVariantCiIndi": { - "title": "Cross Client", - "description": "If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific.", - "type": "boolean" + "default": "supported" }, - "transactionCiVariantName": { - "title": "Transaction Variant", - "description": "Name of the cross-client transaction variant. A cross-client transaction variant is available in the system regardless of which client is currently active, and the field contents used in the transaction variant must be available in all clients.", + "platinMode": { + "title": "SAP GUI for Java", + "description": "The transaction supports the start from SAP GUI for Java.", "type": "string", - "maxLength": 30 + "enum": [ + "supported", + "notSupported" + ], + "enumTitles": [ + "Supported", + "Not Supported" + ], + "enumDescriptions": [ + "Supported", + "Not Supported" + ], + "default": "supported" }, - "transactionVariantName": { - "title": "Transaction Variant", - "description": "Name of the client-specific transaction variant. A client-specific transaction variant exists only in the client where it was created, and the field contents used in the transaction variant must be available in that client.", + "win32Mode": { + "title": "SAP GUI for Windows", + "description": "The transaction supports the start from SAP GUI for Windows.", "type": "string", - "maxLength": 30 + "enum": [ + "supported", + "notSupported" + ], + "enumTitles": [ + "Supported", + "Not Supported" + ], + "enumDescriptions": [ + "Supported", + "Not Supported" + ], + "default": "supported" } }, - "additionalProperties": false, - "required": [ - "varParentTransactionCode" - ] - } - }, - "additionalProperties": false, - "required": [ - "transactionType" - ] - }, - "userInterface": { - "title": "User Interface", - "description": "User Interface manage UI classification and GUI support", - "type": "object", - "properties": { - "inheritanceMode": { - "title": "Inherit UI Attributes", - "description": "Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions.", - "type": "string", - "enum": [ - "active", - "inactive" - ], - "enumTitles": [ - "Active", - "Inactive" - ], - "enumDescriptions": [ - "Active", - "Inactive" - ], - "default": "inactive" - }, - "uiClassification": { - "title": "UI Classification", - "description": "Professional User Transactions emulate SAP GUI for Windows, suited for expert users handling complex tasks. Easy Web Transactions offer a simplified, web-friendly UI via SAP GUI for HTML, ideal for casual users, without menus or toolbars.", - "type": "string", - "enum": [ - "professionalUserTransaction", - "easyWebTransaction" - ], - "enumTitles": [ - "Professional User Transaction", - "Easy Web Transaction" - ], - "enumDescriptions": [ - "Professional User Transactions are designed for experienced, frequent users of the SAP System who mainly run highly complex transactions.", - "Easy Web Transactions are the logical further development of Internet Application Components (IACs). You must specify a service name for an Easy Web Transactions, if one exists and is different from the name of the transaction." - ], - "default": "professionalUserTransaction" - }, - "iacServiceName": { - "title": "Service", - "description": "The Service Name of an Internet Application Component (IAC) links a transaction to a web service, enabling its execution via a browser. It's required for Easy Web Transactions if the service name differs from the transaction name.", - "type": "string", - "maxLength": 14 - }, - "pervasiveMode": { - "title": "Pervasive Enabled", - "description": "Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity.", - "type": "string", - "enum": [ - "disabled", - "enabled" - ], - "enumTitles": [ - "Disabled", - "Enabled" - ], - "enumDescriptions": [ - "Disabled", - "Enabled" - ], - "default": "enabled" - }, - "webguiMode": { - "title": "SAP GUI for HTML", - "description": "The transaction supports the start from SAP GUI for HTML.", - "type": "string", - "enum": [ - "supported", - "notSupported" - ], - "enumTitles": [ - "Supported", - "Not Supported" - ], - "enumDescriptions": [ - "Supported", - "Not Supported" - ], - "default": "supported" - }, - "platinMode": { - "title": "SAP GUI for Java", - "description": "The transaction supports the start from SAP GUI for Java.", - "type": "string", - "enum": [ - "supported", - "notSupported" - ], - "enumTitles": [ - "Supported", - "Not Supported" - ], - "enumDescriptions": [ - "Supported", - "Not Supported" - ], - "default": "supported" - }, - "win32Mode": { - "title": "SAP GUI for Windows", - "description": "The transaction supports the start from SAP GUI for Windows.", - "type": "string", - "enum": [ - "supported", - "notSupported" - ], - "enumTitles": [ - "Supported", - "Not Supported" - ], - "enumDescriptions": [ - "Supported", - "Not Supported" - ], - "default": "supported" + "additionalProperties": false } }, "additionalProperties": false diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 124d052a9..0534e58c8 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -1,8 +1,13 @@ INTERFACE zif_aff_tran_v1 PUBLIC. + + "!

Transaction Code

+ "! Transaction code + TYPES ty_transaction_code TYPE c LENGTH 20. + "! $values {@link zif_aff_tran_v1.data:co_transaction_type} - "! $default {@link zif_aff_tran_v1.data:co_transaction_type.par} + "! $default {@link zif_aff_tran_v1.data:co_transaction_type.parameter_transaction} TYPES ty_transaction_type TYPE c LENGTH 1. CONSTANTS: "!

Transaction Type

@@ -14,93 +19,37 @@ INTERFACE zif_aff_tran_v1 "! The runtime calls a dynpro of a function group, module pool or report. "! The dynpro specified as initial screen must not be a selection screen. "! The program logic defines which screens are displayed after the initial screen. - dia TYPE ty_transaction_type VALUE 'D', + dialog_transaction TYPE ty_transaction_type VALUE 'D', "!

OO Transaction

"! At runtime, the system calls a class method. The transaction links to either the ABAP Object "! Services Transaction Service (for persistent objects) or to a public method of a class. "! For instance methods, the system auto-creates a class instance. - oo TYPE ty_transaction_type VALUE 'O', + oo_transaction TYPE ty_transaction_type VALUE 'O', "!

Parameter Transaction

"! Parameter transactions specialize dialog or report transactions by presetting initial screen values. "! You can also skip the initial screen to prevent users from changing these predefined values. - par TYPE ty_transaction_type VALUE 'P', + parameter_transaction TYPE ty_transaction_type VALUE 'P', "!

Report Transaction

"! The runtime calls a dynpro of a report. "! The dynpro specified as initial screen must be a selection screen. "! The execution of a report usually has three stages: data entry, data processing, and data output. - rep TYPE ty_transaction_type VALUE 'R', + report_transaction TYPE ty_transaction_type VALUE 'R', "!

Variant Transaction

"! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. - var TYPE ty_transaction_type VALUE 'V', + variant_transaction TYPE ty_transaction_type VALUE 'V', END OF co_transaction_type. - "! $values {@link zif_aff_tran_v1.data:co_ui_classification} - "! $default {@link zif_aff_tran_v1.data:co_ui_classification.professional_user_transaction} - TYPES ty_ui_classification TYPE c LENGTH 1. - CONSTANTS: - "!

UI Classification

- "! The UI classification indicates the target user group of the transaction. - BEGIN OF co_ui_classification, - "!

Professional User Transaction

- "! Professional User Transactions are designed for experienced, frequent users of the SAP System - "! who mainly run highly complex transactions. - professional_user_transaction TYPE ty_ui_classification VALUE 'P', - "!

Easy Web Transaction

- "! Easy Web Transactions are the logical further development of Internet Application Components (IACs). - "! You must specify a service name for an Easy Web Transactions, if one exists and is different - "! from the name of the transaction. - easy_web_transaction TYPE ty_ui_classification VALUE 'E', - END OF co_ui_classification. - - "! $values {@link zif_aff_tran_v1.data:co_ua_inheritance_mode} - "! $default {@link zif_aff_tran_v1.data:co_ua_inheritance_mode.inactive} - TYPES ty_ua_inheritance_mode TYPE c LENGTH 1. - CONSTANTS: - "!

UI Attributes Inheritance Mode

- "! UI attributes inheritance mode - BEGIN OF co_ua_inheritance_mode, - "!

Active

- "! Active - active TYPE ty_ua_inheritance_mode VALUE 'A', - "!

Inactive

- "! Inactive - inactive TYPE ty_ua_inheritance_mode VALUE 'I', - END OF co_ua_inheritance_mode. - - "! $values {@link zif_aff_tran_v1.data:co_ua_pervasive_mode} - "! $default {@link zif_aff_tran_v1.data:co_ua_pervasive_mode.enabled} - TYPES ty_ua_pervasive_mode TYPE c LENGTH 1. - CONSTANTS: - "!

UI Attributes Inheritance Mode

- "! UI attributes inheritance mode - BEGIN OF co_ua_pervasive_mode, - "!

Disabled

- "! Disabled - disabled TYPE ty_ua_pervasive_mode VALUE 'D', - "!

Enabled

- "! Enabled - enabled TYPE ty_ua_pervasive_mode VALUE 'E', - END OF co_ua_pervasive_mode. - - "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} - "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} - TYPES ty_ua_support_mode TYPE c LENGTH 1. - CONSTANTS: - "!

SAP GUI Support

- "! SAP GUI support - BEGIN OF co_ua_support_mode, - "!

Supported

- "! Supported - supported TYPE ty_ua_support_mode VALUE 'X', - "!

Not Supported

- "! Not Supported - not_supported TYPE ty_ua_support_mode VALUE ' ', - END OF co_ua_support_mode. + "!

Program

+ "! Program name + TYPES ty_program_name TYPE c LENGTH 40. + "!

Dynpro

+ "! Transaction Start Dynpro Number for Dialog Transaction + TYPES ty_program_dynnr TYPE n LENGTH 4. "! $values {@link zif_aff_tran_v1.data:co_lock_status} "! $default {@link zif_aff_tran_v1.data:co_lock_status.Not_Locked} - TYPES ty_lock_status TYPE c LENGTH 1. + TYPES ty_lock_status TYPE c LENGTH 1. CONSTANTS: "!

Lock Status

BEGIN OF co_lock_status, @@ -126,19 +75,19 @@ INTERFACE zif_aff_tran_v1 show TYPE ty_skip_initial_screen_mode VALUE 'N', END OF co_skip_initial_screen_mode. - "! $values {@link zif_aff_tran_v1.data:co_variant_maintenance_mode} - "! $default {@link zif_aff_tran_v1.data:co_variant_maintenance_mode.not_allowed} - TYPES ty_variant_maintenance_mode TYPE c LENGTH 1. + "! $values {@link zif_aff_tran_v1.data:co_stv_maintenance_mode} + "! $default {@link zif_aff_tran_v1.data:co_stv_maintenance_mode.not_allowed} + TYPES ty_stv_maintenance_mode TYPE c LENGTH 1. CONSTANTS: "!

Editing of standard transaction variant

- BEGIN OF co_variant_maintenance_mode, + BEGIN OF co_stv_maintenance_mode, "!

Allowed

"! Allowed - allowed TYPE ty_variant_maintenance_mode VALUE 'A', + allowed TYPE ty_stv_maintenance_mode VALUE 'A', "!

Not Allowed

"! Not Allowed - not_allowed TYPE ty_variant_maintenance_mode VALUE 'N', - END OF co_variant_maintenance_mode. + not_allowed TYPE ty_stv_maintenance_mode VALUE 'N', + END OF co_stv_maintenance_mode. "! $values {@link zif_aff_tran_v1.data:co_update_mode} "! $default {@link zif_aff_tran_v1.data:co_update_mode.asynchronous} @@ -159,50 +108,69 @@ INTERFACE zif_aff_tran_v1 END OF co_update_mode. TYPES: - BEGIN OF ty_dia, + BEGIN OF ty_dialog_transaction, "!

Program

"! Program name for dialog transaction - program_name TYPE c LENGTH 40, + program_name TYPE ty_program_name, "!

Dynpro

"! Transaction start dynpro number for dialog transaction - program_dynnr TYPE i, - "!

Editing of standard transaction variant

- "! If this indicator is set, activating a transaction variant as standard transaction variant - "! is enabled in the transaction variant maintenance. - "! This changes how the transaction looks at runtime, when it is started directly via its transaction code. - stv_maintenance_mode TYPE ty_variant_maintenance_mode, - END OF ty_dia. - + program_dynnr TYPE ty_program_dynnr, + "!

Standard Transaction Variant Maintenance

+ "! If the standard transaction variant maintenance mode is allowed, activating + "! a transaction variant as standard transaction variant is enabled in the + "! transaction variant maintenance. + stv_maintenance_mode TYPE ty_stv_maintenance_mode, + END OF ty_dialog_transaction. + + "!

Report

+ "! Report name + TYPES ty_report_name TYPE c LENGTH 40. + "!

Selection Screen

+ "! Transaction Start Selection Screen for Report Transaction + TYPES ty_report_dynnr TYPE c LENGTH 4. + + "!

Variant

+ "! Variant name + TYPES ty_report_variant_name TYPE c LENGTH 14. TYPES: - BEGIN OF ty_rep, + BEGIN OF ty_report_transaction, "!

Report

"! Report name for the report transaction - report_name TYPE c LENGTH 40, + report_name TYPE ty_report_name, "!

Screen

"! Transaction start selection screen for the report transaction - report_dynnr TYPE i, + report_dynnr TYPE ty_report_dynnr, "!

Variant

"! Variant name for the report transaction - report_variant_name TYPE c LENGTH 14, - END OF ty_rep. - + report_variant_name TYPE ty_report_variant_name, + END OF ty_report_transaction. + + "!

Program Name

+ "! Program name + TYPES ty_class_program_name TYPE c LENGTH 40. + "!

Class

+ "! Class name + TYPES ty_class_name TYPE c LENGTH 30. + "!

Method

+ "! Method name + TYPES ty_method_name TYPE c LENGTH 61. TYPES: - BEGIN OF ty_oo, + BEGIN OF ty_oo_transaction, "!

Local in Program

"! If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. "! Otherwise it uses a global ABAP class. local_in_program_indi TYPE abap_bool, "!

Program

"! Name of the program for the OO transacton - class_program_name TYPE c LENGTH 40, + class_program_name TYPE ty_class_program_name, "!

Class

"! Name of the ABAP class "! $required - class_name TYPE c LENGTH 30, - "!

Method Name

+ class_name TYPE ty_class_name, + "!

Method

"! Name of the method of the ABAP class "! $required - method_name TYPE c LENGTH 61, + method_name TYPE ty_method_name, "!

OO Transaction Model

"! If this indicator is set, the OO transaction follows the object-oriented transaction model. "! See the interface IF_OS_TRANSACTION_MANAGER for more information. @@ -211,8 +179,14 @@ INTERFACE zif_aff_tran_v1 "! The update mode for an OO transaction defines how data changes are processed: synchronously, "! asynchronously, or immediately. update_mode TYPE ty_update_mode, - END OF ty_oo. - + END OF ty_oo_transaction. + + "!

Parameter Name

+ "! Parameter name + TYPES ty_parameter_name TYPE c LENGTH 132. + "!

Parameter Value

+ "! Parameter value + TYPES ty_parameter_value TYPE c LENGTH 50. TYPES: "!

Parameter Value

"! Parameter transaction parameter value @@ -220,39 +194,51 @@ INTERFACE zif_aff_tran_v1 "!

Parameter Name

"! Name of the parameter for the parameter transaction "! $required - parameter_name TYPE c LENGTH 132, + parameter_name TYPE ty_parameter_name, "!

Parameter Value

"! Value for the parameter of the parameter transaction - parameter_value TYPE c LENGTH 50, + parameter_value TYPE ty_parameter_value, END OF ty_par_pv. - TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH DEFAULT KEY. + TYPES ty_par_pv_t TYPE STANDARD TABLE OF ty_par_pv WITH DEFAULT KEY. + "!

Parent Transaction

+ "! Name of parent transaction + TYPES ty_par_parent_transaction_code TYPE ty_transaction_code. TYPES: - BEGIN OF ty_par, + BEGIN OF ty_parameter_transaction, "!

Parent Transaction

"! The parent transaction code of the parameter transaction defines the transaction that provides "! the program and the dynpro number that are started when the transaction is called. "! The parent transaction can be a dialog or a report transaction. "! $required - par_parent_transaction_code TYPE c LENGTH 20, + par_parent_transaction_code TYPE ty_par_parent_transaction_code, "!

Skip Initial Screen

"! Skip initial screen mode allows bypassing the first screen of the parent "! transaction by using predefined values. - skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, + skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, "!

Parameter values

"! Parameter values parameter_values TYPE ty_par_pv_t, - END OF ty_par. - + END OF ty_parameter_transaction. + + "!

Parent Transaction

+ "! Name of parent transaction + TYPES ty_var_parent_transaction_code TYPE ty_transaction_code. + "!

Cross-Client Transaction Variant

+ "! Name of cross-client transaction variant + TYPES ty_transaction_ci_variant_name TYPE c LENGTH 30. + "!

Transaction Variant

+ "! Name of transaction variant + TYPES ty_transaction_variant_name TYPE c LENGTH 30. TYPES: - BEGIN OF ty_var, + BEGIN OF ty_variant_transaction, "!

Parent Transaction

"! The parent transaction code links related transaction to its original (parent) transaction. "! It enables inheritance of settings like UI attributes or authorizations, "! ensuring consistency and reducing duplication in configuration. "! $required - var_parent_transaction_code TYPE c LENGTH 20, - "!

Cross Client

+ var_parent_transaction_code TYPE ty_var_parent_transaction_code, + "!

Cross-Client

"! If the indicator is set, the transaction variant is cross-client. If the switch is not set, "! the transaction variant is client-specific. transaction_variant_ci_indi TYPE abap_bool, @@ -260,27 +246,63 @@ INTERFACE zif_aff_tran_v1 "! Name of the cross-client transaction variant. "! A cross-client transaction variant is available in the system regardless of which client is currently active, "! and the field contents used in the transaction variant must be available in all clients. - transaction_ci_variant_name TYPE c LENGTH 30, + transaction_ci_variant_name TYPE ty_transaction_ci_variant_name, "!

Transaction Variant

"! Name of the client-specific transaction variant. "! A client-specific transaction variant exists only in the client where it was created, "! and the field contents used in the transaction variant must be available in that client. - transaction_variant_name TYPE c LENGTH 30, - END OF ty_var. + transaction_variant_name TYPE ty_transaction_variant_name, + END OF ty_variant_transaction. TYPES: - "!

Maintenance Mode

- "! Maintenance modes for applications define how applications can be modified. - "! $values {@link zif_aff_tran_v1.data:co_maintenance_mode} - "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} - ty_maintenance_mode TYPE c LENGTH 1, - "!

Maintenance Status

- "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it - "! in its application andwhether an authorization default is added to a data of role - "! by the profile generator when the app is in the role menu. - "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} - "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} - ty_maintenance_status TYPE c LENGTH 1. + BEGIN OF ty_implementation, + "!

Transaction Type

+ "! The transaction type defines which object will be started at runtime when the transaction is called. + "! Depending on the transaction type, other type of object can be started and different fields become relevant. + "! $required + transaction_type TYPE ty_transaction_type, + "!

Lock Status

+ "! Transaction lock status indicates whether a transaction is currently blocked from execution. + "! It helps prevent unauthorized or unintended use, especially during maintenance, development, + "! or when a transaction is obsolete or being phased out. + lock_status TYPE ty_lock_status, + "!

Dialog Transaction

+ "! The runtime calls a dynpro of a function group, module pool or report. + "! The dynpro specified as initial screen must not be a selection screen. + "! The program logic defines which screens are displayed after the initial screen. + dialog_transaction TYPE ty_dialog_transaction, + "!

Parameter Transaction

+ "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. + "! You can also skip the initial screen to prevent users from changing these predefined values. + parameter_transaction TYPE ty_parameter_transaction, + "!

Report Transaction

+ "! The runtime calls a dynpro of a report. + "! The dynpro specified as initial screen must be a selection screen. + "! The execution of a report usually has three stages: data entry, data processing, and data output. + report_transaction TYPE ty_report_transaction, + "!

OO Transaction

+ "! At runtime, the system calls a class method. The transaction links to either the ABAP Object + "! Services Transaction Service (for persistent objects) or to a public method of a class. + "! For instance methods, the system auto-creates a class instance. + oo_transaction TYPE ty_oo_transaction, + "!

Variant Transaction

+ "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. + "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. + variant_transaction TYPE ty_variant_transaction, + END OF ty_implementation. + + "!

Maintenance Mode

+ "! Maintenance modes for applications define how applications can be modified. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_mode} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_mode.manual} + TYPES ty_maintenance_mode TYPE c LENGTH 1. + "!

Maintenance Status

+ "! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it + "! in its application andwhether an authorization default is added to a data of role + "! by the profile generator when the app is in the role menu. + "! $values {@link zif_aff_tran_v1.data:co_maintenance_status} + "! $default {@link zif_aff_tran_v1.data:co_maintenance_status.default_with_values} + TYPES ty_maintenance_status TYPE c LENGTH 1. CONSTANTS: "!

Maintenance Mode

@@ -312,8 +334,9 @@ INTERFACE zif_aff_tran_v1 "! this do not meet important functional requirements or "! are not needed any more. obsolete TYPE ty_maintenance_mode VALUE 'O', - END OF co_maintenance_mode, + END OF co_maintenance_mode. + CONSTANTS: "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for it in its application and "! whether an authorization default is added to a data of role by the profile @@ -360,13 +383,12 @@ INTERFACE zif_aff_tran_v1 inactive TYPE ty_inheritance_mode VALUE 'INACTIVE', END OF co_inheritance_mode. - TYPES: - "!

Authorization Value

- "! Authorization value - ty_val TYPE c LENGTH 40, - "!

Authorization Field

- "! Authorization field - ty_field TYPE c LENGTH 10. + "!

Authorization Field

+ "! Authorization field + TYPES ty_auth_field TYPE c LENGTH 10. + "!

Authorization Value

+ "! Authorization value + TYPES ty_auth_value TYPE c LENGTH 40. TYPES: "!

Start Authorization Object Field Value

@@ -377,17 +399,25 @@ INTERFACE zif_aff_tran_v1 "!

Authorization Field

"! Name of the authorization field of the start authorization object "! $required - auth_field_name TYPE ty_field, + auth_field_name TYPE ty_auth_field, "!

Authorization Value

"! Value for the authorization field - auth_field_value TYPE ty_val, + auth_field_value TYPE ty_auth_value, END OF ty_sao_afv. "!

Start Authorization Object Field Value

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. "! This object is auto-assigned in the authorization defaults transaction. - TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. + TYPES ty_sao_afv_t TYPE STANDARD TABLE OF ty_sao_afv WITH DEFAULT KEY. + + "!

Authorization Object

+ "! Name of authorization object + TYPES ty_auth_object_name TYPE c LENGTH 10. + + "!

Start Authorization Object

+ "! Name of start authorization object + TYPES ty_sao_name TYPE ty_auth_object_name. TYPES: "!

Start Authorization Object

@@ -398,7 +428,7 @@ INTERFACE zif_aff_tran_v1 "!

Start Authorization Object Name

"! Name of the start authorization object "! $required - auth_object_name TYPE c LENGTH 10, + auth_object_name TYPE ty_sao_name, "!

Start Authorization Object Field Values

"! Fields with values for the start authorization object auth_object_field_values TYPE ty_sao_afv_t, @@ -410,19 +440,18 @@ INTERFACE zif_aff_tran_v1 BEGIN OF ty_ad_afv, "!

Authorization Field

"! Authorization field - auth_field_name TYPE ty_field, + auth_field_name TYPE ty_auth_field, "!

From

"! From value "! $showAlways - auth_field_low_value TYPE ty_val, + auth_field_low_value TYPE ty_auth_value, "!

To

"! To value - auth_field_high_value TYPE ty_val, + auth_field_high_value TYPE ty_auth_value, END OF ty_ad_afv. - TYPES: - "!

Authorization Defaults Authorization Field Values

- "! Authorization defaults authorization field values - ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. + "!

Authorization Defaults Authorization Field Values

+ "! Authorization defaults authorization field values + TYPES ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. TYPES: "!

Authorization Defaults Authorization Object Details

@@ -432,7 +461,7 @@ INTERFACE zif_aff_tran_v1 BEGIN OF ty_ad_ao, "!

Authorization Object Name

"! Name of the authorization object - auth_object_name TYPE c LENGTH 10, + auth_object_name TYPE ty_auth_object_name, "!

Maintenance Status

"! The maintenance status of an authorization object controls if AUTHORITY-CHECK runs for "! it in its application and whether an authorization default is added to a data of role data by @@ -472,8 +501,88 @@ INTERFACE zif_aff_tran_v1 auth_objects TYPE ty_ad_ao_t, END OF ty_ad. + + "! $values {@link zif_aff_tran_v1.data:co_ui_classification} + "! $default {@link zif_aff_tran_v1.data:co_ui_classification.professional_user_transaction} + TYPES ty_ui_classification TYPE c LENGTH 1. + CONSTANTS: + "!

UI Classification

+ "! The UI classification indicates the target user group of the transaction. + BEGIN OF co_ui_classification, + "!

Professional User Transaction

+ "! Professional User Transactions are designed for experienced, frequent users of the SAP System + "! who mainly run highly complex transactions. + professional_user_transaction TYPE ty_ui_classification VALUE 'P', + "!

Easy Web Transaction

+ "! Easy Web Transactions are the logical further development of Internet Application Components (IACs). + "! You must specify a service name for an Easy Web Transactions, if one exists and is different + "! from the name of the transaction. + easy_web_transaction TYPE ty_ui_classification VALUE 'E', + END OF co_ui_classification. + + "! $values {@link zif_aff_tran_v1.data:co_ua_inheritance_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_inheritance_mode.inactive} + TYPES ty_ua_inheritance_mode TYPE c LENGTH 1. + CONSTANTS: + "!

UI Attributes Inheritance Mode

+ "! UI attributes inheritance mode + BEGIN OF co_ua_inheritance_mode, + "!

Active

+ "! Active + active TYPE ty_ua_inheritance_mode VALUE 'A', + "!

Inactive

+ "! Inactive + inactive TYPE ty_ua_inheritance_mode VALUE 'I', + END OF co_ua_inheritance_mode. + + "! $values {@link zif_aff_tran_v1.data:co_ua_pervasive_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_pervasive_mode.enabled} + TYPES ty_ua_pervasive_mode TYPE c LENGTH 1. + CONSTANTS: + "!

UI Attributes Inheritance Mode

+ "! UI attributes inheritance mode + BEGIN OF co_ua_pervasive_mode, + "!

Disabled

+ "! Disabled + disabled TYPE ty_ua_pervasive_mode VALUE 'D', + "!

Enabled

+ "! Enabled + enabled TYPE ty_ua_pervasive_mode VALUE 'E', + END OF co_ua_pervasive_mode. + + "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} + TYPES ty_ua_support_mode TYPE c LENGTH 1. + CONSTANTS: + "!

SAP GUI Support

+ "! SAP GUI support + BEGIN OF co_ua_support_mode, + "!

Supported

+ "! Supported + supported TYPE ty_ua_support_mode VALUE 'X', + "!

Not Supported

+ "! Not Supported + not_supported TYPE ty_ua_support_mode VALUE ' ', + END OF co_ua_support_mode. + + "!

SAP GUI for Java

+ "! SAP GUI for Java + "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} + TYPES ty_ua_platin_mode TYPE ty_ua_support_mode. + "!

SAP GUI for HTML

+ "! SAP GUI for HTML + "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} + TYPES ty_ua_webgui_mode TYPE ty_ua_support_mode. + "!

SAP GUI for Windows

+ "! SAP GUI for Windows + "! $values {@link zif_aff_tran_v1.data:co_ua_support_mode} + "! $default {@link zif_aff_tran_v1.data:co_ua_support_mode.supported} + TYPES ty_ua_win32_mode TYPE ty_ua_support_mode. + TYPES: - BEGIN OF ty_ua, + BEGIN OF ty_ui_attributes, "!

Inherit UI Attributes

"! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants "! or field attributes are inherited from a parent transaction to its variants, ensuring @@ -496,51 +605,23 @@ INTERFACE zif_aff_tran_v1 pervasive_mode TYPE ty_ua_pervasive_mode, "!

SAP GUI for HTML

"! The transaction supports the start from SAP GUI for HTML. - webgui_mode TYPE ty_ua_support_mode, + webgui_mode TYPE ty_ua_webgui_mode, "!

SAP GUI for Java

"! The transaction supports the start from SAP GUI for Java. - platin_mode TYPE ty_ua_support_mode, + platin_mode TYPE ty_ua_platin_mode, "!

SAP GUI for Windows

"! The transaction supports the start from SAP GUI for Windows. - win32_mode TYPE ty_ua_support_mode, - END OF ty_ua. + win32_mode TYPE ty_ua_win32_mode, + END OF ty_ui_attributes. + + TYPES: - BEGIN OF ty_impl, - "!

Transaction Type

- "! The transaction type defines which object will be started at runtime when the transaction is called. - "! Depending on the transaction type, other type of object can be started and different fields become relevant. - "! $required - transaction_type TYPE ty_transaction_type, - "!

Lock Status

- "! Transaction lock status indicates whether a transaction is currently blocked from execution. - "! It helps prevent unauthorized or unintended use, especially during maintenance, development, - "! or when a transaction is obsolete or being phased out. - lock_status TYPE ty_lock_status, - "!

Dialog Transaction

- "! The runtime calls a dynpro of a function group, module pool or report. - "! The dynpro specified as initial screen must not be a selection screen. - "! The program logic defines which screens are displayed after the initial screen. - dialog_transaction TYPE ty_dia, - "!

Parameter Transaction

- "! Parameter transactions specialize dialog or report transactions by presetting initial screen values. - "! You can also skip the initial screen to prevent users from changing these predefined values. - parameter_transaction TYPE ty_par, - "!

Report Transaction

- "! The runtime calls a dynpro of a report. - "! The dynpro specified as initial screen must be a selection screen. - "! The execution of a report usually has three stages: data entry, data processing, and data output. - report_transaction TYPE ty_rep, - "!

OO Transaction

- "! At runtime, the system calls a class method. The transaction links to either the ABAP Object - "! Services Transaction Service (for persistent objects) or to a public method of a class. - "! For instance methods, the system auto-creates a class instance. - oo_transaction TYPE ty_oo, - "!

Variant Transaction

- "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. - "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. - variant_transaction TYPE ty_var, - END OF ty_impl. + BEGIN OF ty_general_information, + "!

Implementation

+ "! The implementation contains details about the transaction, depending on the transaction type. + implementation TYPE ty_implementation, + END OF ty_general_information. TYPES: BEGIN OF ty_authorizations, @@ -557,6 +638,13 @@ INTERFACE zif_aff_tran_v1 authorization_defaults TYPE ty_ad, END OF ty_authorizations. + TYPES: + BEGIN OF ty_user_interface, + "!

UI Attributes

+ "! UI attributes manage UI classification and GUI support + ui_attributes TYPE ty_ui_attributes, + END OF ty_user_interface. + TYPES: "!

Transaction

"! Transaction @@ -570,12 +658,12 @@ INTERFACE zif_aff_tran_v1 "! $required header TYPE zif_aff_types_v1=>ty_header_80, "!

General Information

- "! General Information contains details about the transaction, depending on the transaction type. + "! The general information contains details about the transaction, depending on the transaction type. "! $required - general_information TYPE ty_impl, + general_information TYPE ty_general_information, "!

User Interface

"! User Interface manage UI classification and GUI support - user_interface TYPE ty_ua, + user_interface TYPE ty_user_interface, "!

Authorizations

"! Authorizations contain settings related to security and access control: "! Start Authorization Object and From c3330f026ee560b77a0e9cc37f2e1f218e1e0c5a Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:50:59 +0200 Subject: [PATCH 22/29] React to Validate examples against schema --- file-formats/tran/examples/z_aff_example_tran.tran.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index e8937678f..21033e61e 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -9,9 +9,7 @@ "uiAttributes": { "inheritanceMode": "active", "pervasiveMode": "disabled", - "webguiMode": "S", - "platinMode": "S", - "win32Mode": "N" + "win32Mode": "notSupported" } }, "authorizations": { From 9ac8039df6a93564ac09b2f97427342fffd09b9f Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 8 Aug 2025 09:18:21 +0200 Subject: [PATCH 23/29] Set right type for some fields --- file-formats/tran/tran-v1.json | 3 +-- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index 521611bbf..bcbb5b03c 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -127,8 +127,7 @@ "title": "Dynpro", "description": "Transaction start dynpro number for dialog transaction", "type": "string", - "maxLength": 4, - "pattern": "^[0-9]+$" + "maxLength": 4 }, "stvMaintenanceMode": { "title": "Standard Transaction Variant Maintenance", diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 0534e58c8..85863c1b7 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -45,7 +45,7 @@ INTERFACE zif_aff_tran_v1 TYPES ty_program_name TYPE c LENGTH 40. "!

Dynpro

"! Transaction Start Dynpro Number for Dialog Transaction - TYPES ty_program_dynnr TYPE n LENGTH 4. + TYPES ty_program_dynnr TYPE c LENGTH 4. "! $values {@link zif_aff_tran_v1.data:co_lock_status} "! $default {@link zif_aff_tran_v1.data:co_lock_status.Not_Locked} From 786710fc7a97af43b794e1a263b753c28b912c72 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:02:54 +0200 Subject: [PATCH 24/29] Updated for example --- .../examples/z_aff_example_tran.tran.json | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 21033e61e..2b3759521 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -4,7 +4,27 @@ "description": "SE93 Test - Parameter Transaction", "originalLanguage": "en" }, - "generalInformation": {}, + "generalInformation": { + "implementation": { + "transactionType": "parameterTransaction", + "dialogTransaction": { + "programDynnr": "0000", + "stvMaintenanceMode": "" + }, + "parameterTransaction": { + "parParentTransactionCode": "SE16", + "parameterValues": [ + { + "parameterName": "DATABROWSE-TABLENAME", + "parameterValue": "TSTC" + } + ] + }, + "reportTransaction": { + "reportDynnr": "0000" + } + } + }, "userInterface": { "uiAttributes": { "inheritanceMode": "active", From 9afee6924c33cdfe856aa4eaa010863a34654233 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:29:03 +0200 Subject: [PATCH 25/29] React to Validate examples against schema --- file-formats/tran/examples/z_aff_example_tran.tran.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 2b3759521..48c9b916b 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -7,10 +7,6 @@ "generalInformation": { "implementation": { "transactionType": "parameterTransaction", - "dialogTransaction": { - "programDynnr": "0000", - "stvMaintenanceMode": "" - }, "parameterTransaction": { "parParentTransactionCode": "SE16", "parameterValues": [ @@ -19,9 +15,6 @@ "parameterValue": "TSTC" } ] - }, - "reportTransaction": { - "reportDynnr": "0000" } } }, From 31f344370c13af2c2bdce3b1b74558ddf6ca9577 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 1 Sep 2025 11:43:01 +0200 Subject: [PATCH 26/29] Changes to AFF --- .../tran/type/zif_aff_tran_v1.intf.abap | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 85863c1b7..c1afc9fc7 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -42,9 +42,9 @@ INTERFACE zif_aff_tran_v1 "!

Program

"! Program name - TYPES ty_program_name TYPE c LENGTH 40. + TYPES ty_program_name TYPE zif_aff_types_v1=>ty_object_name_40. "!

Dynpro

- "! Transaction Start Dynpro Number for Dialog Transaction + "! Transaction start dynpro number for dialog transaction TYPES ty_program_dynnr TYPE c LENGTH 4. "! $values {@link zif_aff_tran_v1.data:co_lock_status} @@ -124,9 +124,9 @@ INTERFACE zif_aff_tran_v1 "!

Report

"! Report name - TYPES ty_report_name TYPE c LENGTH 40. + TYPES ty_report_name TYPE zif_aff_types_v1=>ty_object_name_40. "!

Selection Screen

- "! Transaction Start Selection Screen for Report Transaction + "! Transaction start selection screen for the report transaction TYPES ty_report_dynnr TYPE c LENGTH 4. "!

Variant

@@ -147,10 +147,10 @@ INTERFACE zif_aff_tran_v1 "!

Program Name

"! Program name - TYPES ty_class_program_name TYPE c LENGTH 40. + TYPES ty_class_program_name TYPE zif_aff_types_v1=>ty_object_name_40. "!

Class

"! Class name - TYPES ty_class_name TYPE c LENGTH 30. + TYPES ty_class_name TYPE zif_aff_types_v1=>ty_object_name_30. "!

Method

"! Method name TYPES ty_method_name TYPE c LENGTH 61. @@ -226,10 +226,10 @@ INTERFACE zif_aff_tran_v1 TYPES ty_var_parent_transaction_code TYPE ty_transaction_code. "!

Cross-Client Transaction Variant

"! Name of cross-client transaction variant - TYPES ty_transaction_ci_variant_name TYPE c LENGTH 30. + TYPES ty_transaction_ci_variant_name TYpe zif_aff_types_v1=>ty_object_name_30. "!

Transaction Variant

"! Name of transaction variant - TYPES ty_transaction_variant_name TYPE c LENGTH 30. + TYPES ty_transaction_variant_name TYPE zif_aff_types_v1=>ty_object_name_30. TYPES: BEGIN OF ty_variant_transaction, "!

Parent Transaction

@@ -388,7 +388,7 @@ INTERFACE zif_aff_tran_v1 TYPES ty_auth_field TYPE c LENGTH 10. "!

Authorization Value

"! Authorization value - TYPES ty_auth_value TYPE c LENGTH 40. + TYPES ty_auth_value TYPE zif_aff_types_v1=>ty_object_name_40. TYPES: "!

Start Authorization Object Field Value

From c15c275229955c3f6d42c982decda71b1f1e9fb8 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 1 Sep 2025 12:25:11 +0200 Subject: [PATCH 27/29] React to abaplint error --- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index c1afc9fc7..1d2779d41 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -226,7 +226,7 @@ INTERFACE zif_aff_tran_v1 TYPES ty_var_parent_transaction_code TYPE ty_transaction_code. "!

Cross-Client Transaction Variant

"! Name of cross-client transaction variant - TYPES ty_transaction_ci_variant_name TYpe zif_aff_types_v1=>ty_object_name_30. + TYPES ty_transaction_ci_variant_name TYPE zif_aff_types_v1=>ty_object_name_30. "!

Transaction Variant

"! Name of transaction variant TYPES ty_transaction_variant_name TYPE zif_aff_types_v1=>ty_object_name_30. From ce9fef62455371df2df20d1762dfa3b4f1ae4a00 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Thu, 4 Sep 2025 16:17:35 +0200 Subject: [PATCH 28/29] React to CrossCheck1 --- .../examples/z_aff_example_tran.tran.json | 20 +- file-formats/tran/tran-v1.json | 516 +++++++++--------- .../tran/type/zif_aff_tran_v1.intf.abap | 57 +- 3 files changed, 287 insertions(+), 306 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index 48c9b916b..faa1c7fad 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -5,17 +5,15 @@ "originalLanguage": "en" }, "generalInformation": { - "implementation": { - "transactionType": "parameterTransaction", - "parameterTransaction": { - "parParentTransactionCode": "SE16", - "parameterValues": [ - { - "parameterName": "DATABROWSE-TABLENAME", - "parameterValue": "TSTC" - } - ] - } + "transactionType": "parameterTransaction", + "parameterTransaction": { + "parParentTransactionCode": "SE16", + "parameterValues": [ + { + "parameterName": "DATABROWSE-TABLENAME", + "parameterValue": "TSTC" + } + ] } }, "userInterface": { diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index bcbb5b03c..4921b871e 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -62,286 +62,278 @@ "description": "The general information contains details about the transaction, depending on the transaction type.", "type": "object", "properties": { - "implementation": { - "title": "Implementation", - "description": "The implementation contains details about the transaction, depending on the transaction type.", + "transactionType": { + "title": "Type", + "description": "The transaction type defines which object will be started at runtime when the transaction is called. Depending on the transaction type, other type of object can be started and different fields become relevant.", + "type": "string", + "enum": [ + "dialogTransaction", + "ooTransaction", + "parameterTransaction", + "reportTransaction", + "variantTransaction" + ], + "enumTitles": [ + "Dialog Transaction", + "OO Transaction", + "Parameter Transaction", + "Report Transaction", + "Variant Transaction" + ], + "enumDescriptions": [ + "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", + "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction." + ], + "default": "parameterTransaction" + }, + "lockStatus": { + "title": "Lock Status", + "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", + "type": "string", + "enum": [ + "locked", + "notLocked" + ], + "enumTitles": [ + "Locked", + "Not Locked" + ], + "enumDescriptions": [ + "Locked", + "Not locked" + ], + "default": "notLocked" + }, + "dialogTransaction": { + "title": "Dialog Transaction", + "description": "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", "type": "object", "properties": { - "transactionType": { - "title": "Transaction Type", - "description": "The transaction type defines which object will be started at runtime when the transaction is called. Depending on the transaction type, other type of object can be started and different fields become relevant.", + "programName": { + "title": "Program", + "description": "Program name for dialog transaction", + "type": "string", + "maxLength": 40 + }, + "programDynnr": { + "title": "Dynpro", + "description": "Transaction start dynpro number for dialog transaction", + "type": "string", + "maxLength": 4 + }, + "stvMaintenanceMode": { + "title": "Standard Transaction Variant Maintenance", + "description": "If the standard transaction variant maintenance mode is allowed, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance.", "type": "string", "enum": [ - "dialogTransaction", - "ooTransaction", - "parameterTransaction", - "reportTransaction", - "variantTransaction" + "allowed", + "notAllowed" ], "enumTitles": [ - "Dialog Transaction", - "OO Transaction", - "Parameter Transaction", - "Report Transaction", - "Variant Transaction" + "Allowed", + "Not Allowed" ], "enumDescriptions": [ - "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", - "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", - "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", - "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", - "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction." + "Allowed", + "Not Allowed" ], - "default": "parameterTransaction" + "default": "notAllowed" + } + }, + "additionalProperties": false + }, + "parameterTransaction": { + "title": "Parameter Transaction", + "description": "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", + "type": "object", + "properties": { + "parParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number that are started when the transaction is called. The parent transaction can be a dialog or a report transaction.", + "type": "string", + "maxLength": 20 }, - "lockStatus": { - "title": "Lock Status", - "description": "Transaction lock status indicates whether a transaction is currently blocked from execution. It helps prevent unauthorized or unintended use, especially during maintenance, development, or when a transaction is obsolete or being phased out.", + "skipInitialScreenMode": { + "title": "Initial Screen", + "description": "Initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", "type": "string", "enum": [ - "locked", - "notLocked" + "skip", + "show" ], "enumTitles": [ - "Locked", - "Not Locked" + "Skip", + "Show" ], "enumDescriptions": [ - "Locked", - "Not locked" + "Skip Initial Screen", + "Show Initial Screen" ], - "default": "notLocked" + "default": "show" }, - "dialogTransaction": { - "title": "Dialog Transaction", - "description": "The runtime calls a dynpro of a function group, module pool or report. The dynpro specified as initial screen must not be a selection screen. The program logic defines which screens are displayed after the initial screen.", - "type": "object", - "properties": { - "programName": { - "title": "Program", - "description": "Program name for dialog transaction", - "type": "string", - "maxLength": 40 - }, - "programDynnr": { - "title": "Dynpro", - "description": "Transaction start dynpro number for dialog transaction", - "type": "string", - "maxLength": 4 + "parameterValues": { + "title": "Parameters", + "description": "Parameter values", + "type": "array", + "items": { + "title": "Parameters", + "description": "Parameter transaction parameter value", + "type": "object", + "properties": { + "parameterName": { + "title": "Name", + "description": "Name of the parameter for the parameter transaction", + "type": "string", + "maxLength": 132 + }, + "parameterValue": { + "title": "Value", + "description": "Value for the parameter of the parameter transaction", + "type": "string", + "maxLength": 50 + } }, - "stvMaintenanceMode": { - "title": "Standard Transaction Variant Maintenance", - "description": "If the standard transaction variant maintenance mode is allowed, activating a transaction variant as standard transaction variant is enabled in the transaction variant maintenance.", - "type": "string", - "enum": [ - "allowed", - "notAllowed" - ], - "enumTitles": [ - "Allowed", - "Not Allowed" - ], - "enumDescriptions": [ - "Allowed", - "Not Allowed" - ], - "default": "notAllowed" - } - }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "parameterName" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "parParentTransactionCode" + ] + }, + "reportTransaction": { + "title": "Report Transaction", + "description": "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", + "type": "object", + "properties": { + "reportName": { + "title": "Report", + "description": "Report name for the report transaction", + "type": "string", + "maxLength": 40 }, - "parameterTransaction": { - "title": "Parameter Transaction", - "description": "Parameter transactions specialize dialog or report transactions by presetting initial screen values. You can also skip the initial screen to prevent users from changing these predefined values.", - "type": "object", - "properties": { - "parParentTransactionCode": { - "title": "Parent Transaction", - "description": "The parent transaction code of the parameter transaction defines the transaction that provides the program and the dynpro number that are started when the transaction is called. The parent transaction can be a dialog or a report transaction.", - "type": "string", - "maxLength": 20 - }, - "skipInitialScreenMode": { - "title": "Skip Initial Screen", - "description": "Skip initial screen mode allows bypassing the first screen of the parent transaction by using predefined values.", - "type": "string", - "enum": [ - "skip", - "show" - ], - "enumTitles": [ - "Skip", - "Show" - ], - "enumDescriptions": [ - "Skip Initial Screen", - "Show Initial Screen" - ], - "default": "show" - }, - "parameterValues": { - "title": "Parameter values", - "description": "Parameter values", - "type": "array", - "items": { - "title": "Parameter Value", - "description": "Parameter transaction parameter value", - "type": "object", - "properties": { - "parameterName": { - "title": "Parameter Name", - "description": "Name of the parameter for the parameter transaction", - "type": "string", - "maxLength": 132 - }, - "parameterValue": { - "title": "Parameter Value", - "description": "Value for the parameter of the parameter transaction", - "type": "string", - "maxLength": 50 - } - }, - "additionalProperties": false, - "required": [ - "parameterName" - ] - } - } - }, - "additionalProperties": false, - "required": [ - "parParentTransactionCode" - ] + "reportDynnr": { + "title": "Screen", + "description": "Transaction start selection screen for the report transaction", + "type": "string", + "maxLength": 4 }, - "reportTransaction": { - "title": "Report Transaction", - "description": "The runtime calls a dynpro of a report. The dynpro specified as initial screen must be a selection screen. The execution of a report usually has three stages: data entry, data processing, and data output.", - "type": "object", - "properties": { - "reportName": { - "title": "Report", - "description": "Report name for the report transaction", - "type": "string", - "maxLength": 40 - }, - "reportDynnr": { - "title": "Screen", - "description": "Transaction start selection screen for the report transaction", - "type": "string", - "maxLength": 4 - }, - "reportVariantName": { - "title": "Variant", - "description": "Variant name for the report transaction", - "type": "string", - "maxLength": 14 - } - }, - "additionalProperties": false + "reportVariantName": { + "title": "Variant", + "description": "Variant name for the report transaction", + "type": "string", + "maxLength": 14 + } + }, + "additionalProperties": false + }, + "ooTransaction": { + "title": "OO Transaction", + "description": "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", + "type": "object", + "properties": { + "localInProgramIndi": { + "title": "Local in Program", + "description": "If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class.", + "type": "boolean" }, - "ooTransaction": { - "title": "OO Transaction", - "description": "At runtime, the system calls a class method. The transaction links to either the ABAP Object Services Transaction Service (for persistent objects) or to a public method of a class. For instance methods, the system auto-creates a class instance.", - "type": "object", - "properties": { - "localInProgramIndi": { - "title": "Local in Program", - "description": "If this indicator is set, the OO transaction uses a local ABAP class within this specified ABAP program. Otherwise it uses a global ABAP class.", - "type": "boolean" - }, - "classProgramName": { - "title": "Program", - "description": "Name of the program for the OO transacton", - "type": "string", - "maxLength": 40 - }, - "className": { - "title": "Class", - "description": "Name of the ABAP class", - "type": "string", - "maxLength": 30 - }, - "methodName": { - "title": "Method", - "description": "Name of the method of the ABAP class", - "type": "string", - "maxLength": 61 - }, - "ooTransactionModelIndi": { - "title": "OO Transaction Model", - "description": "If this indicator is set, the OO transaction follows the object-oriented transaction model. See the interface IF_OS_TRANSACTION_MANAGER for more information.", - "type": "boolean" - }, - "updateMode": { - "title": "Update Mode", - "description": "The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately.", - "type": "string", - "enum": [ - "asynchronous", - "synchronous", - "local" - ], - "enumTitles": [ - "Asynchronous", - "Synchronous", - "Local" - ], - "enumDescriptions": [ - "Asynchronous", - "Synchronous", - "Local" - ], - "default": "asynchronous" - } - }, - "additionalProperties": false, - "required": [ - "className", - "methodName" - ] + "classProgramName": { + "title": "Program", + "description": "Name of the program for the OO transacton", + "type": "string", + "maxLength": 40 }, - "variantTransaction": { - "title": "Variant Transaction", - "description": "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction.", - "type": "object", - "properties": { - "varParentTransactionCode": { - "title": "Parent Transaction", - "description": "The parent transaction code links related transaction to its original (parent) transaction. It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration.", - "type": "string", - "maxLength": 20 - }, - "transactionVariantCiIndi": { - "title": "Cross-Client", - "description": "If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific.", - "type": "boolean" - }, - "transactionCiVariantName": { - "title": "Transaction Variant", - "description": "Name of the cross-client transaction variant. A cross-client transaction variant is available in the system regardless of which client is currently active, and the field contents used in the transaction variant must be available in all clients.", - "type": "string", - "maxLength": 30 - }, - "transactionVariantName": { - "title": "Transaction Variant", - "description": "Name of the client-specific transaction variant. A client-specific transaction variant exists only in the client where it was created, and the field contents used in the transaction variant must be available in that client.", - "type": "string", - "maxLength": 30 - } - }, - "additionalProperties": false, - "required": [ - "varParentTransactionCode" - ] + "className": { + "title": "Class", + "description": "Name of the ABAP class", + "type": "string", + "maxLength": 30 + }, + "methodName": { + "title": "Method", + "description": "Name of the method of the ABAP class", + "type": "string", + "maxLength": 61 + }, + "ooTransactionModelIndi": { + "title": "OO Transaction Model", + "description": "If this indicator is set, the OO transaction follows the object-oriented transaction model. See the interface IF_OS_TRANSACTION_MANAGER for more information.", + "type": "boolean" + }, + "updateMode": { + "title": "Update Mode", + "description": "The update mode for an OO transaction defines how data changes are processed: synchronously, asynchronously, or immediately.", + "type": "string", + "enum": [ + "asynchronous", + "synchronous", + "local" + ], + "enumTitles": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "enumDescriptions": [ + "Asynchronous", + "Synchronous", + "Local" + ], + "default": "asynchronous" + } + }, + "additionalProperties": false, + "required": [ + "className", + "methodName" + ] + }, + "variantTransaction": { + "title": "Variant Transaction", + "description": "Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. They let you preset field values, set field attributes, or hide screens to streamline user interaction.", + "type": "object", + "properties": { + "varParentTransactionCode": { + "title": "Parent Transaction", + "description": "The parent transaction code links related transaction to its original (parent) transaction. It enables inheritance of settings like UI attributes or authorizations, ensuring consistency and reducing duplication in configuration.", + "type": "string", + "maxLength": 20 + }, + "transactionVariantCiIndi": { + "title": "Cross-Client", + "description": "If the indicator is set, the transaction variant is cross-client. If the switch is not set, the transaction variant is client-specific.", + "type": "boolean" + }, + "transactionCiVariantName": { + "title": "Transaction Variant", + "description": "Name of the cross-client transaction variant. A cross-client transaction variant is available in the system regardless of which client is currently active, and the field contents used in the transaction variant must be available in all clients.", + "type": "string", + "maxLength": 30 + }, + "transactionVariantName": { + "title": "Transaction Variant", + "description": "Name of the client-specific transaction variant. A client-specific transaction variant exists only in the client where it was created, and the field contents used in the transaction variant must be available in that client.", + "type": "string", + "maxLength": 30 } }, "additionalProperties": false, "required": [ - "transactionType" + "varParentTransactionCode" ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "transactionType" + ] }, "userInterface": { "title": "User Interface", @@ -354,7 +346,7 @@ "type": "object", "properties": { "inheritanceMode": { - "title": "Inherit UI Attributes", + "title": "Inheritance Mode", "description": "Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants or field attributes are inherited from a parent transaction to its variants, ensuring consistent user interfaces across related transactions.", "type": "string", "enum": [ @@ -396,7 +388,7 @@ "maxLength": 14 }, "pervasiveMode": { - "title": "Pervasive Enabled", + "title": "Pervasive Mode", "description": "Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core functions with minimal screen complexity.", "type": "string", "enum": [ @@ -484,17 +476,17 @@ "type": "object", "properties": { "authObjectName": { - "title": "Start Authorization Object Name", + "title": "Authorization Object", "description": "Name of the start authorization object", "type": "string", "maxLength": 10 }, "authObjectFieldValues": { - "title": "Start Authorization Object Field Values", + "title": "Authorization Field Values", "description": "Fields with values for the start authorization object", "type": "array", "items": { - "title": "Start Authorization Object Field Value", + "title": "Authorization Field Values", "description": "A start authorization object controls who may run a transaction. It is checked at transaction start. Fields must have single or empty values. Empty fields trigger a DUMMY check. This object is auto-assigned in the authorization defaults of transaction.", "type": "object", "properties": { @@ -577,21 +569,21 @@ "default": "active" }, "documentation": { - "title": "Authorization Defaults Documentation for Application", + "title": "Documentation", "description": "Authorization defaults documentation for application.", "type": "string" }, "authObjects": { - "title": "Authorization Defaults Authorization Objects", + "title": "Authorization Objects", "description": "Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent security settings across users and roles.", "type": "array", "items": { - "title": "Authorization Defaults Authorization Object Details", + "title": "Authorization Object Details", "description": "Authorization default values define which authorization objects and field values are automatically proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent security settings across users and roles.", "type": "object", "properties": { "authObjectName": { - "title": "Authorization Object Name", + "title": "Object", "description": "Name of the authorization object", "type": "string", "maxLength": 10 @@ -624,16 +616,16 @@ "default": "defaultWithValues" }, "documentation": { - "title": "Authorization Defaults Documentation for Object", + "title": "Documentation", "description": "Authorization defaults documentation for object", "type": "string" }, "authObjectFieldValues": { - "title": "Authorization Defaults Authorization Field Value", + "title": "Authorization Field Values", "description": "Authorization defaults authorization field value", "type": "array", "items": { - "title": "Authorization Defaults Authorization Field Value", + "title": "Authorization Field Values", "description": "Authorization defaults authorization field value", "type": "object", "properties": { diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index 1d2779d41..f98a970a4 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -188,14 +188,14 @@ INTERFACE zif_aff_tran_v1 "! Parameter value TYPES ty_parameter_value TYPE c LENGTH 50. TYPES: - "!

Parameter Value

+ "!

Parameters

"! Parameter transaction parameter value BEGIN OF ty_par_pv, - "!

Parameter Name

+ "!

Name

"! Name of the parameter for the parameter transaction "! $required parameter_name TYPE ty_parameter_name, - "!

Parameter Value

+ "!

Value

"! Value for the parameter of the parameter transaction parameter_value TYPE ty_parameter_value, END OF ty_par_pv. @@ -212,11 +212,11 @@ INTERFACE zif_aff_tran_v1 "! The parent transaction can be a dialog or a report transaction. "! $required par_parent_transaction_code TYPE ty_par_parent_transaction_code, - "!

Skip Initial Screen

- "! Skip initial screen mode allows bypassing the first screen of the parent + "!

Initial Screen

+ "! Initial screen mode allows bypassing the first screen of the parent "! transaction by using predefined values. skip_initial_screen_mode TYPE ty_skip_initial_screen_mode, - "!

Parameter values

+ "!

Parameters

"! Parameter values parameter_values TYPE ty_par_pv_t, END OF ty_parameter_transaction. @@ -255,8 +255,8 @@ INTERFACE zif_aff_tran_v1 END OF ty_variant_transaction. TYPES: - BEGIN OF ty_implementation, - "!

Transaction Type

+ BEGIN OF ty_general_information, + "!

Type

"! The transaction type defines which object will be started at runtime when the transaction is called. "! Depending on the transaction type, other type of object can be started and different fields become relevant. "! $required @@ -289,7 +289,7 @@ INTERFACE zif_aff_tran_v1 "! Variant transactions customize dialog or report transactions by adapting menus and screens at runtime. "! They let you preset field values, set field attributes, or hide screens to streamline user interaction. variant_transaction TYPE ty_variant_transaction, - END OF ty_implementation. + END OF ty_general_information. "!

Maintenance Mode

"! Maintenance modes for applications define how applications can be modified. @@ -391,7 +391,7 @@ INTERFACE zif_aff_tran_v1 TYPES ty_auth_value TYPE zif_aff_types_v1=>ty_object_name_40. TYPES: - "!

Start Authorization Object Field Value

+ "!

Authorization Field Values

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. "! This object is auto-assigned in the authorization defaults of transaction. @@ -405,7 +405,7 @@ INTERFACE zif_aff_tran_v1 auth_field_value TYPE ty_auth_value, END OF ty_sao_afv. - "!

Start Authorization Object Field Value

+ "!

Authorization Field Values

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. "! This object is auto-assigned in the authorization defaults transaction. @@ -420,22 +420,22 @@ INTERFACE zif_aff_tran_v1 TYPES ty_sao_name TYPE ty_auth_object_name. TYPES: - "!

Start Authorization Object

+ "!

Start Authorization Object Details

"! A start authorization object controls who may run a transaction. It is checked at transaction start. "! Fields must have single or empty values. Empty fields trigger a DUMMY check. "! This object is auto-assigned in the authorization defaults transaction. BEGIN OF ty_sao, - "!

Start Authorization Object Name

+ "!

Authorization Object

"! Name of the start authorization object "! $required auth_object_name TYPE ty_sao_name, - "!

Start Authorization Object Field Values

+ "!

Authorization Field Values

"! Fields with values for the start authorization object auth_object_field_values TYPE ty_sao_afv_t, END OF ty_sao. TYPES: - "!

Authorization Defaults Authorization Field Value

+ "!

Authorization Field Values

"! Authorization defaults authorization field value BEGIN OF ty_ad_afv, "!

Authorization Field

@@ -449,17 +449,17 @@ INTERFACE zif_aff_tran_v1 "! To value auth_field_high_value TYPE ty_auth_value, END OF ty_ad_afv. - "!

Authorization Defaults Authorization Field Values

+ "!

Authorization Field Values

"! Authorization defaults authorization field values TYPES ty_ad_afv_t TYPE STANDARD TABLE OF ty_ad_afv WITH DEFAULT KEY. TYPES: - "!

Authorization Defaults Authorization Object Details

+ "!

Authorization Object Details

"! Authorization default values define which authorization objects and field values are automatically "! proposed when creating roles for a transaction, "! simplifying role maintenance and ensuring consistent security settings across users and roles. BEGIN OF ty_ad_ao, - "!

Authorization Object Name

+ "!

Object

"! Name of the authorization object auth_object_name TYPE ty_auth_object_name, "!

Maintenance Status

@@ -467,10 +467,10 @@ INTERFACE zif_aff_tran_v1 "! it in its application and whether an authorization default is added to a data of role data by "! the profile generator when the app is in the role menu. maintenance_status TYPE ty_maintenance_status, - "!

Authorization Defaults Documentation for Object

+ "!

Documentation

"! Authorization defaults documentation for object documentation TYPE string, - "!

Authorization Defaults Authorization Field Value

+ "!

Authorization Field Values

"! Authorization defaults authorization field value auth_object_field_values TYPE ty_ad_afv_t, END OF ty_ad_ao. @@ -491,10 +491,10 @@ INTERFACE zif_aff_tran_v1 "! a parent transaction to its variants, "! ensuring consistent access rights and roles across related transactions. inheritance_mode TYPE ty_inheritance_mode, - "!

Authorization Defaults Documentation for Application

+ "!

Documentation

"! Authorization defaults documentation for application. documentation TYPE string, - "!

Authorization Defaults Authorization Objects

+ "!

Authorization Objects

"! Authorization default values define which authorization objects and field values are automatically "! proposed when creating roles for a transaction, simplifying role maintenance and ensuring consistent "! security settings across users and roles. @@ -583,7 +583,7 @@ INTERFACE zif_aff_tran_v1 TYPES: BEGIN OF ty_ui_attributes, - "!

Inherit UI Attributes

+ "!

Inheritance Mode

"! Transaction UI Attributes Inheritance Mode controls how UI settings like screen variants "! or field attributes are inherited from a parent transaction to its variants, ensuring "! consistent user interfaces across related transactions. @@ -598,7 +598,7 @@ INTERFACE zif_aff_tran_v1 "! enabling its execution via a browser. It's required for Easy Web Transactions if the service "! name differs from the transaction name. iac_service_name TYPE c LENGTH 14, - "!

Pervasive Enabled

+ "!

Pervasive Mode

"! Transaction Pervasive Mode enables a simplified, responsive UI for transactions on various devices, "! like tablets or smartphones. It's designed for casual users needing quick, intuitive access to core "! functions with minimal screen complexity. @@ -614,15 +614,6 @@ INTERFACE zif_aff_tran_v1 win32_mode TYPE ty_ua_win32_mode, END OF ty_ui_attributes. - - - TYPES: - BEGIN OF ty_general_information, - "!

Implementation

- "! The implementation contains details about the transaction, depending on the transaction type. - implementation TYPE ty_implementation, - END OF ty_general_information. - TYPES: BEGIN OF ty_authorizations, "!

Start Authorization Object

From 33338a166a90fcb873eb93312bac0322ed862526 Mon Sep 17 00:00:00 2001 From: WDFYvonne <50316404+WDFYvonne@users.noreply.github.com> Date: Mon, 8 Sep 2025 19:26:53 +0200 Subject: [PATCH 29/29] New defaults for constants --- file-formats/tran/examples/z_aff_example_tran.tran.json | 2 +- file-formats/tran/tran-v1.json | 6 +++--- file-formats/tran/type/zif_aff_tran_v1.intf.abap | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/file-formats/tran/examples/z_aff_example_tran.tran.json b/file-formats/tran/examples/z_aff_example_tran.tran.json index faa1c7fad..839cd6830 100644 --- a/file-formats/tran/examples/z_aff_example_tran.tran.json +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -8,6 +8,7 @@ "transactionType": "parameterTransaction", "parameterTransaction": { "parParentTransactionCode": "SE16", + "skipInitialScreenMode": "show", "parameterValues": [ { "parameterName": "DATABROWSE-TABLENAME", @@ -25,7 +26,6 @@ }, "authorizations": { "authorizationDefaults": { - "inheritanceMode": "inactive", "authObjects": [ { "authObjectName": "S_ABPLNGVS", diff --git a/file-formats/tran/tran-v1.json b/file-formats/tran/tran-v1.json index 4921b871e..e0273cd68 100644 --- a/file-formats/tran/tran-v1.json +++ b/file-formats/tran/tran-v1.json @@ -140,7 +140,7 @@ "Allowed", "Not Allowed" ], - "default": "notAllowed" + "default": "allowed" } }, "additionalProperties": false @@ -172,7 +172,7 @@ "Skip Initial Screen", "Show Initial Screen" ], - "default": "show" + "default": "skip" }, "parameterValues": { "title": "Parameters", @@ -566,7 +566,7 @@ "Active", "Inactive" ], - "default": "active" + "default": "inactive" }, "documentation": { "title": "Documentation", diff --git a/file-formats/tran/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap index f98a970a4..f3b68e413 100644 --- a/file-formats/tran/type/zif_aff_tran_v1.intf.abap +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -62,7 +62,7 @@ INTERFACE zif_aff_tran_v1 END OF co_lock_status. "! $values {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode} - "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.show} + "! $default {@link zif_aff_tran_v1.data:co_skip_initial_screen_mode.skip} TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. CONSTANTS: "!

Skip Initial Screen Mode

@@ -76,7 +76,7 @@ INTERFACE zif_aff_tran_v1 END OF co_skip_initial_screen_mode. "! $values {@link zif_aff_tran_v1.data:co_stv_maintenance_mode} - "! $default {@link zif_aff_tran_v1.data:co_stv_maintenance_mode.not_allowed} + "! $default {@link zif_aff_tran_v1.data:co_stv_maintenance_mode.allowed} TYPES ty_stv_maintenance_mode TYPE c LENGTH 1. CONSTANTS: "!

Editing of standard transaction variant

@@ -368,7 +368,7 @@ INTERFACE zif_aff_tran_v1 END OF co_maintenance_status. "! $values {@link zif_aff_tran_v1.data:co_inheritance_mode} - "! $default {@link zif_aff_tran_v1.data:co_inheritance_mode.active} + "! $default {@link zif_aff_tran_v1.data:co_inheritance_mode.inactive} TYPES ty_inheritance_mode TYPE c LENGTH 10. CONSTANTS: "!

Authorization Defaults Inheritance Mode