2012-06-20 7 views
1

Я новичок в ABAP-коде и программировании SAP (3-дневный опыт на самом деле, впервые услышал все это в понедельник). В настоящее время я работаю над написанием отчетов с использованием кода ABAP. Это похоже на перенос некоторых данных из конкретной базы данных SAP в промежуточную область бизнес-аналитики ...SAP ABAP Структурные данные для внутренней таблицы

Как добраться до темы - Таким образом, основная проблема заключается в том, что некоторые данные на сервере SAP находятся в формате структур словаря (до быть прямым, данные из FMOIX, FMCOX и т. д.). Мне нужно переместить эти данные во внутренние таблицы во время выполнения программы. Мне сказали, что OPEN SQL не будет работать в этом случае.

Если вы все еще не понимаете, что я имею в виду, я могу предложить несколько способов, фактически предоставленных моим руководителем. Сначала нужно использовать событие GET, скажем GET FMOIX. IF FMOIX-zhdlt> From_dat и FMOIX-zhdlt < to_dat. Добавить FMOIX на itab. ENDIF. Дело в том, что я до сих пор не совсем понимаю это событие GET. Является ли это просто обработчиком событий или может ли он перебирать записи данных?

Что я googled более двух дней, дайте мне что-то вроде Loop at FMOIX. MOVE FMOIX to itab. ENDLOOP.

Итак, каковы способы перемещения транзакционной структуры, такой как FMOIX, во внутренние таблицы, скажем, внутреннее имя таблицы ITAB? Ваш ответ был бы весьма признателен. Хотя у меня есть время, я совершенно новый. (более того, моя виртуальная машина SAP все еще вызывает у меня проблемы.) Большое спасибо.

ответ

2

Если ваш руководитель предполагает, что вы используете событие GET, то это означает, что ваша программа (или должна быть), используя логическую базу данных - в данном случае, вероятно, FMF или FMF_BCS.

Выполнение GET FMOIX считывает набор полей, определенных в логической базе данных (в качестве узла ). Под оператором GET вы можете использовать FMOIX в качестве структуры, например. WRITE FMOIX-field1. Программа (неявно, это не экспликация, определенная в коде, например, LOOP...ENDLOOP), проходит через все строки, возвращаемые в соответствии с вашими критериями выбора. Вы должны иметь возможность использовать MOVE-CORRESPONDING, чтобы переместить содержимое каждой строки в нужную структуру, а затем APPEND, что структура для вашего itab.

Быстрая ссылка на ГЭТ: SAP Library

Примечание: этот ответ немного догадка, так как я использовал только логическую базу данных один раз, и документация немного тонкий на земле, по сравнению с объемами там о стандарте SELECT s и внутренних таблицах.

+1

Да, я проверил сеть, но не нашел много о том, как обращаться с логической базой данных, особенно в структуре. Поэтому вы подразумеваете, что сначала мне нужно объявить промежуточную структуру в программе, кроме FMOIX; затем загружать данные времени выполнения из FMOIX в структуру, а затем добавить к itab? – Alex

+0

Yup, это звучит примерно правильно. Итак, DATA: ls_fmoix type fmoix, lt_fmoix тип таблицы fmoix (или что-то в этом роде, я не уверен в соответствующих типах словарей). Я не думаю, что добавление структуры LDB прямо к itab будет работать (но вы могли бы дать ему все!) – Smigs

0

Вы можете создать внутреннюю таблицу в типе этой структуры, такие как:

data: itab like table of fmoix with header line. 

И вы можете использовать эту внутреннюю таблицу, чтобы заполнить там, где вы используете ваши выберите коды. Таких, как:

select * from ____ 
    into corresponding fields of itab 
    where zhdlt gt from_dat 
    and zhdlt lt to_dat. 

Я не уверен, что это то, что вы ищете, но я могу сказать вам, создавая Itab в типе этой структуры может быть заполнено со всей соответствующей DATAS, что поступающей от вашего выбора. Вы cant loop FMOIX, потому что это не таблица, ее структура. Так есть ли какая-то конкретная причина для хранения ваших данных в структурах?

Надеюсь, это было полезно.

Talha

Смежные вопросы