SAP学习笔记 - 开发39 - RAP开发 BTP /DMO 官方既存测试数据的使用

上一章讲了 RAP开发流程的具体步骤,建表 =》建Data Model View =》建 Projection View =》建Service Definition =》 建Service Binding =》Publish 服务。

SAP学习笔记 - 开发37 - RAP开发流程的具体步骤, 建表,Data Model View,Projection View,Service,Service Binding,Publish-CSDN博客
 

本章继续将RAP开发的知识。

本来想继续弄弄Behavior Definition的,结果好像有些地方有点儿不足,咱们找个好一点,最好是官方资料深入研究一下基础,再回到实例。 

目录

1,SAP 提供的测试数据 /DMO

1-1,/DMO/AGENCY

1-2,/DMO/TRAVEL

1-3,/DMO/CUSTOMER

1-4,/DMO/BOOKING

1-5,/DMO/FLIGHT

1-6,/DMO/BOOK_SUPPL

1-7,/DMO/SUPPLEMENT

1-8,/DMO/SUPPL_TEXT

1-9,/DMO/CONNECTION

1-10,/DMO/CARRIER

1-11,/DMO/AIRPORT

2,添加DMO Package

3,创建Data Model View

3-1,自己定个命名规约

3-2,建Data View Model

3-3,Semantically dependent elements(语义依赖元素)

1). 核心概念

2). SAP BTP 中的典型场景

a. 数据建模(如 SAP HANA Cloud, SAP Data Warehouse Cloud)

b. 集成服务(如 SAP Integration Suite)

c. 业务流程(如 SAP Workflow Management)

d. 扩展开发(如 SAP CAP (Cloud Application Programming))

3). 为什么需要标识语义依赖?

4). 技术实现示例(以CAP为例)

5. 常见问题

4,New Service Definition

5,New Service Binding

6,Pulish之后


下面是详细内容。

1,SAP 提供的测试数据 /DMO

SAP Help Portal - SAP Online Help

这组测试数据里面,一共有下面这么多表,以及表间关系:

SAP Help Portal - SAP Online Help

1-1,/DMO/AGENCY

/DMO/AGENCYThe database table /DMO/AGENCY stores general data about the travel agency that operates travels for customers.
The database table has the following fields:agency_id (key)namestreetpostal_codecitycountry_codephone_numberemail_addressweb_address

1-2,/DMO/TRAVEL


/DMO/TRAVELThe database table /DMO/TRAVEL stores general travel data. In addition, it includes administrative data about the creation and changing of instances.
The database table has the following fields:travel_id (key)agency_idcustomer_idbegin_dateend_datebooking_feetotal_pricecurrency_codedescriptionstatuscreatedbycreatedatlastchangedbylastchangedatThe key field is the unique ID for the travel.

1-3,/DMO/CUSTOMER


/DMO/CUSTOMERThe database table /DMO/CUSTOMER stores general data about customers. In addition, it stores administrative data about the creation and changing of instances.
The database table has the following fields:customer_idfirst_namelast_nametitlestreetpostal_codecitycountry_codephone_numberemail_addresscreatedatcreatedbylastchangedbylastchangedatThe key field is the unique ID for the customer.

1-4,/DMO/BOOKING


/DMO/BOOKINGThe database table /DMO/BOOKING stores data about a booked flight for a certain travel instance. Apart from general flight and booking data, it includes the customer ID for whom the flight is booked as well as the travel ID to which the booking belongs.
The database table has the following fields:travel_id (key)booking_id (key)booking_datecustomer_idcarrier_idconnection_idflight_dateflight_pricecurrency_codeThe key fields are the travel ID for the travel it belongs to and the booking ID, which are unique in combination.

1-5,/DMO/FLIGHT


/DMO/FLIGHTThe database table /DMO/FLIGHT stores general data about flights.
The database table has the following fields:carrier_id (key)connection_id (key)flight_date (key)pricecurrency_codeplane_type_idseats_maxseats_occupiedThe key fields are the IDs for carrier and connection as well as the flight date, which makes the flight unique.

1-6,/DMO/BOOK_SUPPL


/DMO/BOOK_SUPPLThe database table /DMO/BOOK_SUPPL stores data of booking supplements that can be booked for flights, for example meals or insurances.
The database table has the following fields:travel_id (key)booking_id (key)booking_supplement_id (key)supplement_idpricecurrency_codeThe key fields are the travel ID, the booking ID and the booking supplement ID, which are unique in combination.

1-7,/DMO/SUPPLEMENT


/DMO/SUPPLEMENTThe database table /DMO/SUPPLEMENT stores general data about the supplement, which can be booked for flights.
The database table has the following fields:supplement_id (key)pricecurrency_codeThe key field is the unique ID for the supplement.

1-8,/DMO/SUPPL_TEXT


/DMO/SUPPL_TEXTThe database table /DMO/SUPPL_TEXT stores the readable texts for the supplements in different languages.
The database table has the following fields:supplement_id (key)language_code (key)descriptionThe key fields are the IDs of the supplement and the language, which are unique in combination.

1-9,/DMO/CONNECTION


/DMO/CONNECTIONThe database table /DMO/CONNECTION stores general data about flight connections.
The database table has the following fields:carrier_id (key)connection_id (key)airport_from_idairport_to_iddeparture_timearrival_timedistancedistance_unitThe key fields are the IDs of carrier and connection, which are unique in combination.

1-10,/DMO/CARRIER


/DMO/CARRIERThe database table /DMO/CARRIER stores data about flight carriers.
The database table has the following fields:carrier_id (key)namecurrency_codeThe key field is the unique ID of a carrier.

1-11,/DMO/AIRPORT


/DMO/AIRPORTThe database table /DMO/AIRPORT stores data about airports.
The database table has the following fields:airport_id (key)namecitycountryThe key field is the unique airport ID.

2,添加DMO Package

这里跟DMO相关的还挺多的哈,这里选 /DMO/FLIGHT_LEGACY,然后点 OK

 

这样就加进来了哈,打开 Database Tables 子包,然后双击任意表名,即可打开表定义

 

右键 Open with > Data Preview,或者按 F8,即可查看表数据

 

3,创建Data Model View

表可以变,但是该有的组件和咱们上一篇文章里说的是一样的。

这里咱们创建Data Model View。

SAP学习笔记 - 开发37 - RAP开发流程的具体步骤, 建表,Data Model View,Projection View,Service,Service Binding,Publish-CSDN博客

 

简单截截图,这里就不做详细说明了,想看详细说明,看上一篇文章

3-1,自己定个命名规约

这个命名方式咱们自己搞一套好了,我看他们加个R,C啥的在中间,弄得好像不太好理解

- Z03_DV_xx =》Data Model View

- Z03_PV_xx =》Projection View

 - Z03_SD_xx =》Service Definition

 - Z03_SB_xx =》Service Binding

 - Z03_BD_xx =》Behavior Definition

 - Z03_BP_xx =》Behavior Projection

除了上面的,还有Consumption 部分:

 - Z03_UI_xx_V2/4 etc =》SAP Fiori UI

 - Z03_WB_xx_V2/4 etc =》Web API

3-2,建Data View Model

注意这里的Package,Name 都要选对,因为默认是相同包下面的,咱们就不要弄到人家那里去了

选TR,这是一样的,然后点Next

 

选模板,这里选 defineViewEntity,然后点Finish

 

弄完查看一下是不是建到自己想定的包下

 

按 F8,则数据会显示出来 

 

3-3,Semantically dependent elements(语义依赖元素)

这个概念比较重要,咱们稍微多说一点儿。

其实也可以简单理解为 两个或多个字段之间的关系。

比如重量,就是有数值+单位组成(Ex 5KG),那么这两个字段就是语义依赖元素。

其实它还有更多含义,咱们以后有机会慢慢理解。

SAP BTP (Business Technology Platform) 的上下文中,"semantically dependent elements" 通常指在元数据建模、数据集成或业务规则定义中,某个元素的含义(语义)依赖于另一个元素。这种依赖关系可能涉及数据模型、服务接口、流程逻辑或UI设计等场景。以下是详细说明:


1). 核心概念

  • Semantic Dependence(语义依赖)
    指一个元素的定义、行为或解释需要参照另一个元素的语义(含义)。例如:

    • 字段A 的值必须与 字段B 的值在业务逻辑上保持一致。

    • 服务X 的输入参数结构依赖于 数据模型Y 的定义。

    • UI组件 的显示逻辑由后端某个实体的状态决定。

  • 与语法依赖的区别

    • 语法依赖(如代码编译时的依赖)关注形式结构,而语义依赖关注业务含义的关联性


2). SAP BTP 中的典型场景

a. 数据建模(如 SAP HANA Cloud, SAP Data Warehouse Cloud)
  • 在定义实体关系时,某个字段的语义可能依赖于另一个表的字段。
    示例
    订单明细(OrderItem)中的 product_id 字段必须语义上匹配产品主数据(ProductMaster)中的 id 字段,否则数据集成会失效。

b. 集成服务(如 SAP Integration Suite)
  • 在接口映射中,目标系统的字段含义依赖于源系统的字段语义。
    示例
    将CRM系统的 Customer.Status 映射到ERP系统的 Partner.ActiveFlag,两者需在业务含义上对齐。

c. 业务流程(如 SAP Workflow Management)
  • 流程步骤的触发条件可能语义上依赖于某个业务对象的状态变更。
    示例
    审批节点的激活依赖于合同对象的 approval_status 字段值为 "Pending"

d. 扩展开发(如 SAP CAP (Cloud Application Programming))
  • 在CAP模型中,扩展字段的语义可能依赖于标准实体的核心字段。
    示例
    自定义字段 extendedPrice 必须与标准字段 netAmount 保持相同的货币单位。


3). 为什么需要标识语义依赖?

  • 避免逻辑不一致:确保数据、服务或流程在跨系统交互时含义一致。

  • 自动化处理:工具链(如SAP AI Core、SAP Graph)可利用语义依赖优化数据关联。

  • 可维护性:明确依赖关系后,修改父元素时会提示子元素的潜在影响。


4). 技术实现示例(以CAP为例)

在SAP CAP模型中,可以通过注解或外键显式声明语义依赖:

javascript

entity SalesOrder {key id : UUID;items : Composition of many SalesOrderItem on items.parent = $self;  // 语义依赖:子项的父订单
}entity SalesOrderItem {product : Association to ProductMaster; // 语义依赖:product字段必须符合ProductMaster的ID语义
}

5. 常见问题

  • 如何管理语义依赖?
    使用SAP BTP的元数据管理工具(如SAP Metadata Repository)或设计时校验(如CAP的cds watch)。

  • 语义依赖 vs 关联关系?
    关联是语法层面的,语义依赖强调业务含义的耦合性(如两个字段可能无直接外键但逻辑相关)。

其实就是这么简单的一句:

@Semantics.quantity.unitOfMeasure: 'DistanceUnit'

它表明,distance(距离)字段,和DistanceUnit(距离单位)字段之间的是一个数量及数量单位的关系。

它的好处就是它们会根据Region 来表示不同环境下的语义,比如有的用逗号分隔数值,有的用单引号分割,你要是自己写代码那可费了劲儿了,这都可以让annotation 帮忙干。

4,New Service Definition

咱们这里简化一下,跳过Projection View,直接建Service Definition。

输入Name,Description,然后点Next

 

选TR,点Next

 

没别的选择了,直接点Finish

 

这样就建好了

可见,可以跳过Projection View,直接暴露 Data View Model给Service Definition

 

5,New Service Binding

想用个V2 还不受推荐

 

改成V4

 

到Service Binding,就已经是公开的OData/Service了,这个需要改一下命名方式

然后点Next

 

选TR,点Finish

 

不要忘了Activate,就是下面这个样子

然后就可以点 Publish 按钮公开

 

6,Pulish之后

点一下Service URL

 

TODO:出了个诡异的错误

{"error": {"code": "/IWBEP/CM_V4_MED/421","message": "Prop. 'DISTANCE' has unit amount conver. and EDM type 'Int32' without decimals","@SAP__common.longtextUrl": "../../../../default/iwbep/common/0001/T100Longtexts(MessageClass='%2FIWBEP%2FCM_V4_MED',MessageNumber='421',Variable1='DISTANCE',Variable2='Int32',Variable3='',Variable4='')/Documentation","@SAP__common.ExceptionCategory": "Metadata_Error","innererror": {"ErrorDetails": {"@SAP__common.Application": {"ServiceRepository": "SRVD","ServiceId": "Z03_SD_CONNECTION","ServiceVersion": "0001"},"@SAP__common.TransactionId": "17FF95CCCF3A00D0E00687053EB97446","@SAP__common.Timestamp": "20250711064140.308221","@SAP__common.ErrorResolution": {"Analysis": "Use ADT feed reader \"SAP Gateway Error Log\" or run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details","Note": "See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)"}}}}
}

 

点Preview按钮,页面也打不开

 

看下Console,确实是出错了,哎,消息也是挺二的

GET /sap/opu/odata4/sap/z03_ui_connection_v4/srvd/sap/z03_sd_connection/0001/$metadata - プロパティ 'DISTANCE' に単位金額変換および EDM タイプ 'Int32'(小数なし) があります sap.ui.model.odata.v4.lib._MetadataRequestor

GET /sap/opu/odata4/sap/z03_ui_connection_v4/srvd/sap/z03_sd_connection/0001/$ metadata-属性'DISTANCE'具有单位量转换和EDM类型'int32'

网上找的解决方案也基本上都是注释掉该行代码,还有说改表字段的Type,

Int32不行,就用Decimal嘛,那应该也行啊

Solved: SAP ABAP CLOUD TRIAL - SAP Community

先把这个注释一下,点激活

这回好像不出错了哈

TODO:但是好像过于简单了吧

https://11b69711-9bcb-491b-b504-a9ba7e4b7e97.abap-web.us10.hana.ondemand.com/sap/opu/odata4/sap/z03_ui_connection_v4/srvd/sap/z03_sd_connection/0001/?sap-client=100

 

末尾改为$metadata,还可以看Metadata

https://11b69711-9bcb-491b-b504-a9ba7e4b7e97.abap-web.us10.hana.ondemand.com/sap/opu/odata4/sap/z03_ui_connection_v4/srvd/sap/z03_sd_connection/0001/$metadata
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" xmlns="http://docs.oasis-open.org/odata/ns/edm" Version="4.0">
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_COMMUNICATION',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.Communication.v1" Alias="Communication"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_PERSONALDATA',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.PersonalData.v1" Alias="PersonalData"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_ANALYTICS',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.Analytics.v1" Alias="Analytics"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_COMMON',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.Common.v1" Alias="SAP__common"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_MEASURES',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="Org.OData.Measures.V1" Alias="SAP__measures"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_CORE',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="SAP__core"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_CAPABILITIES',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="SAP__capabilities"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_AGGREGATION',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="Org.OData.Aggregation.V1" Alias="SAP__aggregation"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_VALIDATION',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="Org.OData.Validation.V1" Alias="SAP__validation"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_CODELIST',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.CodeList.v1" Alias="SAP__CodeList"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_UI',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.UI.v1" Alias="SAP__UI"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_HTML5',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.HTML5.v1" Alias="SAP__HTML5"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_PDF',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.PDF.v1" Alias="SAP__PDF"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_SESSION',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.Session.v1" Alias="SAP__session"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_ODM',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.ODM.v1" Alias="SAP__ODM"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_HIERARCHY',Version='0001',SAP__Origin='LOCAL')/$value">
<edmx:Include Namespace="com.sap.vocabularies.Hierarchy.v1" Alias="SAP__hierarchy"/>
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="com.sap.gateway.srvd.z03_sd_connection.v0001" Alias="SAP__self">
<Annotation Term="SAP__core.SchemaVersion" String="1.0.0"/>
<EntityType Name="Z03_DV_ConnectionType">
<Key>
<PropertyRef Name="CarrierId"/>
<PropertyRef Name="ConnectionId"/>
</Key>
<Property Name="CarrierId" Type="Edm.String" Nullable="false" MaxLength="3"/>
<Property Name="ConnectionId" Type="Edm.String" Nullable="false" MaxLength="4"/>
<Property Name="AirportFromId" Type="Edm.String" Nullable="false" MaxLength="3"/>
<Property Name="AirportToId" Type="Edm.String" Nullable="false" MaxLength="3"/>
<Property Name="DepartureTime" Type="Edm.TimeOfDay" Nullable="false"/>
<Property Name="ArrivalTime" Type="Edm.TimeOfDay" Nullable="false"/>
<Property Name="Distance" Type="Edm.Int32" Nullable="false"/>
<Property Name="DistanceUnit" Type="Edm.String" Nullable="false" MaxLength="3"/>
</EntityType>
<EntityContainer Name="Container">
<EntitySet Name="Z03_DV_Connection" EntityType="com.sap.gateway.srvd.z03_sd_connection.v0001.Z03_DV_ConnectionType"/>
</EntityContainer>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/CarrierId">
<Annotation Term="SAP__common.IsUpperCase"/>
<Annotation Term="SAP__common.Label" String="Airline ID"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: Carrier ID"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/ConnectionId">
<Annotation Term="SAP__common.IsDigitSequence"/>
<Annotation Term="SAP__common.Label" String="Flight Number"/>
<Annotation Term="SAP__common.Heading" String="Flight No."/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: Connection ID"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/AirportFromId">
<Annotation Term="SAP__common.IsUpperCase"/>
<Annotation Term="SAP__common.Label" String="Departure Airport"/>
<Annotation Term="SAP__common.Heading" String="Departure"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: From Airport"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/AirportToId">
<Annotation Term="SAP__common.IsUpperCase"/>
<Annotation Term="SAP__common.Label" String="Destination Airport"/>
<Annotation Term="SAP__common.Heading" String="Destination"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: To Airport"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/DistanceUnit">
<Annotation Term="SAP__common.IsUnit"/>
<Annotation Term="SAP__common.Label" String="内部数量単位"/>
<Annotation Term="SAP__common.Heading" String="MU"/>
<Annotation Term="SAP__common.QuickInfo" String="数量単位"/>
<Annotation Term="SAP__common.DocumentationRef" String="urn:sap-com:documentation:key?=type=DE&id=MSEHI"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType">
<Annotation Term="SAP__common.Label" String="/DMO Data Model View for Connection"/>
</Annotations>
<Annotations Target="SAP__self.Container/Z03_DV_Connection">
<Annotation Term="SAP__capabilities.SearchRestrictions">
<Record>
<PropertyValue Property="Searchable" Bool="false"/>
</Record>
</Annotation>
<Annotation Term="SAP__capabilities.InsertRestrictions">
<Record>
<PropertyValue Property="Insertable" Bool="false"/>
</Record>
</Annotation>
<Annotation Term="SAP__capabilities.DeleteRestrictions">
<Record>
<PropertyValue Property="Deletable" Bool="false"/>
</Record>
</Annotation>
<Annotation Term="SAP__capabilities.UpdateRestrictions">
<Record>
<PropertyValue Property="Updatable" Bool="false"/>
<PropertyValue Property="QueryOptions">
<Record>
<PropertyValue Property="SelectSupported" Bool="true"/>
</Record>
</PropertyValue>
</Record>
</Annotation>
</Annotations>
<Annotations Target="SAP__self.Container">
<Annotation Term="SAP__CodeList.UnitsOfMeasure">
<Record>
<PropertyValue Property="Url" String="../../../../default/iwbep/common/0001/$metadata"/>
<PropertyValue Property="CollectionPath" String="UnitsOfMeasure"/>
</Record>
</Annotation>
<Annotation Term="SAP__common.ApplyMultiUnitBehaviorForSortingAndFiltering" Bool="true"/>
<Annotation Term="SAP__capabilities.FilterFunctions">
<Collection>
<String>eq</String>
<String>ne</String>
<String>gt</String>
<String>ge</String>
<String>lt</String>
<String>le</String>
<String>and</String>
<String>or</String>
<String>contains</String>
<String>startswith</String>
<String>endswith</String>
<String>any</String>
<String>all</String>
</Collection>
</Annotation>
<Annotation Term="SAP__capabilities.SupportedFormats">
<Collection>
<String>application/json</String>
<String>application/pdf</String>
</Collection>
</Annotation>
<Annotation Term="SAP__PDF.Features">
<Record>
<PropertyValue Property="DocumentDescriptionReference" String="../../../../default/iwbep/common/0001/$metadata"/>
<PropertyValue Property="DocumentDescriptionCollection" String="MyDocumentDescriptions"/>
<PropertyValue Property="ArchiveFormat" Bool="true"/>
<PropertyValue Property="Border" Bool="true"/>
<PropertyValue Property="CoverPage" Bool="true"/>
<PropertyValue Property="FitToPage" Bool="true"/>
<PropertyValue Property="FontName" Bool="true"/>
<PropertyValue Property="FontSize" Bool="true"/>
<PropertyValue Property="HeaderFooter" Bool="true"/>
<PropertyValue Property="IANATimezoneFormat" Bool="true"/>
<PropertyValue Property="Margin" Bool="true"/>
<PropertyValue Property="Padding" Bool="true"/>
<PropertyValue Property="ResultSizeDefault" Int="20000"/>
<PropertyValue Property="ResultSizeMaximum" Int="20000"/>
<PropertyValue Property="Signature" Bool="true"/>
<PropertyValue Property="TextDirectionLayout" Bool="true"/>
<PropertyValue Property="Treeview" Bool="true"/>
<PropertyValue Property="UploadToFileShare" Bool="true"/>
</Record>
</Annotation>
<Annotation Term="SAP__capabilities.KeyAsSegmentSupported"/>
<Annotation Term="SAP__capabilities.AsynchronousRequestsSupported"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/DepartureTime">
<Annotation Term="SAP__common.Label" String="Departure"/>
<Annotation Term="SAP__common.Heading" String="Departure Time"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: Departure Time"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/ArrivalTime">
<Annotation Term="SAP__common.Label" String="Arrival"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: Arrival Time"/>
</Annotations>
<Annotations Target="SAP__self.Z03_DV_ConnectionType/Distance">
<Annotation Term="SAP__common.Label" String="Flight Distance"/>
<Annotation Term="SAP__common.QuickInfo" String="Flight Reference Scenario: Flight Distance"/>
</Annotations>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

点Preview,能查出来数据了哈

以上就是本篇的全部内容。

更多SAP顾问业务知识请点击下面目录链接或东京老树根的博客主页

https://blog.csdn.net/shi_ly/category_12216766.html

东京老树根-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88382.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite - C/C++ 开发与应用详解

SQLite - C/C++ 开发与应用详解 引言 SQLite 是一个轻量级的数据库引擎,它被设计成不需要服务器进程就可以独立运行。SQLite 在 C/C++ 开发领域具有广泛的应用,由于其体积小、性能高、易于集成等优点,深受开发者的喜爱。本文将详细介绍 SQLite 在 C/C++ 开发中的应用,包括…

蔚来测开一面:HashMap从1.7开始到1.8的过程,既然都解决不了并发安全问题,为什么还要进一步解决环形链表的问题?

文章目录问题的根源&#xff1a;JDK 1.7 的设计缺陷为什么必须解决这个问题&#xff1f;1\. 故障等级完全不同 &#x1f4a3;2\. JDK 1.8 的解决方案&#xff1a;一石二鸟 &#x1f985;3\. 为“不小心”的开发者提供一层保障 &#x1f6e1;️结论这是一个非常好的问题&#xf…

AI技术正以前所未有的速度重塑职业生态与行业格局,尤其在自动化测试领域,AI驱动的测试框架通过智能化、低代码化重构传统测试流程。

AI技术正以前所未有的速度重塑职业生态与行业格局&#xff0c;尤其在自动化测试领域&#xff0c;AI驱动的测试框架通过智能化、低代码化重构传统测试流程。以下从职业影响、技术架构、行业应用及应对策略四个维度展开分析&#xff0c;结合代码示例与框架设计图解&#xff1a;一…

在 Mac 上安装 Java 和 IntelliJ IDEA(完整笔记)

目录 检查是否已安装 Java安装 Java&#xff08;JDK&#xff09;设置 JAVA_HOME 环境变量安装 IntelliJ IDEA配置 IntelliJ IDEA 使用 JDK验证和测试环境是否成功 1. 检查是否已安装 Java 打开终端&#xff08;Terminal&#xff09;&#xff0c;输入&#xff1a; java -vers…

基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(2)对框架加入业务逻辑层

在上篇中&#xff0c;我们已经搭建好了框架的基本雏形&#xff0c;但只是引入了页面层、用例层的思想&#xff0c;我们在实际使用中会发现&#xff0c;如果我们很多的用例需要很多前置工作&#xff0c;这些前置工作又有可能涉及到多个页面&#xff0c;那么我们在维护的时候就会…

uniapp ruoyi-app 中使用checkbox 无法选中问题

<view class"flex align-center"> <checkbox-group> <label> <checkbox value"cb" checked"true" /> 记住密码 </label> </checkbox-group> </view>colorui.css 文件中注释掉两处即可全局搜索…

如何快速学习GO语言

https://go.dev/tour/welcome/1 这个是官方的引导&#xff0c;很实用基本重点内容都涵盖了&#xff0c;并且可以一边学习一边练习&#xff0c;非常好用 简单介绍一下&#xff1a; Hello, 世界 欢迎访问 Go 编程语言教程。 本教程分为几个模块&#xff0c;点击本页左上角的 …

AI 产品经理必看:神秘技术架构图如何打通跨团队沟通壁垒?

​ 你好&#xff0c;我是 三桥君 引言 在AI产品的开发过程中&#xff0c;技术架构图是连接业务需求与技术实现的桥梁。然而&#xff0c;许多AI产品经理常常面临以下挑战&#xff1a;研发团队认为需求描述不清晰&#xff0c;业务团队与技术团队沟通不畅&#xff0c;技术选型时…

【科研绘图系列】R语言绘制解剖图

文章目录 介绍加载R包数据下载导入数据数据预处理画图系统信息参考介绍 【科研绘图系列】R语言绘制解剖图 加载R包 # install.packages("devtools") # library(devtools) # devtools::install_github("jespermaag/gganatogram")library(gganatogram) li…

【unity编辑器开发与拓展EditorGUILayoyt和GUILayoyt】

EditorGUILayout 与 GUILayout 的核心区别及使用场景详解 一、对比表特性GUILayoutEditorGUILayout命名空间UnityEngineUnityEditor使用场景运行时 UI 编辑器扩展仅限编辑器扩展控件风格基础游戏风格&#xff08;无编辑器优化&#xff09;原生 Unity 编辑器风格布局复杂度基础…

【数据结构】8. 二叉树

文章目录一、树的概念及结构1、树的概念2、树的相关概念3、树的表示4、树的实际运用二、二叉树的概念及结构1、二叉树的概念2、特殊的二叉树3、二叉树的性质4、二叉树的存储结构三、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构3、堆的实现0&#xff09;准备工…

Spring MVC中异常处理

1.全局异常处理1.1什么是全局异常处理器全局异常处理器是SpringMVC框架中的一种异常处理机制&#xff0c;用于统一处理由控制器抛出的异常。全局异常处理器可以帮助我们捕获和处理控制器中的异常&#xff0c;并且根据不同的异常类型进行不同的处理操作&#xff0c;从而保障应用…

imx6ull-系统移植篇2—— U-Boot 命令使用(上)

目录 前言 U-Boot 命令 help 信息查询命令 bdinfo printenv version 环境变量操作命令 setenv 和 saveenv 修改环境变量 新建环境变量 删除环境变量 内存操作命令 md nm mm mw cp cmp 网络操作命令 ping 命令 dhcp 命令 nfs 命令 tftp 命令 EMMC 和 S…

vector之动态二维数组的底层

引言&#xff1a;在计算机编程领域&#xff0c;二维动态数组是一种能够在程序运行期间动态调整其大小的二维数组数据结构。它与静态二维数组的关键区别在于&#xff0c;静态二维数组在编译时就需要确定其大小&#xff0c;而二维动态数组的大小可以在程序运行过程中根据实际需求…

第十六天,7月10日,八股

1、mybatis的延迟加载需要时才加载关联对象&#xff0c;而不是查询主对象时&#xff0c;立刻加载所有关联对象&#xff0c;这样可以提高查询性能并减少不必要的数据库访问&#xff0c;例如&#xff1a;一个订单表包含着商品列表&#xff08;一对多&#xff09;&#xff0c;当查…

CSS中的Element语法

1.1 Element语法1.1.1 案例 1. 快速生成10个div,并且每个div里面是从1到10的内容2.生成一个div标签&#xff0c;类名为one,并且同时生成一个id为first的p标签1.1.2 快速生成CSS样式语法 CSS基本采取简写形式即可 比如w22 按住tab键 可以生成 width:200px比如lh26px 按住tab键 可…

Go从入门到精通(21) - 一个简单web项目-添加swagger文档

Go从入门到精通(20)-一个简单web项目-服务搭建 文章目录Go从入门到精通(20)-一个简单web项目-服务搭建前言前期准备为API 添加 Swagger 文档1.安装依赖2.添加 Swagger 注释main.goapp.goapi.gopublic_handler.goauth_handler.gocommon_constant.gocommon_dto.gotoken_utils.go3…

自动驾驶环境感知:天气数据采集与融合技术实战

天气与我们日常各类生活场景密不可分&#xff0c;在驾驶场景里当车主发动汽车准备驶向目的地时&#xff0c;窗外的阴晴或许只是直观感受&#xff0c;而真正影响驾驶安全与行程效率的&#xff0c;可能是几公里外的突发暴雨、桥面的结冰预警&#xff0c;或是前方路段的强侧风等级…

基于svga+uniapp的微信小程序动画组件开发指南

lottie动画指南 效果 概述 本项目使用 svgaplayer.weapp.js 库来实现 SVGA 动画播放功能&#xff0c;支持在微信小程序、H5 等多端环境下播放高质量的矢量动画。SVGA 是一种跨平台的开源动画格式&#xff0c;具有文件小、渲染性能高的特点。 技术栈 核心库: svgaplayer.wea…

数据结构与算法——计算直线的交点数

前言&#xff1a; 这是之前做的一道笔试题&#xff0c;当时没写出来烦恼很久&#xff0c;这次记录一下。 题目链接&#xff1a; Dotcpp--题目 1174: 计算直线的交点数 参考文章&#xff1a; CSDN--槐阳7--计算直线的交点数 题目&#xff1a; 解题思考&#xff1a; 在当时…