Investigated issues

This commit is contained in:
Daniel
2020-11-20 18:53:04 +01:00
parent 8429d14bfe
commit d9fb33a523
12 changed files with 627 additions and 59 deletions

26
orders/db/schema.cds- Normal file
View File

@@ -0,0 +1,26 @@
using { Currency, User, managed, cuid } from '@sap/cds/common';
using from '@capire/common';
namespace sap.capire.orders;
entity Orders : cuid, managed {
OrderNo : String @title:'Order Number'; //> readable key
Items : Composition of many Orders_Items on Items.up_ = $self;
buyer : User;
currency : Currency;
}
entity Orders_Items {
up_ : Association to Orders not null; //> IMPORTANT for Draft: not key(!)
key ID : UUID;
@assert.integrity:false // REVISIT: this is a temporary workaround for a glitch in cds-runtime
product : Association to Products;
amount : Integer;
title : String;
price : Double;
}
/** This is a stand-in for arbitrary ordered Products */
@cds.persistence.skip:'always'
entity Products {
key ID : String;
}

View File

@@ -12,20 +12,11 @@
<edmx:DataServices>
<Schema Namespace="OrdersService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Currencies" EntityType="OrdersService.Currencies">
<NavigationPropertyBinding Path="texts" Target="Currencies_texts"/>
<NavigationPropertyBinding Path="localized" Target="Currencies_texts"/>
</EntitySet>
<EntitySet Name="Currencies_texts" EntityType="OrdersService.Currencies_texts"/>
<EntitySet Name="Currencies" EntityType="OrdersService.Currencies"/>
<EntitySet Name="Orders" EntityType="OrdersService.Orders">
<NavigationPropertyBinding Path="Items" Target="Orders_Items"/>
<NavigationPropertyBinding Path="currency" Target="Currencies"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Orders"/>
</EntitySet>
<EntitySet Name="Orders_Items" EntityType="OrdersService.Orders_Items">
<NavigationPropertyBinding Path="up_" Target="Orders"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Orders_Items"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Currencies">
<Key>
@@ -38,22 +29,16 @@
<Property Name="numcode" Type="Edm.Int32"/>
<Property Name="exponent" Type="Edm.Int32"/>
<Property Name="minor" Type="Edm.String"/>
<NavigationProperty Name="texts" Type="Collection(OrdersService.Currencies_texts)">
<OnDelete Action="Cascade"/>
</NavigationProperty>
<NavigationProperty Name="localized" Type="OrdersService.Currencies_texts">
<ReferentialConstraint Property="code" ReferencedProperty="code"/>
</NavigationProperty>
<NavigationProperty Name="texts" Type="Collection(OrdersService.Currencies_texts)" ContainsTarget="true"/>
<NavigationProperty Name="localized" Type="OrdersService.Currencies_texts"/>
</EntityType>
<EntityType Name="Currencies_texts">
<Key>
<PropertyRef Name="locale"/>
<PropertyRef Name="code"/>
</Key>
<Property Name="locale" Type="Edm.String" MaxLength="14" Nullable="false"/>
<Property Name="name" Type="Edm.String" MaxLength="255"/>
<Property Name="descr" Type="Edm.String" MaxLength="1000"/>
<Property Name="code" Type="Edm.String" MaxLength="3" Nullable="false"/>
</EntityType>
<EntityType Name="DraftAdministrativeData">
<Key>
@@ -79,9 +64,7 @@
<Property Name="modifiedAt" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="modifiedBy" Type="Edm.String" MaxLength="255"/>
<Property Name="OrderNo" Type="Edm.String"/>
<NavigationProperty Name="Items" Type="Collection(OrdersService.Orders_Items)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
<NavigationProperty Name="Items" Type="Collection(OrdersService.Orders_Items)" Partner="up_" ContainsTarget="true"/>
<Property Name="buyer" Type="Edm.String" MaxLength="255"/>
<NavigationProperty Name="currency" Type="OrdersService.Currencies">
<ReferentialConstraint Property="currency_code" ReferencedProperty="code"/>
@@ -95,14 +78,10 @@
</EntityType>
<EntityType Name="Orders_Items">
<Key>
<PropertyRef Name="up__ID"/>
<PropertyRef Name="ID"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="up__ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="up_" Type="OrdersService.Orders" Nullable="false" Partner="Items">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<NavigationProperty Name="up_" Type="OrdersService.Orders" Nullable="false" Partner="Items"/>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<Property Name="amount" Type="Edm.Int32"/>
<Property Name="title" Type="Edm.String"/>
@@ -161,10 +140,6 @@
<Annotations Target="OrdersService.Currencies_texts/descr">
<Annotation Term="Common.Label" String="{i18n>Description}"/>
</Annotations>
<Annotations Target="OrdersService.Currencies_texts/code">
<Annotation Term="Common.Label" String="{i18n>CurrencyCode}"/>
<Annotation Term="Common.Text" Path="name"/>
</Annotations>
<Annotations Target="OrdersService.DraftAdministrativeData">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftAdministrativeData}"/>
</Annotations>
@@ -438,13 +413,6 @@
</Collection>
</Annotation>
</Annotations>
<Annotations Target="OrdersService.EntityContainer/Orders_Items">
<Annotation Term="Common.DraftNode">
<Record Type="Common.DraftNodeType">
<PropertyValue Property="PreparationAction" String="OrdersService.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="OrdersService.Orders_Items/amount">
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
</Annotations>

