#odata #sapui5 #abap
#odata #sapui5 #abap
Вопрос:
Я использую 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
или нет сопоставления с системными типами данных.
Может быть, сложный тип и носитель не работают?
Ответ №1:
Я не уверен насчет сложных типов, но недавно я решил именно эту проблему. Попробуйте следующий код, он должен работать.
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.