Diagrams related to OData entities (CAP & ECC)
Part 01 – CAP flavor
This blog post is about automatic documentation of OData entities. As I already explain in my previous blogs, I don’t like wasting time on tasks that can be done automatically (and in a more efficient way) by some tools. On another side, I really like, when I use some OData entities, to see a nice schema that shows detailed information and the big picture of the relation between entities.
Conclusion: let’s see if there are some ways to build documentation (schemas and diagrams) for OData entities in the SAP world
!! STOP : you’ll say…”but this already exists!”: this can be done for example via the “OpenAPI” (swagger) specification / export…
“OpenAPI” (swagger) specification…
Idea: generate openAPI json file via command line (cds compile srv –service all -o docs –to openapi –openapi:diagram) (**)
From SAP-ECC (Abap Stack)
(**): embedded in the json file, you’ll get the Yuml (https://yuml.me/) diagram code definition
A diagram extractor already exists and it’s nice…but I want more details and functionalities related to the diagram processing!
The best “tool” for me to convert code definition to diagram is… Plant UML !
Let’s see if we could create a simple OData converter to Plant UML…
In this first part of this blog post, I’ll focus on the CAP flavor.
Plant-UML extractor for CAP
First of all, we need a service to give us:
- access to the data model (OData entities definition)
- the Plant-UML schema definition of our entity / entities
Here is the service definition:
Access to the service is then given via something like this:
As usual, to get the same access as the runtime to your own program structures, definitions & co, the reflection API is the key (if it exists)… and luckily we have access to it from the CAP framework (see CAP services: Model Reflection API).
From the reflection API model, I will only use (this is a very basic tool/service):
I will show here a very simple and basic usage of the reflection API.
Source code: here
For the information, the PlantUml code (****) looks like this:
Conclusion: diagram above is much more detailed than the one generated for Yuml…but the nice thing here is that you have a lot of directives to control orientation, colors, links…of the schema. Reflection API in CAP can be very useful in some specific scenario, don’t hesitate to use it and share ideas !
Next: Part 02 – ECC / Abap flavor
Thanks for reading,
have you seen the PlantUML Demo Project from Holger Schäfer ?
Thank you for reading my post and warn me about the work of Holger.
I hadn't seen his post and this looks great!
For the record, I did also a little Abap report that produces the same kind of rendering (as the one used by Holger) but it takes as input an abap structure and shows the possible values ( via the domains of the data elements) of the structure fields... The great job is coming from PlantUml... outputting a schema is quite simple. I'll try to find some time to post it...
It produces stuff like this:
Ps: thank you for all the job you did around CAP!! (code examples, slides, ...) => this helped me a lot when I was learning CAP 😉