View File

@@ -18,13 +18,13 @@
</EntitySet>
<EntitySet Name="Currencies_texts" EntityType="OrdersService.Currencies_texts"/>
<EntitySet Name="Orders" EntityType="OrdersService.Orders">
<NavigationPropertyBinding Path="Items" Target="OrderItems"/>
<NavigationPropertyBinding Path="Items" Target="Orders_Items"/>
<NavigationPropertyBinding Path="currency" Target="Currencies"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Orders"/>
</EntitySet>
<EntitySet Name="OrderItems" EntityType="OrdersService.OrderItems">
<NavigationPropertyBinding Path="order" Target="Orders"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="OrderItems"/>
<EntitySet Name="Orders_Items" EntityType="OrdersService.Orders_Items">
<NavigationPropertyBinding Path="up_" Target="Orders"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Orders_Items"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Currencies">
@@ -79,7 +79,7 @@
<Property Name="modifiedAt" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="modifiedBy" Type="Edm.String" MaxLength="255"/>
<Property Name="OrderNo" Type="Edm.String"/>
<NavigationProperty Name="Items" Type="Collection(OrdersService.OrderItems)" Partner="order">
<NavigationProperty Name="Items" Type="Collection(OrdersService.Orders_Items)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
<Property Name="buyer" Type="Edm.String" MaxLength="255"/>
@@ -93,14 +93,14 @@
<NavigationProperty Name="DraftAdministrativeData" Type="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders"/>
</EntityType>
<EntityType Name="OrderItems">
<EntityType Name="Orders_Items">
<Key>
<PropertyRef Name="ID"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="order_ID" Type="Edm.Guid"/>
<NavigationProperty Name="order" Type="OrdersService.Orders" Partner="Items">
<ReferentialConstraint Property="order_ID" ReferencedProperty="ID"/>
<Property Name="up__ID" Type="Edm.Guid"/>
<NavigationProperty Name="up_" Type="OrdersService.Orders" Partner="Items">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<Property Name="amount" Type="Edm.Int32"/>
@@ -111,18 +111,18 @@
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="OrdersService.OrderItems"/>
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders_Items"/>
</EntityType>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="OrdersService.OrderItems"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="OrdersService.OrderItems"/>
</Action>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="OrdersService.Orders"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="OrdersService.Orders"/>
</Action>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="OrdersService.Orders_Items"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="OrdersService.Orders_Items"/>
</Action>
<Action Name="draftActivate" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="OrdersService.Orders"/>
<ReturnType Type="OrdersService.Orders"/>
@@ -391,7 +391,7 @@
<Annotations Target="OrdersService.Orders/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="OrdersService.OrderItems">
<Annotations Target="OrdersService.Orders_Items">
<Annotation Term="UI.Facets">
<Collection>
<Record Type="UI.ReferenceFacet">
@@ -437,26 +437,26 @@
</Collection>
</Annotation>
</Annotations>
<Annotations Target="OrdersService.EntityContainer/OrderItems">
<Annotations Target="OrdersService.EntityContainer/Orders_Items">
<Annotation Term="Common.DraftNode">
<Record Type="Common.DraftNodeType">
<PropertyValue Property="PreparationAction" String="OrdersService.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="OrdersService.OrderItems/amount">
<Annotations Target="OrdersService.Orders_Items/amount">
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
</Annotations>
<Annotations Target="OrdersService.OrderItems/IsActiveEntity">
<Annotations Target="OrdersService.Orders_Items/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="OrdersService.OrderItems/HasActiveEntity">
<Annotations Target="OrdersService.Orders_Items/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="OrdersService.OrderItems/HasDraftEntity">
<Annotations Target="OrdersService.Orders_Items/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="OrdersService.OrderItems/DraftAdministrativeData">
<Annotations Target="OrdersService.Orders_Items/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
</Schema>

View File

@@ -4,5 +4,10 @@
"dependencies": {
"@capire/common": "*",
"@sap/cds": "^4.3.0"
},
"cds": {
"odata": {
"--containment": true
}
}
}

