Как написать SELECT для поля типа "количество" в методе SET_GET_ENTITY?

Я хочу выбрать одну строку со всеми столбцами из моей таблицы zbookings. zbookings таблица имеет структуру, основанную на zbooking структура данных - см. таблицы ниже.

Таблица ZBOOKINGS:

Структура ZBOOKING: введите описание изображения здесь

Мой BOOKINGSET_GET_ENTITY метод:

method BOOKINGSET_GET_ENTITY.

    DATA: ls_keytab TYPE LINE OF /IWBEP/T_MGW_NAME_VALUE_PAIR,
          i_carrid TYPE string,
          i_connid TYPE string,
          i_fldate TYPE string,
          i_bookid TYPE string.

    LOOP AT it_key_tab INTO ls_keytab.
      CASE ls_keytab-name.
        WHEN 'Carrid'.
          i_carrid = ls_keytab-value.
        WHEN 'Connid'.
          i_connid = ls_keytab-value.
        WHEN 'Fldate'.
          i_fldate = ls_keytab-value.
        WHEN 'Bookid'.
          i_bookid = ls_keytab-value.
      ENDCASE.
    ENDLOOP.

    SELECT SINGLE *
      INTO CORRESPONDING FIELDS OF er_entity
      FROM ybookings AS a
      WHERE
        a~carrid = i_carrid AND
        a~connid = i_connid AND
        a~fldate = i_fldate AND
        a~bookid = i_bookid.

endmethod.

Я тестировал его через SAP Gateway Client. Ничего страшного, когда я удаляю столбецluggweight от моего SELECT SINGLE *заявление. Однако, когда я выбираю все столбцы с помощьюSELECT SINGLE *, то выдает ошибку

Ошибка выполнения: 'SAPSQL_PARSER_TODO_WARNING'

<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>SAPSQL_PARSER_TODO_WARNING</code>
  <message>Runtime Error: 'SAPSQL_PARSER_TODO_WARNING'. 
     The OData request processing has been abnormal terminated. If "Runtime Error"
     is not initial, launch transaction ST22 for details and analysis. Otherwise,
     launch transaction SM21 for system log analysis.</message>
  <timestamp>20190905144432</timestamp>
</error>

Как видите, проблема в luggweight поле, которое имеет quantity тип и метод его набора Type ref to. Когда я проверяю свойBOOKINGSET_GET_ENTITY через ctr+F2 выводит предупреждение:

Поле базы данных или тип результата агрегатной функции LUGGWEIGHT и компонент "LUGGWEIGHT" из "ER_ENTITY" несовместимы.

Как мне изменить мой SELECT запрос / BOOKINGSET_GET_ENTITY способ, чтобы он работал?

1 ответ

Luggweight метод ввода поля должен быть установлен на Types (не Type ref to) при создании / изменении zbooking структура данных.

Другие вопросы по тегам