READSEXT在CDS视图中的类似功能

时间:2017-08-14 08:27:40

标签: hana cds read-text

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

2 个答案:

答案 0 :(得分:2)

我认为主要问题是将二进制转换为文本。因为,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/

How to convert BLOB to varchar with SAP HANA database using SQL

答案 1 :(得分:1)

在为我的OData服务使用CDS时,我在ABAP 7.50系统(EHP8)上所做的事情只是创建一个单独的OData服务,这是一个通用的“标准文本”阅读器。这是一个基于ABAP的简单OData服务,以SEGW为模型。

然后每当我想在我的应用程序中显示标准文本时,我都会打电话给这项服务。效果很好。似乎在S4中你可以用CDS完成所有这些。