Skip to content

Conversation

WDFYvonne
Copy link
Contributor

@WDFYvonne WDFYvonne commented Jul 24, 2025

closed

@WDFYvonne
Copy link
Contributor Author

Hi colleagues,
I do not see any abaplint errors for TRAN, there are new errors for old object SUSH. Do I need to correct these new errors for SUSH?

@WDFYvonne
Copy link
Contributor Author

Hi Colleagues,
could you please help me to resolve the issue with the generate JSON Schema?
Regards,
Yvonne

Copy link
Member

@Markus1812 Markus1812 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Yvonne, thanks for contributing to our abap-file-formats repository. TRAN is a huge file format, so please understand if we need multiple iterations of reviews here. Below, I've added some first comments. Please have a look and let me know what you think :)

@WDFYvonne
Copy link
Contributor Author

Hi Marcus, thank you very much for reviewing our AFF. All the field names and titles are based on our data model. I need to confirm this with Peter Dell, but he's on vacation until tomorrow.

@GuilhermeSaraiva96
Copy link

Hi Yvonne, the AFF naming are separate from the data model names. In the aff persist class you can then map both. One of the main advantages of the AFF is providing a readable object, which does not happens if there are acronyms everywhere. Just to keep in mind ;)

@Markus1812
Copy link
Member

@WDFYvonne From my perspective, there are still some open points on your side. If you have made some changes, please upload the files again and let me know, when I can review again. If a review-comment is addressed from your point of view, please resolve the conversation.

@WDFYvonne
Copy link
Contributor Author

@Markus1812 we have closed all open points and upload the corrected AFF again. Please check it again.

@Markus1812
Copy link
Member

Hi Yvonne, thanks for the update. I've asked someone from my team to co-review your AFF.

Copy link
Contributor

@schneidermic0 schneidermic0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution, @WDFYvonne.

Markus asked me to take a look at this pull request as well. Overall, the structure seems pretty solid. I've given some feedback on it, too.

However, I'm having some trouble with the names you've chosen for the AFF. I understand you've adapted them to fit your internal structure, but I want to emphasize that AFF is meant to be easily understood by users [1]. The names you choose should be as close as possible to what end users are familiar with. This applies not only to field titles but also to the field names themselves. These names appear in the source code and version management tools, like in git repositories or comparison editors. It's important to have user-friendly field names and titles for a better user experience.

An example is the difference between the field name platinMode and "SAP GUI for Java".

I recommend aligning these names with user terminology whenever possible. It might be helpful to finalize these field names during the UX review and then update them in the AFF afterward.

[1] https://github.com/SAP/abap-file-formats#background-and-scope

webgui_mode TYPE ty_ua_webgui_mode,
"! <p class="shorttext">SAP GUI for Java</p>
"! The transaction supports the start from SAP GUI for Java.
platin_mode TYPE ty_ua_platin_mode,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why you are using different terms from the UI technology? Especially, I am struggling with "platinMode" as a field. Is this really known by end-users who creates transactions?
I din't find it in SAPterm. Do I miss anything?

Also in SE93, this is called like your titles, which I think are good.

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW - Here, I would also prefer check boxes (as in SAP GUI) instead of having drop-downs (with only two values). I think @Markus1812 mentioned this earlier. ;) But we can wait for the UX review
If a third value would be needed in the future, you could increase the file format version.

I agree with the argument having fields extendible (especially on the DB/API level). However, on the end-user facing level booleans/check-boxes might be much more easy to use.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the logical and physical data model the names of these fields are also WEBGUI_MODE, PLATIN_MODE and WIN32_MODE. Also here we want to avoid error by mapping

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The technical names are technical names that are also used in out official APIs and CDS views. End users editing the source should never see them. Also when showing diffs, I would expect the field label to be displayed, like this in done in SVERS, Change Documents and DBTAB Logs.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the checkboxes, I would expect this to be handled via the UI configuration, like we do in the Dynpro case. But as AFF is also the basis for non-UI cases like abapGIT, having the same technical names everywhere is essential for us.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intention of AFF is to have a source code representation that is shown to the end user in the JSON format. As of now, the AFF infrastructure doesn't provide a mapping between the technical fields in the ABAP type and the JSON representation*. Therefore, the names of the fields in the AFF's ABAP type become end-user relevant in the JSON. At least without extending the existing infrastructure.

See also your example file:
https://github.com/SAP/abap-file-formats/blob/786710fc7a97af43b794e1a263b753c28b912c72/file-formats/tran/examples/z_aff_example_tran.tran.json

*) A short addition: For enum values, we have already provided a mapping from ABAP names to names within the JSON that is used in rare cases (see annotation $enumValue; https://github.com/SAP/abap-file-formats/blob/main/docs/json.md#enum-values).

"authorizations": {
"authorizationDefaults": {
"inheritanceMode": "inactive",
"authObjects": [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't repeat yourself

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What repetition do you mean?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my explanation was too short. It's also just a minor here, but could simplify the usage for end users if they need to change the source code.

My question would be, can we avoid the "auth" in the sub structure within the array. To me more concrete: instead of "authObjectName" can we just use "name". Same for "fieldValues" and the elements below that.

Do you know what I mean, now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the explanation. But also here to avoid errors by mapping we want the same fields names as in our data model.

TYPES ty_class_program_name TYPE c LENGTH 40.
"! <p class="shorttext">Class</p>
"! Class name
TYPES ty_class_name TYPE c LENGTH 30.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you like, you could use following type for char 30 object names:

(z)if_aff_types_v1=>ty_object_name_30.

We could even introduce a type for 40 character object names (if needed) for ty_class_program_name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I can also use if_aff_types_v1=>ty_object_name_30. We use the type c length 40 also for report and program name. Maybe it would be better to provide a general type with length 40?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want to use it, we can provide it. I think object type with 40 characters might make sense to provide in general. Shall we go ahead with this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, please

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants