问题标签 [cds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sapui5 - 如何将 smartfield 连接到 odata 服务?
我有一个SmartField,我想连接到 ODATA 服务以valueHelp
免费获得。
指向 ODATA 服务的模型如下所示:
实体集的 uri 是/sap/opu/odata/sap/EAM_MALFUNCTION_MANAGE/I_PMContactCardEmployee
,元定义是:
提供以下数据:
我想要存档的是,连接SmartField
ODATA 服务并valueHelp
免费获得,无需任何特定编码以获得价值帮助。
当我在值帮助上选择一个值时,它应该将PersonnelNumber插入到SmartField
.
这I_PMContactCardEmployee
是一个 CDS 消费视图,它提供了一个搜索帮助的界面:
我已经尝试将 SmartField 与I_PMContactCardEmployee
服务连接,如下所示:
我收到了错误消息:
abap - 如何创建 BOPF 变更文件?
我使用事务 BOBX 创建了一个自定义业务对象。我想为此 BO 实施变更文档,以记录对此 BO 所做的所有交易数据更改。这些更改文档应包含所有相关信息,例如更改的对象数据集、旧值和新值、更改日期和时间以及进行更改的人名。
可能吗?
提前致谢。
greatest-n-per-group - 用连接替换相关子查询
我想用等效的联接替换以下 ABAP OpenSQL 片段(在更大语句的 where 子句中)。
我的动机:查询迁移到 ABAP CDS 视图(基本上是纯 SQL,相比之下表达能力有所降低)。唉,不支持相关子查询和 EXISTS 语句。
我用谷歌搜索了一下,在这里找到了一个可能的解决方案(最后一篇文章)https://archive.sap.com/discussions/thread/3824523
然而,该提案
- 选择 MAX(值)
- 您的方案使用内部连接到第一个 CDS 视图
在我的情况下不起作用。
- tf.bis(和 tf.ab)需要在新视图的选择列表中,以将连接(新视图)的 rhs 限制在正确的时间范围内。
- 唉,可能有多个(非重叠)子时间框架(包含在 [tf.ab, tf.bis] 中)具有相同的 tf.tarifart。由于这些不能组合在一起,这会导致 rhs 上出现多行。
原始查询对此没有问题(没有连接 -> 没有笛卡尔积)。
我希望下面的小提琴(工作示例)能澄清一点:http ://sqlfiddle.com/#!9/8d1f48/3
鉴于这些限制,在我看来,等效连接确实是不可能的。建议甚至确认?
abap - 使用 CDS 视图和 BOPF 更新多个表中的 BO
我正在尝试使用 BOPF-CDS 视图更新多个表中的数据。以下是一张表中要更新的 cds 注释。你们能告诉我我应该在这段代码中改变什么来更新多表中的数据吗?
sapui5 - 通过 CDS 注释验证用户输入?
我是 SAP、UI5 和 CDS 注释的新手。我创建了一个 CDS 视图并使用 Web IDE 模板项目、列表报告模板创建了应用程序。该应用程序工作正常,但我想添加以下验证
在我的 CDS 中,我有一个数量字段。当用户通过列表报表应用程序保存记录时,我希望有一个大于零的值。我可以使用 UI5 注释吗?
在 CDS 中,我定义了 2 个关键字段。在应用程序中,当尝试创建重复记录时,应用程序导航到指示发生错误的错误页面。如何根据关键字段验证重复记录并在创建新记录时向客户发出警告或错误?
提前致谢
hana - 使用 SAP HANA CDS 文件时,STRING_AGG 不是可识别的内置函数名称
我试图在我的 SAP HANA CDS 文件中使用 STRING_AGG 函数,但系统似乎无法识别此函数。像 sum 或 count 这样的标准聚合函数似乎可以工作,但这个 - 不:
有没有办法在 SAP HANA CDS 文件中使用此功能?或者有解决方法吗?
casting - 不支持 CASE 内的强制转换列
我想在我的 CDS 视图中创建一个新字段,其 CASE 条件如下
问题是字段“usage”NUMC10的类型是,所以eclipse抛出错误:“数据类型冲突”。所以我想将该字段转换为 abap.int4,但这不起作用,因为不支持 CAST-- 表达式:
专家请告知我该如何解决这个问题,为什么我不能在 CASE 表达式中转换字段。
问候,
奥马尔·阿卜杜拉
annotations - 如何在使用 CDS 注释创建的 SAP Fiori Worklist 应用程序中添加搜索帮助?
我想向使用 CDS 注释创建的 SAP Fiori Worklist 应用程序中的字段添加搜索帮助。我应该使用哪些注释?
odata - 在 SAP Core Data Service 的关联表中进行 OData 搜索
我正在使用 SAP Core Data Services (CDS),并在作为关联视图/表的一部分的字段中处理 OData 查询。
这是一个最小(非)工作示例:
表定义
我创建了两个名为“ZTABLE_A”和“ZTABLE_B”的表。
ZTABLE_A 包含两列(“COLUMN_A1”、“COLUMN_A2”),ZTABLE_B (“COLUMN_B1”、“COLUMN_B2”)也是如此。
所有列都具有内置数据类型 CHAR,长度为 50。COLUMN_A1 和 COLUMN_B1 是主键。
表格中的示例数据
为了演示我的问题,我添加了几行示例数据:
ZTABLE_A 中的数据
ZTABLE_B 中的数据
使用 Eclipse Photon,我在 ZMY_PACKAGE->Core Data Services->Data Definitions 中创建了相应的 CDS 视图。
ZCDS_A 的定义(有关联)
ZCDS_B的定义(简单)
激活两个 CDS 后,我使用事务代码添加 ZCDS_A 作为数据引用,segw
并通过单击红/白圆圈生成运行时对象。接下来,我通过右键单击该服务打开了 SAP Gateway Client。现在,我可以使用 OData 查询 ZCDS_A。
OData 查询
普通扩展查询
如果我扩展到 ZCDS_B,我会收到预期的结果。
OData查询: /sap/opu/odata/SAP/ZMY_PACKAGE/ZCDS_A?$format=json&$expand=toZCDS_B
它包含 ZTABLE_A 的所有条目和 ZTABLE_B 的两个条目,它们嵌套在 COLUMN_A2 中 ZTABLE_A 的值为“X”的条目中。
在 ZTABLE_A 的字段中搜索
也可以使用查询参数search
(没有前导“$”)。
OData查询: /sap/opu/odata/SAP/ZMY_PACKAGE/ZCDS_A?$format=json&$expand=toZCDS_B&search=B
正如预期的那样,这将返回一个列表,其中只有一个来自 ZTABLE_A 的结果,其中包含“B”作为值。ZTABLE_A 中的这个条目与 ZTABLE_B 中的任何条目都没有关联。
问题:在 ZTABLE_B 的字段中搜索
现在,这是棘手的部分:我想在查询 ZCDS_A 时查询相关 ZCDS_B / ZTABLE_B 的字段。
OData查询: /sap/opu/odata/SAP/ZMY_PACKAGE/ZCDS_A?$format=json&$expand=toZCDS_B&search=FOO
我希望得到如下结果:
{
但只返回一个空列表:
问题出在哪里?@Search.searchable: true
我分别使用注释或 将视图及其单个字段标记为可搜索@Search.defaultSearchElement: true
。不能查询嵌套表吗?
ABAP 7.50 版
abap - 如何在 Fiori 的 ABAP 编程模型中建模多对多关系?
如何使用 CDS/BOPF 和关联实现多对多关系?
例如,假设您有 Movies 和 Genres 表,我们希望将流派分配给电影。
映射多对多 (n:m) 关系的一个好方法是联结表,所以我创建了:
如何创建正确处理此问题的事务视图?
到目前为止我的尝试
我创建了一个工作示例,但它在数据一致性方面失败了。
我更改zmv_moviesgenres
为拥有自己的主键:
然后我创建了一些基本视图,然后是事务视图:
电影_TP:
MOVIES_GENRES_TP:
GENRES_TP:
这行得通。它将电影与流派联系起来。但是,如果我删除一个流派,它不会验证该流派是否正在被电影使用。我必须为此创建一个确定/验证以手动检查。
此外,它允许重复分配(例如两行 ["Star Wars | Sci-fi", "Star Wars | Sci-fi"])
我正在使用 S/4 1809 系统,componentsSAP_ABA 75D,SAP_BASIS 753。
有没有其他方法可以做到这一点?