diff --git a/file-formats/tran/README.md b/file-formats/tran/README.md new file mode 100644 index 000000000..6047cbd9f --- /dev/null +++ b/file-formats/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) | [`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 new file mode 100644 index 000000000..839cd6830 --- /dev/null +++ b/file-formats/tran/examples/z_aff_example_tran.tran.json @@ -0,0 +1,62 @@ +{ + "formatVersion": "1", + "header": { + "description": "SE93 Test - Parameter Transaction", + "originalLanguage": "en" + }, + "generalInformation": { + "transactionType": "parameterTransaction", + "parameterTransaction": { + "parParentTransactionCode": "SE16", + "skipInitialScreenMode": "show", + "parameterValues": [ + { + "parameterName": "DATABROWSE-TABLENAME", + "parameterValue": "TSTC" + } + ] + } + }, + "userInterface": { + "uiAttributes": { + "inheritanceMode": "active", + "pervasiveMode": "disabled", + "win32Mode": "notSupported" + } + }, + "authorizations": { + "authorizationDefaults": { + "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-v1.json b/file-formats/tran/tran-v1.json new file mode 100644 index 000000000..e0273cd68 --- /dev/null +++ b/file-formats/tran/tran-v1.json @@ -0,0 +1,674 @@ +{ + "$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": "The general information contains details about the transaction, depending on the transaction type.", + "type": "object", + "properties": { + "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": { + "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": [ + "allowed", + "notAllowed" + ], + "enumTitles": [ + "Allowed", + "Not Allowed" + ], + "enumDescriptions": [ + "Allowed", + "Not Allowed" + ], + "default": "allowed" + } + }, + "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": "Initial Screen", + "description": "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": "skip" + }, + "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 + } + }, + "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": "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": [ + "transactionType" + ] + }, + "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": { + "inheritanceMode": { + "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": [ + "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 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": [ + "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 + }, + "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 authorization defaults transaction.", + "type": "object", + "properties": { + "authObjectName": { + "title": "Authorization Object", + "description": "Name of the start authorization object", + "type": "string", + "maxLength": 10 + }, + "authObjectFieldValues": { + "title": "Authorization Field Values", + "description": "Fields with values for the start authorization object", + "type": "array", + "items": { + "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": { + "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": "string", + "enum": [ + "active", + "inactive" + ], + "enumTitles": [ + "Active", + "Inactive" + ], + "enumDescriptions": [ + "Active", + "Inactive" + ], + "default": "inactive" + }, + "documentation": { + "title": "Documentation", + "description": "Authorization defaults documentation for application.", + "type": "string" + }, + "authObjects": { + "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 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": "Object", + "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 data of role 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": "Documentation", + "description": "Authorization defaults documentation for object", + "type": "string" + }, + "authObjectFieldValues": { + "title": "Authorization Field Values", + "description": "Authorization defaults authorization field value", + "type": "array", + "items": { + "title": "Authorization Field Values", + "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/type/zif_aff_tran_v1.intf.abap b/file-formats/tran/type/zif_aff_tran_v1.intf.abap new file mode 100644 index 000000000..f3b68e413 --- /dev/null +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.abap @@ -0,0 +1,665 @@ +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.parameter_transaction} + 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. + 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_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. + 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. + 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. + variant_transaction TYPE ty_transaction_type VALUE 'V', + END OF co_transaction_type. + + "!

Program

+ "! Program name + TYPES ty_program_name TYPE zif_aff_types_v1=>ty_object_name_40. + "!

Dynpro

+ "! 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} + "! $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.skip} + TYPES ty_skip_initial_screen_mode TYPE c LENGTH 1. + CONSTANTS: + "!

Skip Initial Screen Mode

+ BEGIN OF co_skip_initial_screen_mode, + "!

Skip

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

Show

+ "! 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_stv_maintenance_mode} + "! $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

+ BEGIN OF co_stv_maintenance_mode, + "!

Allowed

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

Not Allowed

+ "! Not Allowed + 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} + 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_dialog_transaction, + "!

Program

+ "! Program name for dialog transaction + program_name TYPE ty_program_name, + "!

Dynpro

+ "! Transaction start dynpro number for dialog transaction + 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 zif_aff_types_v1=>ty_object_name_40. + "!

Selection Screen

+ "! Transaction start selection screen for the 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_report_transaction, + "!

Report

+ "! Report name for the report transaction + report_name TYPE ty_report_name, + "!

Screen

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

Variant

+ "! Variant name for the report transaction + report_variant_name TYPE ty_report_variant_name, + END OF ty_report_transaction. + + "!

Program Name

+ "! Program name + TYPES ty_class_program_name TYPE zif_aff_types_v1=>ty_object_name_40. + "!

Class

+ "! Class name + TYPES ty_class_name TYPE zif_aff_types_v1=>ty_object_name_30. + "!

Method

+ "! Method name + TYPES ty_method_name TYPE c LENGTH 61. + TYPES: + 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 ty_class_program_name, + "!

Class

+ "! Name of the ABAP class + "! $required + class_name TYPE ty_class_name, + "!

Method

+ "! Name of the method of the ABAP class + "! $required + 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. + 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_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: + "!

Parameters

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

Name

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

Value

+ "! Value for the parameter of the parameter transaction + 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. + + "!

Parent Transaction

+ "! Name of parent transaction + TYPES ty_par_parent_transaction_code TYPE ty_transaction_code. + TYPES: + 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 ty_par_parent_transaction_code, + "!

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, + "!

Parameters

+ "! Parameter values + parameter_values TYPE ty_par_pv_t, + 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 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. + TYPES: + 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 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, + "!

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 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 ty_transaction_variant_name, + END OF ty_variant_transaction. + + TYPES: + 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 + 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_general_information. + + "!

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

+ "! 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. + + 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 + "! 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. + + "! $values {@link zif_aff_tran_v1.data:co_inheritance_mode} + "! $default {@link zif_aff_tran_v1.data:co_inheritance_mode.inactive} + 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. + + "!

Authorization Field

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

Authorization Value

+ "! Authorization value + TYPES ty_auth_value TYPE zif_aff_types_v1=>ty_object_name_40. + + TYPES: + "!

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. + BEGIN OF ty_sao_afv, + "!

Authorization Field

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

Authorization Value

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

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. + 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 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, + "!

Authorization Object

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

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 Field Values

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

Authorization Field

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

From

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

To

+ "! To value + auth_field_high_value TYPE ty_auth_value, + END OF ty_ad_afv. + "!

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 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, + "!

Object

+ "! Name of the authorization object + 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 + "! the profile generator when the app is in the role menu. + maintenance_status TYPE ty_maintenance_status, + "!

Documentation

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

Authorization Field Values

+ "! 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 ty_inheritance_mode, + "!

Documentation

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

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. + + + "! $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_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. + 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, + "! without menus or toolbars. + 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 + "! name differs from the transaction name. + iac_service_name TYPE c LENGTH 14, + "!

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. + 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_webgui_mode, + "!

SAP GUI for Java

+ "! The transaction supports the start from SAP GUI for Java. + 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_win32_mode, + END OF ty_ui_attributes. + + 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: + 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 + 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

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

User Interface

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

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/type/zif_aff_tran_v1.intf.json b/file-formats/tran/type/zif_aff_tran_v1.intf.json new file mode 100644 index 000000000..3bffc160d --- /dev/null +++ b/file-formats/tran/type/zif_aff_tran_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "AFF for type TRAN - V1", + "originalLanguage": "en" + } +}