CDS 视图中的 READ_TEXT 类似功能

问题描述 投票:0回答:4

我需要读取存储的发票、订单等文本。 在ABAP中,我们可以使用READ_TEXT功能模块,但我需要在CDS视图中读取它。 有没有办法直接在 SELECT 语句中从数据库表中读取文本?

hana cds read-text
4个回答
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/

如何使用 SQL 将 SAP HANA 数据库中的 BLOB 转换为 varchar


1
投票

当我将 CDS 用于 OData 服务时,我在 ABAP 7.50 系统 (EHP8) 上所做的事情就是创建一个单独的 OData 服务,它是通用的“标准文本”阅读器。这是一个在 SEGW 中建模的基于 ABAP 的普通 OData 服务。

然后,每当我想在应用程序中显示标准文本时,我都会调用此服务。效果很好。看来在 S4 中你可以在 CDS 中完成这一切。


0
投票

OData 服务的另一种可能性是在 CDS 视图中使用虚拟元素。 SADL 引擎有一个功能。

在 CDS Wievs 中使用 READ_TEXT 函数的完整示例: https://blogs.sap.com/2020/01/13/using-virtual-elements-with-cds-in-fiori-elements/


0
投票

请大家帮忙

它不起作用并且返回空数据 当我在 AMDB 类中使用 Table 函数时,将cast(BINTOSTR(cast(CLUSTD as binary)) as varchar) as text

© www.soinside.com 2019 - 2024. All rights reserved.