问题描述
我正在使用FileUploader
元素,在后端,我重新定义了DEFINE
方法。
value
,Mimetype
和filename
字段在实体内部为单独的复杂类型。我设置了实体media
的复选框Data = true
。
我的定义方法:
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.
但是我仍然收到错误Invalid
或没有映射到系统数据类型。
复杂的类型和媒体可能无法正常工作吗?
解决方法
我不确定复杂类型,但是最近我解决了这个确切的问题。尝试以下代码,它应该可以工作。
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.