diff --git a/file-formats/intf/format.md b/file-formats/intf/format.md index d7a5b50d3..0c683fc25 100644 --- a/file-formats/intf/format.md +++ b/file-formats/intf/format.md @@ -9,3 +9,5 @@ File | Content --- | --- [`zif_aff_example.intf.json`](./examples/zif_aff_example.intf.json) | Properties and descriptions of the ABAP interface [`zif_aff_example.intf.abap`](./examples/zif_aff_example.intf.abap) | Interface source code + +Documentation of interfaces is not covered, yet. diff --git a/file-formats/intf/intf.json b/file-formats/intf/intf.json index 8f1a42fad..8b03bdfe1 100644 --- a/file-formats/intf/intf.json +++ b/file-formats/intf/intf.json @@ -50,6 +50,28 @@ "abapLanguageVersion" ] }, + "category": { + "title": "Interface category", + "description": "Interface category", + "type": "string", + "enum": [ + "standard", + "classicBadi", + "dbProcedureProxy", + "enterpriseService" + ], + "enumDescriptions": [ + "Standard interface", + "Interface definition of a classic BAdI", + "Generated interface of a database procedure proxy", + "Generated interface of enterprise services" + ] + }, + "proxy": { + "title": "Interface is a proxy interface", + "description": "Interface is a proxy interface", + "type": "boolean" + }, "types": { "type": "array", "title": "Type Descriptions", diff --git a/file-formats/intf/zif_aff_intf_v1.intf.abap b/file-formats/intf/zif_aff_intf_v1.intf.abap index 782dc5550..1be337c9b 100644 --- a/file-formats/intf/zif_aff_intf_v1.intf.abap +++ b/file-formats/intf/zif_aff_intf_v1.intf.abap @@ -1,5 +1,19 @@ INTERFACE zif_aff_intf_v1 PUBLIC. + TYPES: + category_base TYPE n LENGTH 2, + "! Interface category + BEGIN OF ENUM category BASE TYPE category_base, + "! Standard interface + standard VALUE IS INITIAL, + "! Interface definition of a classic BAdI + classic_badi VALUE '01', + "! Generated interface of a database procedure proxy + db_procedure_proxy VALUE '65', + "! Generated interface of enterprise services + enterprise_service VALUE '90', + END OF ENUM category. + TYPES: "! Component description (e.g., for methods, attributes, types) BEGIN OF component_description, @@ -20,9 +34,9 @@ INTERFACE zif_aff_intf_v1 PUBLIC. "! Description of the component description TYPE zif_aff_types_v1=>description_60, "! Parameter descriptions - parameters TYPE subcomponent_descriptions, + parameters TYPE subcomponent_descriptions, "! Exception descriptions - exceptions TYPE subcomponent_descriptions, + exceptions TYPE subcomponent_descriptions, END OF method, "! Method descriptions methods TYPE SORTED TABLE OF method WITH UNIQUE KEY name. @@ -35,7 +49,7 @@ INTERFACE zif_aff_intf_v1 PUBLIC. "! Description of the component description TYPE zif_aff_types_v1=>description_60, "! Parameter descriptions - parameters TYPE subcomponent_descriptions, + parameters TYPE subcomponent_descriptions, END OF event, "! Event descriptions events TYPE SORTED TABLE OF event WITH UNIQUE KEY name. @@ -43,7 +57,11 @@ INTERFACE zif_aff_intf_v1 PUBLIC. TYPES: "! Interface properties BEGIN OF main, - header TYPE zif_aff_types_v1=>head-header, + header TYPE zif_aff_types_v1=>header, + "! Interface category + category TYPE category, + "! Interface is a proxy interface + proxy TYPE abap_bool, "! Type descriptions types TYPE component_descriptions, "! Attribute descriptions diff --git a/file-formats/intf/zif_aff_types_v1.intf.abap b/file-formats/intf/zif_aff_types_v1.intf.abap index 8450a7f1d..b35860903 100644 --- a/file-formats/intf/zif_aff_types_v1.intf.abap +++ b/file-formats/intf/zif_aff_types_v1.intf.abap @@ -13,20 +13,15 @@ INTERFACE zif_aff_types_v1 PUBLIC. END OF ENUM abap_language_version. TYPES: - "! Head to be included in each object type - BEGIN OF head, - "! Location of the corresponding JSON schema - schema TYPE string, - "! The header for an ABAP main object - BEGIN OF header, - "! Description of the ABAP object - description TYPE string, - "! Original language of the ABAP object - master_language TYPE language, - "! ABAP language version - abap_langu_version TYPE abap_language_version, - END OF header, - END OF head. + "! The header for an ABAP main object + BEGIN OF header, + "! Description of the ABAP object + description TYPE string, + "! Original language of the ABAP object + master_language TYPE language, + "! ABAP language version + abap_langu_version TYPE abap_language_version, + END OF header. "! Description with 60 characters TYPES description_60 TYPE c LENGTH 60. @@ -34,4 +29,4 @@ INTERFACE zif_aff_types_v1 PUBLIC. "! Object name with max. length 30 TYPES object_name_30 TYPE c LENGTH 30. -ENDINTERFACE. \ No newline at end of file +ENDINTERFACE.