我需要读取为发票、订单等存储的文本。在 ABAP 中,我们可以使用 READ_TEXT 功能模块,但我需要在 CDS 视图中读取它。有没有办法在 SELECT 语句中直接从数据库表中读取文本?
问问题
12446 次
2 回答
1
在将 CDS 用于我的 OData 服务时,我在 ABAP 7.50 系统 (EHP8) 上所做的只是创建一个单独的 OData 服务,它是一个通用的“标准文本”阅读器。这是在 SEGW 中建模的基于 ABAP 的普通 OData 服务。
然后,每当我想在我的应用程序中显示标准文本时,我都会调用此服务。效果很好。似乎在 S4 中您可以在 CDS 中完成这一切。
于 2017-10-16T01:20:28.203 回答
1
我认为主要问题是将二进制转换为文本。因为,sap 脚本文本以编码的二进制格式存储。有 sap HANA SQL 函数,它是BINTOSTR。它可能会有所帮助。我没有汉娜平台。不幸的是,我无法尝试。
@AbapCatalog.sqlViewName: 'ZMYSELECT'
@AbapCatalog.compiler.CompareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'BinToStr'
define view ztmp_cds_demo
as select from vbak as k
left outer join stxh as h on k.mandt = h.mandt
and h.tdobject = 'VBBK'
and k.vbeln = h.tdname
and h.tdspras= 'T'
inner join stxl as l on h.tdobject = l.tdobject
and h.tdname = l.tdname
and h.tdid = l.tdid
and h.tdspras = l.tdspras {
//cast(BINTOSTR(cast(CLUSTR as binary)) as varchar) as id,
cast(BINTOSTR(cast(CLUSTD as binary)) as varchar) as text
}
注意:您可能需要根据您的情况更改连接、添加一些参数等。有用的链接: https ://blogs.sap.com/2014/02/25/alternative-to-readtext-function-module/
于 2017-08-14T13:38:56.733 回答