在上一课中,我们为 CatalogService 创建了 submitOrder 操作。这一行动的实施尚未完成,因为我们仍然缺乏如何访问数据库表的知识。我们接下来将学习此内容。
要实施 submitOrder 操作,我们需要以下两个数据库访问:
- 我们希望确保订购账簿的当前库存大于或等于订购数量。为此,我们需要从数据库中选择当前库存。
- 如果库存中有足够的账簿,并因此执行了订单,则必须减少当前库存。这意味着我们必须相应地更新数据库中的库存。
流利 API
cds.ql 模块提供用于构建此类数据库查询的 SQL 类 API。下图显示了场景所需的查询。

通过全局对象 SELECT、INSERT、UPSERT、UPDATE 和 DELETE 使该 API 可用。
注意
12const cds = require('@sap/cds');
const { SELECT, INSERT, UPSERT, UPDATE, DELETE } = cds.ql;通过列出的 CRUD 对象提供的 API 设计为流利 API。这意味着这些对象上可用的方法返回相同类型的对象。可用属性(例如,所示示例中使用的 SELECT 对象的 .one 属性)也具有与其值类型相同的对象。这样可以启用链接,这使得编码直观且可读。
注意
要标识要访问的数据库表,我们在所示示例中使用工作簿实体的 CSN 定义。这是推荐的方法。
含标记模板的流利 API
作为上述经典方法调用的备选,流利 API 也可以与已标记模板一起使用。下图显示了如何使用标记模板创建使用传统方法调用构建的查询。在这两种情况下,结果都是相同的。

注意


