通过 Excel Odata 连接访问 ABAP CDS 时出现“STRING_SIZE_TOO_LARGE”

问题描述

我在现有的 cds 视图中添加一个新的时间戳 dec-15 字段。当我尝试使用这个新字段作为过滤器通过 Web 浏览器访问它时,它会获取数据。但是,它在通过 excel 加载时给出了 'STRING_SIZE_TOO_LARGE'。它显示数据预览就好了。

可能是什么问题?

此外,我在其他机器上尝试了这个。在我自己的机器上,它在 excel 中给出错误属性不存在”,而在浏览器中工作。

define view ZTV_I_AH
  as select from srmprotocol
{
  key  poid_id,key  timestamp,key  xuser                                                                                                           as ChangedBy,arg1                                                                                                            as ChangedFrom,arg2                                                                                                            as ChangedTo,arg_string                                                                                                      as FieldChanged_code,substring(display_name,7,10)                                                                                   as CaseId,tstmp_to_dats( timestamp,abap_system_timezone( $session.client,'NULL' ),$session.client,'NULL' )                                                                                         as timestamp_date,concat( concat(cast( SUBSTRING( cast( timestamp as abap.char( 30 )),2) as abap.dats ),'.'),concat(cast( SUBSTRING( cast( timestamp as abap.char( 30 )),5,concat('.',cast( SUBSTRING( cast( timestamp as abap.char( 30 )),1,4) as abap.dats ))))   as ChangedDate,tstmp_to_tims( timestamp,'NULL' )                                                                                        as ChangedTime_ts,substring( cast(timestamp as abap.char( 23 )),14 )                                                          as timestamp_char,9,10) as abap.tims ),':'),11,12) as abap.tims ),concat(':',13,14) as abap.tims ))))        as ChangedTime_2,cast( substring( cast(timestamp as abap.char( 23 )),14 ) as abap.numc( 30 ) )                               as timestamp_numc,cast( cast( substring( cast(timestamp as abap.char( 23 )),15 ) as abap.numc( 23 ) ) as abap.dec( 15,0 ) )  as timestamp_decm

       ////// EOM: ADDED BY RMANE 03.03.2021/////////

}
where
      sps_id = 'ZNBR_SPS_CASE'
  and act_id = 'ATTRIBUTE_CHANGE'



define view ZTV_I_AH_01   as select from ZTV_I_AH {

  key poid_id,key timestamp,key ChangedBy,ChangedFrom,ChangedTo,FieldChanged_code,CaseId,timestamp_date,ChangedDate,ChangedTime_ts,substring( timestamp_char,14 )       as time_char,concat(concat(concat(concat(substring( timestamp_char,2 ),':' ),2 )),2 ))      as time_char2,2 )        as HOURS_1 }


define view ZTV_I_AH_02
  as select from ZTV_I_AH_01

{

  key poid_id,DATS_Tims_TO_TSTMP(timestamp_date,'NULL' ) as UTCTDATETIME,time_char,time_char2,case
      when HOURS_1 < '12' then 'AM'
      else 'PM'
      end as SCHEDULED

define view ZTV_C_AH
  as select from ZTV_I_AH_02 
      @Consumption.hidden: true
  key poid_id,timestamp_date                              as ChangedDate,ChangedTime_ts                               as ChangedTime,UTCTDATETIME                                  as UTCdatetime,//NEW    
      ChangedFrom,FieldChanged_code

}

解决方法

显然,EXCEL 不能很好地处理 DEC15。我将其转换为 NUMC,现在工作正常。