SQL запрос не возвращает данные - PullRequest
0 голосов
/ 01 мая 2020

Я разрабатываю программу SAP для получения информации о ссылке из таблицы материалов (MARA).

Сначала я беру определенные ссылки, а затем с помощью al oop Мне нужно сделать другой запрос для каждая итерация:

SELECT
  MARA~BISMT
FROM mara
WHERE mara~matnr = @ref
INTO @var.

Я знаю, что проблема в том, что типы конфликтуют (mara~matnr это символы, а ref это строка), как я могу преобразовать оба в один и тот же тип и увидеть результаты?

Ответы [ 2 ]

4 голосов
/ 01 мая 2020

Вы также можете использовать ABAP строковые шаблоны вместо выходов преобразования, предложенных mkysoft:

DATA: ref TYPE string VALUE '2'.

ref = |{ CONV matnr( ref ) ALPHA = in  }|.

SELECT SINGLE bismt
  FROM mara
 WHERE matnr = @ref
  INTO @DATA(var).
0 голосов
/ 01 мая 2020

Вы можете использовать символ поля для типа Dynami c и функциональный модуль CONVERSION_EXIT_ALPHA_INPUT для форматирования значения для дБ.

TABLES: mara.

DATA: ref TYPE string,
      var TYPE string.

FIELD-SYMBOLS: <fs_ref> TYPE any.

ref = '11'.

ASSIGN ('mara-matnr') TO <fs_ref>.
CHECK sy-subrc IS INITIAL.

<fs_ref> = ref.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input   = <fs_ref>
 IMPORTING
   output   = <fs_ref>.


SELECT SINGLE mara~bismt
  FROM mara
  INTO @var
 WHERE mara~matnr = @<fs_ref>.
...