Odata UI5中“Upload”的定义方法中的复杂类型

Odata UI5中“Upload”的定义方法中的复杂类型,odata,sapui5,abap,Odata,Sapui5,Abap,我正在使用FileUploader元素,在后端,我重新定义了DEFINE方法 值、Mimetype和文件名字段位于实体内的独立复杂类型中。我为实体Data=true设置了复选框media 我的定义方法: SUPER->DEFINE( ). LO_ENTITY = MODEL->GET_ENTITY_TYPE( IV_ENTITY_NAME = 'Data' ). IF LO_ENTITY IS BOUND. LO_ENTITY->GET_CMPLX_TYPE_PROPER

我正在使用
FileUploader
元素,在后端,我重新定义了
DEFINE
方法

Mimetype
文件名
字段位于实体内的独立复杂类型中。我为实体
Data=true
设置了复选框
media

我的定义方法:

SUPER->DEFINE( ).

LO_ENTITY = MODEL->GET_ENTITY_TYPE( IV_ENTITY_NAME = 'Data' ).
IF LO_ENTITY IS BOUND.
  LO_ENTITY->GET_CMPLX_TYPE_PROPERTY( 'ComplexType' )->GET_COMPLEX_TYPE( )->GET_PROPERTY( 'Mimetype' )->SET_AS_CONTENT_TYPE( ).
ENDIF.
但是我仍然得到错误
无效
或者没有映射到系统数据类型。

复杂类型和媒体可能不起作用吗?

我不确定复杂类型,但我最近解决了这个问题。尝试下面的代码,它应该可以工作

super->define().
DATA: lo_entity TYPE REF TO /iwbep/if_mgw_odata_entity_typ,
      lo_property TYPE REF TO /iwbep/if_mgw_odata_property.

lo_entity = model->get_entity_type( iv_entity_name = 'Data' ).

IF lo_entity IS BOUND.
   lo_property = lo_entity->get_property( iv_property_name = 'value' ).
   lo_property->set_as_content_type( ).
   lo_property = lo_entity->get_property( iv_property_name = 'Mimetype' ).
   lo_property->set_as_content_type( ).
   lo_property = lo_entity->get_property( iv_property_name = 'filename' ).
   lo_property->set_as_content_type( ).
ENDIF.