14
orders/test/model.cds Normal file
View File

@@ -0,0 +1,14 @@
service WithDraft {
@odata.draft.enabled
entity Boo as projection on Foo;
}
service WithoutDraft {
entity Boo as projection on Foo;
}
entity Foo {
key ID : UUID;
bar : Composition of many {
key pos : Integer; //> meant to be a local key only
}
}

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
<edmx:Include Alias="Common" Namespace="com.sap.vocabularies.Common.v1"/>
</edmx:Reference>
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
</edmx:Reference>
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
<edmx:Include Alias="UI" Namespace="com.sap.vocabularies.UI.v1"/>
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="WithDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithDraft.Boo">
<NavigationPropertyBinding Path="SiblingEntity" Target="Boo"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithDraft.Foo_bar)" Partner="up_" ContainsTarget="true"/>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Boo"/>
</EntityType>
<EntityType Name="DraftAdministrativeData">
<Key>
<PropertyRef Name="DraftUUID"/>
</Key>
<Property Name="DraftUUID" Type="Edm.Guid" Nullable="false"/>
<Property Name="CreationDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="CreatedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsCreatedByMe" Type="Edm.Boolean"/>
<Property Name="LastChangeDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="LastChangedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="InProcessByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsProcessedByMe" Type="Edm.Boolean"/>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="pos"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<NavigationProperty Name="up_" Type="WithDraft.Boo" Nullable="false" Partner="bar"/>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Foo_bar"/>
</EntityType>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Foo_bar"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Foo_bar"/>
</Action>
<Action Name="draftActivate" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftEdit" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Annotations Target="WithDraft.EntityContainer/Boo">
<Annotation Term="Common.DraftRoot">
<Record Type="Common.DraftRootType">
<PropertyValue Property="ActivationAction" String="WithDraft.draftActivate"/>
<PropertyValue Property="EditAction" String="WithDraft.draftEdit"/>
<PropertyValue Property="PreparationAction" String="WithDraft.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="WithDraft.Boo/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftAdministrativeData}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftUUID">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreationDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreatedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsCreatedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangeDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/InProcessByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsProcessedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="WithoutDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithoutDraft.Boo"/>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithoutDraft.Foo_bar)" Partner="up_" ContainsTarget="true"/>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="pos"/>
</Key>
<NavigationProperty Name="up_" Type="WithoutDraft.Boo" Nullable="false" Partner="bar"/>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
</EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
<edmx:Include Alias="Common" Namespace="com.sap.vocabularies.Common.v1"/>
</edmx:Reference>
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
</edmx:Reference>
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
<edmx:Include Alias="UI" Namespace="com.sap.vocabularies.UI.v1"/>
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="WithDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithDraft.Boo">
<NavigationPropertyBinding Path="bar" Target="Foo_bar"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Boo"/>
</EntitySet>
<EntitySet Name="Foo_bar" EntityType="WithDraft.Foo_bar">
<NavigationPropertyBinding Path="up_" Target="Boo"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Foo_bar"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithDraft.Foo_bar)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Boo"/>
</EntityType>
<EntityType Name="DraftAdministrativeData">
<Key>
<PropertyRef Name="DraftUUID"/>
</Key>
<Property Name="DraftUUID" Type="Edm.Guid" Nullable="false"/>
<Property Name="CreationDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="CreatedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsCreatedByMe" Type="Edm.Boolean"/>
<Property Name="LastChangeDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="LastChangedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="InProcessByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsProcessedByMe" Type="Edm.Boolean"/>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="pos"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="up__ID" Type="Edm.Guid"/>
<NavigationProperty Name="up_" Type="WithDraft.Boo" Nullable="false" Partner="bar">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Foo_bar"/>
</EntityType>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Foo_bar"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Foo_bar"/>
</Action>
<Action Name="draftActivate" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftEdit" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Annotations Target="WithDraft.EntityContainer/Boo">
<Annotation Term="Common.DraftRoot">
<Record Type="Common.DraftRootType">
<PropertyValue Property="ActivationAction" String="WithDraft.draftActivate"/>
<PropertyValue Property="EditAction" String="WithDraft.draftEdit"/>
<PropertyValue Property="PreparationAction" String="WithDraft.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="WithDraft.Boo/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftAdministrativeData}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftUUID">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreationDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreatedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsCreatedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangeDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/InProcessByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsProcessedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.EntityContainer/Foo_bar">
<Annotation Term="Common.DraftNode">
<Record Type="Common.DraftNodeType">
<PropertyValue Property="PreparationAction" String="WithDraft.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="WithoutDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithoutDraft.Boo">
<NavigationPropertyBinding Path="bar" Target="Foo_bar"/>
</EntitySet>
<EntitySet Name="Foo_bar" EntityType="WithoutDraft.Foo_bar">
<NavigationPropertyBinding Path="up_" Target="Boo"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithoutDraft.Foo_bar)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="up__ID"/>
<PropertyRef Name="pos"/>
</Key>
<Property Name="up__ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="up_" Type="WithoutDraft.Boo" Nullable="false" Partner="bar">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
</EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
<edmx:Include Alias="Common" Namespace="com.sap.vocabularies.Common.v1"/>
</edmx:Reference>
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
</edmx:Reference>
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
<edmx:Include Alias="UI" Namespace="com.sap.vocabularies.UI.v1"/>
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="WithDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithDraft.Boo">
<NavigationPropertyBinding Path="bar" Target="Foo_bar"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Boo"/>
</EntitySet>
<EntitySet Name="Foo_bar" EntityType="WithDraft.Foo_bar">
<NavigationPropertyBinding Path="up_" Target="Boo"/>
<NavigationPropertyBinding Path="SiblingEntity" Target="Foo_bar"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithDraft.Foo_bar)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Boo"/>
</EntityType>
<EntityType Name="DraftAdministrativeData">
<Key>
<PropertyRef Name="DraftUUID"/>
</Key>
<Property Name="DraftUUID" Type="Edm.Guid" Nullable="false"/>
<Property Name="CreationDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="CreatedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsCreatedByMe" Type="Edm.Boolean"/>
<Property Name="LastChangeDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
<Property Name="LastChangedByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="InProcessByUser" Type="Edm.String" MaxLength="256"/>
<Property Name="DraftIsProcessedByMe" Type="Edm.Boolean"/>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="up__ID"/>
<PropertyRef Name="pos"/>
<PropertyRef Name="IsActiveEntity"/>
</Key>
<Property Name="up__ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="up_" Type="WithDraft.Boo" Nullable="false" Partner="bar">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
<Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false"/>
<Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false"/>
<NavigationProperty Name="DraftAdministrativeData" Type="WithDraft.DraftAdministrativeData" ContainsTarget="true"/>
<NavigationProperty Name="SiblingEntity" Type="WithDraft.Foo_bar"/>
</EntityType>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Foo_bar"/>
<Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
<ReturnType Type="WithDraft.Foo_bar"/>
</Action>
<Action Name="draftActivate" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Action Name="draftEdit" IsBound="true" EntitySetPath="in">
<Parameter Name="in" Type="WithDraft.Boo"/>
<Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
<ReturnType Type="WithDraft.Boo"/>
</Action>
<Annotations Target="WithDraft.EntityContainer/Boo">
<Annotation Term="Common.DraftRoot">
<Record Type="Common.DraftRootType">
<PropertyValue Property="ActivationAction" String="WithDraft.draftActivate"/>
<PropertyValue Property="EditAction" String="WithDraft.draftEdit"/>
<PropertyValue Property="PreparationAction" String="WithDraft.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="WithDraft.Boo/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Boo/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftAdministrativeData}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftUUID">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreationDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/CreatedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsCreatedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangeDateTime">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/LastChangedByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/InProcessByUser">
<Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
</Annotations>
<Annotations Target="WithDraft.DraftAdministrativeData/DraftIsProcessedByMe">
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.EntityContainer/Foo_bar">
<Annotation Term="Common.DraftNode">
<Record Type="Common.DraftNodeType">
<PropertyValue Property="PreparationAction" String="WithDraft.draftPrepare"/>
</Record>
</Annotation>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/IsActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasActiveEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/HasDraftEntity">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="WithDraft.Foo_bar/DraftAdministrativeData">
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="WithoutDraft" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityContainer Name="EntityContainer">
<EntitySet Name="Boo" EntityType="WithoutDraft.Boo">
<NavigationPropertyBinding Path="bar" Target="Foo_bar"/>
</EntitySet>
<EntitySet Name="Foo_bar" EntityType="WithoutDraft.Foo_bar">
<NavigationPropertyBinding Path="up_" Target="Boo"/>
</EntitySet>
</EntityContainer>
<EntityType Name="Boo">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="bar" Type="Collection(WithoutDraft.Foo_bar)" Partner="up_">
<OnDelete Action="Cascade"/>
</NavigationProperty>
</EntityType>
<EntityType Name="Foo_bar">
<Key>
<PropertyRef Name="up__ID"/>
<PropertyRef Name="pos"/>
</Key>
<Property Name="up__ID" Type="Edm.Guid" Nullable="false"/>
<NavigationProperty Name="up_" Type="WithoutDraft.Boo" Nullable="false" Partner="bar">
<ReferentialConstraint Property="up__ID" ReferencedProperty="ID"/>
</NavigationProperty>
<Property Name="pos" Type="Edm.Int32" Nullable="false"/>
</EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>