-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DDLS: Make the .objectdependencies.json file of the DDLS object type prettier #163
Comments
With regard to the formatting The Github action says, that the file has been checked Something goes wrong here, since the formatting should follow the definition here abap-file-formats/.editorconfig Line 14 in 645506a
|
|
We want to keep it separate. |
why? its a generic abap-file-format discussion, I think collecting the metadata of each object into one file makes it easier,
another thing, I can see this specific json file as redundant, https://github.com/SAP/abap-file-formats/blob/main/README.md#background-and-scope, the information is just replicating already existing information? plus it is not something that the developer creates/maintains/is interested in |
Because they serve two different purposes. The data in the main file is something a developer (at least) partially want's to review. |
This topic applies in a wider context to many object, see comment here, in particular the last sentence. Unfortunately, it is not an easy decision - yet ;) |
I don't understand your point. This file is not about translation. |
ref https://github.com/SAP/abap-file-formats/blob/main/README.md#background-and-scope
from a developer perspective, I know the ABAP CDS syntax, I fire my my favorite editor = notepad, enter the CDS, save as transport and activation, that part is somewhat circumstantial. It would correspond to having to maintain a list of methods in a different file than the ABAP file containing a class implementation. |
So we only focus on code review? Don't we want to transfer also a CDS model from one system to another? |
Its not mutually exclusive(assuming the objectdependencies contain redundant information), like for classes we will have the source code in git, not all the stuff that goes into the SEO* database tables, or the actual includes, these are generated from the source code on activation/transport into a system. |
It is not redundant. The objectdependencies contains information that is not part of the main json. |
okay, I'm not super familiar with the way CDS views work, can you give an example of data in the file that is not redundant? |
Think of the following example:
and on top of this we have:
The .objectdependencies.json file of z_view_on_zsflight looks like this:
Have a look at "SCARR" in "FROM". This information is not inside the source code of this view. But only in the source of z_sflight. One could say this is a similar concept as we have with the "import" statement in java. |
heh, thats trouble 😄 then I assume, if SCARR is changed, and another layer of CDS is added, then it will impact he .objectdependencies.json file of z_view_on_zsflight? Ie. the developer does not do any changes to anything in z_view_on_zsflight, but changes only dependent objects will result in changes. This gives a tight coupling? If one team maintains SCARR, they should be able to independently change it, without impacting consumers(changes in files)? |
If SCARR is replaced with a new CDS-view then z_sflight is changed (association to ... clause changes). Do you mean that? |
yea, something like that 😄 perhaps I should do some testing anyhow, it sounds like trouble, information from If there are two systems implementing z_sflight in different ways, then objectdepencencies will never be stable. then instead of having abstractions, it becomes tightly coupled |
and yea, I'm ignoring how to transport and activate it, thats a technical exercise which can probably be solved. Like CAP CDS does not have these extra files. There are a lot of ABAP developers, the goal should be to make it as simple as possible for the developers creating applications, ie. fewer files, less information => better. |
after changing the association in z_sflight to So yet the behaviour is exactly as you describe it. |
I think CAP CDS has the "import" statement for this.
Yes, we try to get better and maybe we find a solution where we can get rid of this information completely. But we are not there yet. |
The object dependency file of z_view_on_zsflight does change. But it does not get recorded to a transport request automatically. If you now only transport and activate the change of z_sflight in a transport target system you will have the situation that z_view_on_zsflight is already active in this system. The activation of z_sflight does detect that it needs to re-activate all the views that us it so z_view_on_zsflight will simple re-activated (after z_sflight was activated) and in this re-activation the dependency information get's updated. But you are right we may run into trouble if we do the follwing
|
After a chat with @schneidermic0 we decided that we currently don't see a real benefit of the objectdependencies.json file. |
Currently this json file can be improved in different ways:
The text was updated successfully, but these errors were encountered: