Compare commits
6 Commits
performanc
...
managed-co
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f425a91c2d | ||
|
|
108e886b52 | ||
|
|
d9fb33a523 | ||
|
|
8429d14bfe | ||
|
|
67c95d9d48 | ||
|
|
7a776c53d2 |
@@ -1,2 +1,3 @@
|
|||||||
# cds.requires.messaging.kind = file-based-messaging
|
# cds.requires.messaging.kind = file-based-messaging
|
||||||
|
cds.cdsc.severities.extend-for-generated = info
|
||||||
PORT = 4004
|
PORT = 4004
|
||||||
@@ -19,7 +19,7 @@ extend Books with {
|
|||||||
// Extend Orders with Books as Products
|
// Extend Orders with Books as Products
|
||||||
//
|
//
|
||||||
|
|
||||||
using { sap.capire.orders.OrderItems } from '@capire/orders';
|
using { sap.capire.orders.Orders_Items } from '@capire/orders';
|
||||||
extend OrderItems with {
|
extend Orders_Items with {
|
||||||
book : Association to Books on product.ID = book.ID
|
book : Association to Books on product.ID = book.ID
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ annotate OrdersService.Orders with @(
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
annotate OrdersService.OrderItems with @(
|
annotate OrdersService.Orders_Items with @(
|
||||||
UI: {
|
UI: {
|
||||||
LineItem: [
|
LineItem: [
|
||||||
{Value: product_ID, Label:'Product ID'},
|
{Value: product_ID, Label:'Product ID'},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
ID;order_ID;amount;product_ID;title;price
|
ID;up__ID;amount;product_ID;title;price
|
||||||
58040e66-1dcd-4ffb-ab10-fdce32028b79;7e2f2640-6866-4dcf-8f4d-3027aa831cad;1;201;Wuthering Heights;11.11
|
58040e66-1dcd-4ffb-ab10-fdce32028b79;7e2f2640-6866-4dcf-8f4d-3027aa831cad;1;201;Wuthering Heights;11.11
|
||||||
64e718c9-ff99-47f1-8ca3-950c850777d4;7e2f2640-6866-4dcf-8f4d-3027aa831cad;1;271;Catweazle;15
|
64e718c9-ff99-47f1-8ca3-950c850777d4;7e2f2640-6866-4dcf-8f4d-3027aa831cad;1;271;Catweazle;15
|
||||||
e9641166-e050-4261-bfee-d1e797e6cb7f;64e718c9-ff99-47f1-8ca3-950c850777d4;2;252;Eleonora;28
|
e9641166-e050-4261-bfee-d1e797e6cb7f;64e718c9-ff99-47f1-8ca3-950c850777d4;2;252;Eleonora;28
|
||||||
|
@@ -1,26 +1,2 @@
|
|||||||
using { Currency, User, managed, cuid } from '@sap/cds/common';
|
// using from './without-managed-composition/schema';
|
||||||
using from '@capire/common';
|
using from './with-managed-composition/schema';
|
||||||
namespace sap.capire.orders;
|
|
||||||
|
|
||||||
entity Orders : cuid, managed {
|
|
||||||
OrderNo : String @title:'Order Number'; //> readable key
|
|
||||||
Items : Composition of many OrderItems on Items.order = $self;
|
|
||||||
buyer : User;
|
|
||||||
currency : Currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
entity OrderItems {
|
|
||||||
key ID : UUID;
|
|
||||||
order : Association to Orders;
|
|
||||||
@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;
|
|
||||||
}
|
|
||||||
|
|||||||
23
orders/db/with-managed-composition/schema.cds
Normal file
23
orders/db/with-managed-composition/schema.cds
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
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 {
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
buyer : User;
|
||||||
|
currency : Currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** This is a stand-in for arbitrary ordered Products */
|
||||||
|
@cds.persistence.skip:'always'
|
||||||
|
entity Products {
|
||||||
|
key ID : String;
|
||||||
|
}
|
||||||
26
orders/db/without-managed-composition/schema.cds
Normal file
26
orders/db/without-managed-composition/schema.cds
Normal 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;
|
||||||
|
}
|
||||||
465
orders/managed-comp.xml
Normal file
465
orders/managed-comp.xml
Normal file
@@ -0,0 +1,465 @@
|
|||||||
|
<?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="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="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>
|
||||||
|
<PropertyRef Name="code"/>
|
||||||
|
</Key>
|
||||||
|
<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"/>
|
||||||
|
<Property Name="symbol" Type="Edm.String" MaxLength="5"/>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<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="Orders">
|
||||||
|
<Key>
|
||||||
|
<PropertyRef Name="ID"/>
|
||||||
|
<PropertyRef Name="IsActiveEntity"/>
|
||||||
|
</Key>
|
||||||
|
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
|
||||||
|
<Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
|
||||||
|
<Property Name="createdBy" Type="Edm.String" MaxLength="255"/>
|
||||||
|
<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>
|
||||||
|
<Property Name="buyer" Type="Edm.String" MaxLength="255"/>
|
||||||
|
<NavigationProperty Name="currency" Type="OrdersService.Currencies">
|
||||||
|
<ReferentialConstraint Property="currency_code" ReferencedProperty="code"/>
|
||||||
|
</NavigationProperty>
|
||||||
|
<Property Name="currency_code" Type="Edm.String" MaxLength="3"/>
|
||||||
|
<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="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
|
||||||
|
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders"/>
|
||||||
|
</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>
|
||||||
|
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
|
||||||
|
<Property Name="amount" Type="Edm.Int32"/>
|
||||||
|
<Property Name="title" Type="Edm.String"/>
|
||||||
|
<Property Name="price" Type="Edm.Double"/>
|
||||||
|
<Property Name="product_ID" Type="Edm.String"/>
|
||||||
|
<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="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
|
||||||
|
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders_Items"/>
|
||||||
|
</EntityType>
|
||||||
|
<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"/>
|
||||||
|
</Action>
|
||||||
|
<Action Name="draftEdit" IsBound="true" EntitySetPath="in">
|
||||||
|
<Parameter Name="in" Type="OrdersService.Orders"/>
|
||||||
|
<Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
|
||||||
|
<ReturnType Type="OrdersService.Orders"/>
|
||||||
|
</Action>
|
||||||
|
<Annotations Target="OrdersService.Currencies">
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="name"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/name">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Name}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/descr">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/code">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CurrencyCode}"/>
|
||||||
|
<Annotation Term="Common.Text" Path="name"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/symbol">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CurrencySymbol}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies_texts/name">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Name}"/>
|
||||||
|
</Annotations>
|
||||||
|
<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>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftUUID">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/CreationDateTime">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/CreatedByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftIsCreatedByMe">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/LastChangeDateTime">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/LastChangedByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/InProcessByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftIsProcessedByMe">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders">
|
||||||
|
<Annotation Term="UI.Facets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Details}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Details"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>OrderItems}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="Items/@UI.LineItem"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Created">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Details">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="currency/code"/>
|
||||||
|
<PropertyValue Property="Label" String="Currency"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Modified">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="modifiedBy"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="modifiedAt"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.HeaderFacets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Created}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Created"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Modified}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Modified"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.HeaderInfo">
|
||||||
|
<Record Type="UI.HeaderInfoType">
|
||||||
|
<PropertyValue Property="Description">
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
</Record>
|
||||||
|
</PropertyValue>
|
||||||
|
<PropertyValue Property="Title">
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Label" String="Order number "/>
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
</PropertyValue>
|
||||||
|
<PropertyValue Property="TypeName" String="Order"/>
|
||||||
|
<PropertyValue Property="TypeNamePlural" String="Orders"/>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
<PropertyValue Property="Label" String="Customer"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
<PropertyValue Property="Label" String="Date"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.LineItem">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
<PropertyValue Property="Label" String="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="buyer"/>
|
||||||
|
<PropertyValue Property="Label" String="Customer"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
<PropertyValue Property="Label" String="Date"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.SelectionFields">
|
||||||
|
<Collection>
|
||||||
|
<PropertyPath>createdAt</PropertyPath>
|
||||||
|
<PropertyPath>createdBy</PropertyPath>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.EntityContainer/Orders">
|
||||||
|
<Annotation Term="Common.DraftRoot">
|
||||||
|
<Record Type="Common.DraftRootType">
|
||||||
|
<PropertyValue Property="ActivationAction" String="OrdersService.draftActivate"/>
|
||||||
|
<PropertyValue Property="EditAction" String="OrdersService.draftEdit"/>
|
||||||
|
<PropertyValue Property="PreparationAction" String="OrdersService.draftPrepare"/>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/createdAt">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CreatedAt}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Immutable" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="false"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/createdBy">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CreatedBy}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
<Annotation Term="Core.Immutable" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="false"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/modifiedAt">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>ChangedAt}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/modifiedBy">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>ChangedBy}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/OrderNo">
|
||||||
|
<Annotation Term="Common.Label" String="Order Number"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/buyer">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>UserID}"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/currency">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Currency}"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>CurrencyCode.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/currency_code">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Currency}"/>
|
||||||
|
<Annotation Term="Common.ValueList">
|
||||||
|
<Record Type="Common.ValueListType">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Currency}"/>
|
||||||
|
<PropertyValue Property="CollectionPath" String="Currencies"/>
|
||||||
|
<PropertyValue Property="Parameters">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="Common.ValueListParameterInOut">
|
||||||
|
<PropertyValue Property="LocalDataProperty" PropertyPath="currency_code"/>
|
||||||
|
<PropertyValue Property="ValueListProperty" String="code"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="Common.ValueListParameterDisplayOnly">
|
||||||
|
<PropertyValue Property="ValueListProperty" String="name"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>CurrencyCode.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/IsActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/HasActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/HasDraftEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/DraftAdministrativeData">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items">
|
||||||
|
<Annotation Term="UI.Facets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>OrderItems}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.Identification"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="amount"/>
|
||||||
|
<PropertyValue Property="Label" String="Amount"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="title"/>
|
||||||
|
<PropertyValue Property="Label" String="Product"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="price"/>
|
||||||
|
<PropertyValue Property="Label" String="Unit Price"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.LineItem">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="product_ID"/>
|
||||||
|
<PropertyValue Property="Label" String="Product ID"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="title"/>
|
||||||
|
<PropertyValue Property="Label" String="Product Title"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="price"/>
|
||||||
|
<PropertyValue Property="Label" String="Unit Price"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="amount"/>
|
||||||
|
<PropertyValue Property="Label" String="Quantity"/>
|
||||||
|
</Record>
|
||||||
|
</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>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/IsActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/HasActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/HasDraftEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/DraftAdministrativeData">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
</Schema>
|
||||||
|
</edmx:DataServices>
|
||||||
|
</edmx:Edmx>
|
||||||
464
orders/metadata.xml
Normal file
464
orders/metadata.xml
Normal file
@@ -0,0 +1,464 @@
|
|||||||
|
<?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="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="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>
|
||||||
|
<PropertyRef Name="code"/>
|
||||||
|
</Key>
|
||||||
|
<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"/>
|
||||||
|
<Property Name="symbol" Type="Edm.String" MaxLength="5"/>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<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="Orders">
|
||||||
|
<Key>
|
||||||
|
<PropertyRef Name="ID"/>
|
||||||
|
<PropertyRef Name="IsActiveEntity"/>
|
||||||
|
</Key>
|
||||||
|
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
|
||||||
|
<Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
|
||||||
|
<Property Name="createdBy" Type="Edm.String" MaxLength="255"/>
|
||||||
|
<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>
|
||||||
|
<Property Name="buyer" Type="Edm.String" MaxLength="255"/>
|
||||||
|
<NavigationProperty Name="currency" Type="OrdersService.Currencies">
|
||||||
|
<ReferentialConstraint Property="currency_code" ReferencedProperty="code"/>
|
||||||
|
</NavigationProperty>
|
||||||
|
<Property Name="currency_code" Type="Edm.String" MaxLength="3"/>
|
||||||
|
<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="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
|
||||||
|
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders"/>
|
||||||
|
</EntityType>
|
||||||
|
<EntityType Name="Orders_Items">
|
||||||
|
<Key>
|
||||||
|
<PropertyRef Name="ID"/>
|
||||||
|
<PropertyRef Name="IsActiveEntity"/>
|
||||||
|
</Key>
|
||||||
|
<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"/>
|
||||||
|
<Property Name="title" Type="Edm.String"/>
|
||||||
|
<Property Name="price" Type="Edm.Double"/>
|
||||||
|
<Property Name="product_ID" Type="Edm.String"/>
|
||||||
|
<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="OrdersService.DraftAdministrativeData" ContainsTarget="true"/>
|
||||||
|
<NavigationProperty Name="SiblingEntity" Type="OrdersService.Orders_Items"/>
|
||||||
|
</EntityType>
|
||||||
|
<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"/>
|
||||||
|
</Action>
|
||||||
|
<Action Name="draftEdit" IsBound="true" EntitySetPath="in">
|
||||||
|
<Parameter Name="in" Type="OrdersService.Orders"/>
|
||||||
|
<Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
|
||||||
|
<ReturnType Type="OrdersService.Orders"/>
|
||||||
|
</Action>
|
||||||
|
<Annotations Target="OrdersService.Currencies">
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="name"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/name">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Name}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/descr">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/code">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CurrencyCode}"/>
|
||||||
|
<Annotation Term="Common.Text" Path="name"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies/symbol">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CurrencySymbol}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Currencies_texts/name">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Name}"/>
|
||||||
|
</Annotations>
|
||||||
|
<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>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftUUID">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/CreationDateTime">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/CreatedByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftIsCreatedByMe">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/LastChangeDateTime">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/LastChangedByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/InProcessByUser">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.DraftAdministrativeData/DraftIsProcessedByMe">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders">
|
||||||
|
<Annotation Term="UI.Facets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Details}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Details"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>OrderItems}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="Items/@UI.LineItem"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Created">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Details">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="currency/code"/>
|
||||||
|
<PropertyValue Property="Label" String="Currency"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.FieldGroup" Qualifier="Modified">
|
||||||
|
<Record Type="UI.FieldGroupType">
|
||||||
|
<PropertyValue Property="Data">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="modifiedBy"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="modifiedAt"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.HeaderFacets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Created}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Created"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Modified}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup#Modified"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.HeaderInfo">
|
||||||
|
<Record Type="UI.HeaderInfoType">
|
||||||
|
<PropertyValue Property="Description">
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
</Record>
|
||||||
|
</PropertyValue>
|
||||||
|
<PropertyValue Property="Title">
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Label" String="Order number "/>
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
</PropertyValue>
|
||||||
|
<PropertyValue Property="TypeName" String="Order"/>
|
||||||
|
<PropertyValue Property="TypeNamePlural" String="Orders"/>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdBy"/>
|
||||||
|
<PropertyValue Property="Label" String="Customer"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
<PropertyValue Property="Label" String="Date"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.LineItem">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="OrderNo"/>
|
||||||
|
<PropertyValue Property="Label" String="OrderNo"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="buyer"/>
|
||||||
|
<PropertyValue Property="Label" String="Customer"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="createdAt"/>
|
||||||
|
<PropertyValue Property="Label" String="Date"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.SelectionFields">
|
||||||
|
<Collection>
|
||||||
|
<PropertyPath>createdAt</PropertyPath>
|
||||||
|
<PropertyPath>createdBy</PropertyPath>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.EntityContainer/Orders">
|
||||||
|
<Annotation Term="Common.DraftRoot">
|
||||||
|
<Record Type="Common.DraftRootType">
|
||||||
|
<PropertyValue Property="ActivationAction" String="OrdersService.draftActivate"/>
|
||||||
|
<PropertyValue Property="EditAction" String="OrdersService.draftEdit"/>
|
||||||
|
<PropertyValue Property="PreparationAction" String="OrdersService.draftPrepare"/>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/createdAt">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CreatedAt}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Immutable" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="false"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/createdBy">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>CreatedBy}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
<Annotation Term="Core.Immutable" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="false"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/modifiedAt">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>ChangedAt}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/modifiedBy">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>ChangedBy}"/>
|
||||||
|
<Annotation Term="Core.Computed" Bool="true"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
<Annotation Term="UI.HiddenFilter" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/OrderNo">
|
||||||
|
<Annotation Term="Common.Label" String="Order Number"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/buyer">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>UserID}"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>UserID.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/currency">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Currency}"/>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>CurrencyCode.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/currency_code">
|
||||||
|
<Annotation Term="Common.Label" String="{i18n>Currency}"/>
|
||||||
|
<Annotation Term="Common.ValueList">
|
||||||
|
<Record Type="Common.ValueListType">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>Currency}"/>
|
||||||
|
<PropertyValue Property="CollectionPath" String="Currencies"/>
|
||||||
|
<PropertyValue Property="Parameters">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="Common.ValueListParameterInOut">
|
||||||
|
<PropertyValue Property="LocalDataProperty" PropertyPath="currency_code"/>
|
||||||
|
<PropertyValue Property="ValueListProperty" String="code"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="Common.ValueListParameterDisplayOnly">
|
||||||
|
<PropertyValue Property="ValueListProperty" String="name"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</PropertyValue>
|
||||||
|
</Record>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="Core.Description" String="{i18n>CurrencyCode.Description}"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/IsActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/HasActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/HasDraftEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders/DraftAdministrativeData">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items">
|
||||||
|
<Annotation Term="UI.Facets">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.ReferenceFacet">
|
||||||
|
<PropertyValue Property="Label" String="{i18n>OrderItems}"/>
|
||||||
|
<PropertyValue Property="Target" AnnotationPath="@UI.Identification"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.Identification">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="amount"/>
|
||||||
|
<PropertyValue Property="Label" String="Amount"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="title"/>
|
||||||
|
<PropertyValue Property="Label" String="Product"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="price"/>
|
||||||
|
<PropertyValue Property="Label" String="Unit Price"/>
|
||||||
|
</Record>
|
||||||
|
</Collection>
|
||||||
|
</Annotation>
|
||||||
|
<Annotation Term="UI.LineItem">
|
||||||
|
<Collection>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="product_ID"/>
|
||||||
|
<PropertyValue Property="Label" String="Product ID"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="title"/>
|
||||||
|
<PropertyValue Property="Label" String="Product Title"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="price"/>
|
||||||
|
<PropertyValue Property="Label" String="Unit Price"/>
|
||||||
|
</Record>
|
||||||
|
<Record Type="UI.DataField">
|
||||||
|
<PropertyValue Property="Value" Path="amount"/>
|
||||||
|
<PropertyValue Property="Label" String="Quantity"/>
|
||||||
|
</Record>
|
||||||
|
</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>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/IsActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/HasActiveEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/HasDraftEntity">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
<Annotations Target="OrdersService.Orders_Items/DraftAdministrativeData">
|
||||||
|
<Annotation Term="UI.Hidden" Bool="true"/>
|
||||||
|
</Annotations>
|
||||||
|
</Schema>
|
||||||
|
</edmx:DataServices>
|
||||||
|
</edmx:Edmx>
|
||||||
@@ -4,5 +4,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@capire/common": "*",
|
"@capire/common": "*",
|
||||||
"@sap/cds": "^4.3.0"
|
"@sap/cds": "^4.3.0"
|
||||||
|
},
|
||||||
|
"cds": {
|
||||||
|
"odata": {
|
||||||
|
"--containment": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,13 +3,13 @@ class OrdersService extends cds.ApplicationService {
|
|||||||
|
|
||||||
/** register custom handlers */
|
/** register custom handlers */
|
||||||
init(){
|
init(){
|
||||||
const { OrderItems } = this.entities
|
const { Orders_Items:OrderItems } = this.entities
|
||||||
|
|
||||||
this.before ('UPDATE', 'Orders', async function(req) {
|
this.before ('UPDATE', 'Orders', async function(req) {
|
||||||
const { ID, Items } = req.data
|
const { ID, Items } = req.data
|
||||||
if (Items) for (let { product_ID, amount } of Items) {
|
if (Items) for (let { product_ID, amount } of Items) {
|
||||||
const { amount:before } = await cds.tx(req).run (
|
const { amount:before } = await cds.tx(req).run (
|
||||||
SELECT.one.from (OrderItems, oi => oi.amount) .where ({order_ID:ID, product_ID})
|
SELECT.one.from (OrderItems, oi => oi.amount) .where ({up__ID:ID, product_ID})
|
||||||
)
|
)
|
||||||
if (amount != before) this.orderChanged (product_ID, amount-before)
|
if (amount != before) this.orderChanged (product_ID, amount-before)
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ class OrdersService extends cds.ApplicationService {
|
|||||||
this.before ('DELETE', 'Orders', async function(req) {
|
this.before ('DELETE', 'Orders', async function(req) {
|
||||||
const { ID } = req.data
|
const { ID } = req.data
|
||||||
const Items = await cds.tx(req).run (
|
const Items = await cds.tx(req).run (
|
||||||
SELECT.from (OrderItems, oi => { oi.product_ID, oi.amount }) .where ({order_ID:ID})
|
SELECT.from (OrderItems, oi => { oi.product_ID, oi.amount }) .where ({up__ID:ID})
|
||||||
)
|
)
|
||||||
if (Items) for (let it of Items) this.orderChanged (it.product_ID, -it.amount)
|
if (Items) for (let it of Items) this.orderChanged (it.product_ID, -it.amount)
|
||||||
})
|
})
|
||||||
|
|||||||
14
orders/test/model.cds
Normal file
14
orders/test/model.cds
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
142
orders/test/with-containment/WithDraft.xml
Normal file
142
orders/test/with-containment/WithDraft.xml
Normal 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>
|
||||||
24
orders/test/with-containment/WithoutDraft.xml
Normal file
24
orders/test/with-containment/WithoutDraft.xml
Normal 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>
|
||||||
159
orders/test/without-containment-fixed/WithDraft.xml
Normal file
159
orders/test/without-containment-fixed/WithDraft.xml
Normal 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>
|
||||||
35
orders/test/without-containment-fixed/WithoutDraft.xml
Normal file
35
orders/test/without-containment-fixed/WithoutDraft.xml
Normal 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>
|
||||||
160
orders/test/without-containment/WithDraft.xml
Normal file
160
orders/test/without-containment/WithDraft.xml
Normal 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>
|
||||||
35
orders/test/without-containment/WithoutDraft.xml
Normal file
35
orders/test/without-containment/WithoutDraft.xml
Normal 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>
|
||||||
Reference in New Issue
Block a user