Skip to content

Commit b3d6cbb

Browse files
committed
add nextsiblingaction
1 parent 4ef3a3c commit b3d6cbb

File tree

4 files changed

+38
-22
lines changed

4 files changed

+38
-22
lines changed

app/admin/fiori-service.cds

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ annotate AdminService.GenreHierarchy with {
9595
ID @UI.Hidden;
9696
};
9797

98+
@Hierarchy.RecursiveHierarchyActions #GenreHierarchy: {
99+
$Type : 'Hierarchy.RecursiveHierarchyActionsType',
100+
// any name can be the action name with namespace/no bound action name
101+
ChangeNextSiblingAction: 'AdminService.moveSiblingAction',
102+
}
103+
98104
annotate AdminService.GenreHierarchy with @UI: {
99105
PresentationVariant #VH: {
100106
$Type : 'UI.PresentationVariantType',

db/books.cds

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ annotate Authors with
5050
* Hierarchically organized Code List for Genres
5151
*/
5252
entity Genres : sap.common.CodeList {
53-
key ID : UUID;
54-
parent : Association to Genres;
55-
children : Composition of many Genres on children.parent = $self;
53+
key ID : UUID;
54+
siblingRank : Integer;
55+
parent : Association to Genres;
56+
children : Composition of many Genres on children.parent = $self;
5657
}
5758

5859
/**

db/data/my.bookshop-Genres.csv

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
ID;parent_ID;name
2-
f846b0b9-01d4-4f6d-82a4-d79204f62369;;Fiction
3-
f846b0b9-01d4-4f6d-82a4-d79204f62570;f846b0b9-01d4-4f6d-82a4-d79204f62369;Drama
4-
f846b0b9-01d4-4f6d-82a4-d79204f62571;f846b0b9-01d4-4f6d-82a4-d79204f62369;Poetry
5-
f846b0b9-01d4-4f6d-82a4-d79204f62572;f846b0b9-01d4-4f6d-82a4-d79204f62369;Fantasy
6-
f846b0b9-01d4-4f6d-82a4-d79204f62592;f846b0b9-01d4-4f6d-82a4-d79204f62572;Epic fantasy
7-
f846b0b9-01d4-4f6d-82a4-d79204f62593;f846b0b9-01d4-4f6d-82a4-d79204f62572;High fantasy
8-
f846b0b9-01d4-4f6d-82a4-d79204f62573;f846b0b9-01d4-4f6d-82a4-d79204f62369;Science Fiction
9-
f846b0b9-01d4-4f6d-82a4-d79204f62574;f846b0b9-01d4-4f6d-82a4-d79204f62369;Romance
10-
f846b0b9-01d4-4f6d-82a4-d79204f62575;f846b0b9-01d4-4f6d-82a4-d79204f62369;Mystery
11-
f846b0b9-01d4-4f6d-82a4-d79204f62576;f846b0b9-01d4-4f6d-82a4-d79204f62369;Thriller
12-
f846b0b9-01d4-4f6d-82a4-d79204f62577;f846b0b9-01d4-4f6d-82a4-d79204f62369;Dystopia
13-
f846b0b9-01d4-4f6d-82a4-d79204f62578;f846b0b9-01d4-4f6d-82a4-d79204f62369;Fairy Tale
14-
d846b0b9-01d4-4f6d-82a4-d79204f62487;;Non-Fiction
15-
d846b0b9-01d4-4f6d-82a4-d79204f62588;d846b0b9-01d4-4f6d-82a4-d79204f62487;Biography
16-
d846b0b9-01d4-4f6d-82a4-d79204f62589;d846b0b9-01d4-4f6d-82a4-d79204f62588;Autobiography
17-
d846b0b9-01d4-4f6d-82a4-d79204f62590;d846b0b9-01d4-4f6d-82a4-d79204f62487;Essay
18-
d846b0b9-01d4-4f6d-82a4-d79204f62591;d846b0b9-01d4-4f6d-82a4-d79204f62487;Speech
1+
ID;parent_ID;name;siblingRank
2+
f846b0b9-01d4-4f6d-82a4-d79204f62369;;Fiction;1000
3+
f846b0b9-01d4-4f6d-82a4-d79204f62570;f846b0b9-01d4-4f6d-82a4-d79204f62369;Drama;2000
4+
f846b0b9-01d4-4f6d-82a4-d79204f62571;f846b0b9-01d4-4f6d-82a4-d79204f62369;Poetry;3000
5+
f846b0b9-01d4-4f6d-82a4-d79204f62572;f846b0b9-01d4-4f6d-82a4-d79204f62369;Fantasy;4000
6+
f846b0b9-01d4-4f6d-82a4-d79204f62592;f846b0b9-01d4-4f6d-82a4-d79204f62572;Epic fantasy;5000
7+
f846b0b9-01d4-4f6d-82a4-d79204f62593;f846b0b9-01d4-4f6d-82a4-d79204f62572;High fantasy;6000
8+
f846b0b9-01d4-4f6d-82a4-d79204f62573;f846b0b9-01d4-4f6d-82a4-d79204f62369;Science Fiction;7000
9+
f846b0b9-01d4-4f6d-82a4-d79204f62574;f846b0b9-01d4-4f6d-82a4-d79204f62369;Romance;8000
10+
f846b0b9-01d4-4f6d-82a4-d79204f62575;f846b0b9-01d4-4f6d-82a4-d79204f62369;Mystery;9000
11+
f846b0b9-01d4-4f6d-82a4-d79204f62576;f846b0b9-01d4-4f6d-82a4-d79204f62369;Thriller;10000
12+
f846b0b9-01d4-4f6d-82a4-d79204f62577;f846b0b9-01d4-4f6d-82a4-d79204f62369;Dystopia;11000
13+
f846b0b9-01d4-4f6d-82a4-d79204f62578;f846b0b9-01d4-4f6d-82a4-d79204f62369;Fairy Tale;12000
14+
d846b0b9-01d4-4f6d-82a4-d79204f62487;;Non-Fiction;13000
15+
d846b0b9-01d4-4f6d-82a4-d79204f62588;d846b0b9-01d4-4f6d-82a4-d79204f62487;Biography;14000
16+
d846b0b9-01d4-4f6d-82a4-d79204f62589;d846b0b9-01d4-4f6d-82a4-d79204f62588;Autobiography;15000
17+
d846b0b9-01d4-4f6d-82a4-d79204f62590;d846b0b9-01d4-4f6d-82a4-d79204f62487;Essay;16000
18+
d846b0b9-01d4-4f6d-82a4-d79204f62591;d846b0b9-01d4-4f6d-82a4-d79204f62487;Speech;17000

srv/admin-service.cds

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,16 @@ service AdminService @(requires: 'admin') {
2121
entity Authors as projection on my.Authors;
2222
entity Orders as select from my.Orders;
2323
extend my.Genres with Hierarchy;
24-
entity GenreHierarchy as projection on my.Genres excluding {children};
24+
25+
type NextSibling {
26+
ID : UUID;
27+
}
28+
entity GenreHierarchy as projection on my.Genres
29+
excluding {children} order by siblingRank
30+
actions {
31+
action moveSiblingAction(NextSibling : NextSibling) returns GenreHierarchy;
32+
};
33+
2534
extend my.Contents with Hierarchy;
2635
entity ContentsHierarchy as projection on my.Contents;
2736

0 commit comments

Comments
 (0)