如何用ABAP代码读取CDS view association的数据
摘要:
我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Status_Valuehelp.该view暴露了两个字段STATUS_KEY和STATUS_TEXT. 现在我的需求是:在ABAP代码里只需要一次读操作,既能读出主view里的guid字段,又能读出association view Z_C_Status_Valuehelp暴露出的两个字段STATUS_KEY和STATUS_TEXT。
我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Status_Valuehelp.该view暴露了两个字段STATUS_KEY和STATUS_TEXT.


现在我的需求是:在ABAP代码里只需要一次读操作,既能读出主view里的guid字段,又能读出association view Z_C_Status_Valuehelp暴露出的两个字段STATUS_KEY和STATUS_TEXT。
解决方案
(1) 创建一个新的数据类型,里面包含了两个view的总共3个待读取字段。

(2) 使用如下代码读取数据:
DATA: lt_data TYPE tt_Data.
SELECT
guid,
\_STATUSHELP-STATUS_KEY AS STATUS_KEY ,
\_STATUSHELP-STATUS_TEXT AS STATUS_TEXT
FROM ZORDER_SYS_STATUS
WHERE ZORDER_SYS_STATUS~GUID = 'FA163E8EAB031EE6A99F824537D112A4'
AND ZORDER_SYS_STATUS~STAT = 'I1002'
AND \_STATUSHELP-STATUS_KEY IS NOT NULL
INTO TABLE @lt_data.


浙公网安备 33010602011771号