You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使cl_cds_test_environment模拟I_BillingDocument生效?HANA 2021

解决I_BillingDocument在CL_CDS_TEST_ENVIRONMENT中模拟无效的问题

针对你遇到的根节点CDS视图I_BillingDocument模拟无效、仅基础视图I_BillingDocumentBasic生效的问题,可按以下步骤排查解决:

1. 直接向根视图插入测试数据

当前代码直接操作底层表VBRK,但I_BillingDocument作为CDS根视图可能存在字段映射、过滤逻辑或关联规则,导致底层表数据无法被根视图查询捕获。应直接针对I_BillingDocument视图结构插入测试数据:

" 替换原VBRK数据插入逻辑
DATA: lt_billing_doc TYPE STANDARD TABLE OF I_BillingDocument WITH EMPTY KEY.
lt_billing_doc = VALUE #( ( BillingDocument = '1234567890' ) ).
go_cds->insert_test_data( lt_billing_doc ).

2. 调整测试环境的依赖配置

虽然设置了I_select_base_dependencies = abap_true,但可能需要显式指定根视图的关联依赖,确保测试环境覆盖完整的视图链路:

go_cds = cl_cds_test_environment=>create( 
  i_for_entity = 'I_BillingDocument'
  i_dependencies = VALUE #( ( 'I_BillingDocumentBasic' ) )
).
go_cds->enable_double_redirection( ).

3. 切换重定向模式

HANA 2021版本中,双重重定向(enable_double_redirection)可能对包含关联、计算字段的复杂根视图支持有限。尝试切换为单重定向模式,直接拦截根视图的查询请求:

go_cds->enable_single_redirection( ). " 替换enable_double_redirection()

4. 验证CDS视图的过滤逻辑

检查I_BillingDocument的CDS定义,确认是否存在额外过滤条件(如WHERE子句、状态校验)。若测试数据不满足这些条件,即使插入成功也无法被查询到。例如根视图可能仅包含已过账的 Billing Document,需确保测试数据包含对应状态字段的值。

内容的提问来源于stack exchange,提问作者Benedikt Kromer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:25:03