SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Заполнение Z-таблицы из internal table https://www.sapboard.ru/forum/viewtopic.php?f=13&t=98325 |
Страница 1 из 1 |
Автор: | irik [ Вт, янв 14 2020, 10:19 ] |
Заголовок сообщения: | Заполнение Z-таблицы из internal table |
Добрый день! Такая проблема: в SE11 сделана Z-таблица, которая можем заполняться через SM30 (это работает, но мне это не надо). В Z-программе считывается CSV файл и создается internal table с данными из этого файла. Теперь все строки из itab надо передать в Z-таблицу. Пробую разными способами (modify, insert, update, append), но ничего не передается. Видимо, есть какой-то нюанс при создании Z-таблицы. Может, у кого-то реализовано такое заполнение таблицы, поделитесь, пожалуйста, знаниями. Заранее спасибо. |
Автор: | Кодер [ Вт, янв 14 2020, 11:31 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
Покажите ваш код, чтобы стало понятно, что же именно вы делаете не так |
Автор: | irik [ Вт, янв 14 2020, 11:51 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
но я думаю, что дело не в коде, а в каких-то настройках при создании таблицы Code: ...
TABLES: zenergo. ... data: begin of record_zenergo_sum occurs 0, rnum type zenergo-rnum, numi type zenergo-numi, zadrese type zenergo-zadrese, PAPILD1NFO type zenergo-PAPILD1NFO, pakalp type zenergo-pakalp, menge type zenergo-menge, netpr type zenergo-netpr, wrbtr type zenergo-wrbtr, merv type zenergo-merv, eic type zenergo-eic, gads type zenergo-gads, periods type zenergo-periods, end of record_zenergo_sum. data: wa_record_zenergo_sum like record_zenergo_sum. … … append record_zenergo_sum. и дальше были такие варианты: insert zenergo from table record_zenergo_sum. или loop at record_zenergo_sum into wa_record_zenergo_sum. UPDATE zenergo from wa_record_zenergo_sum. COMMIT WORK. endloop. или modify zenergo from record_zenergo_sum. или loop at record_zenergo_sum into wa_record_zenergo_sum. zenergo-rnum = wa_record_zenergo_sum-rnum. zenergo-numi = wa_record_zenergo_sum-numi. zenergo-zadrese = wa_record_zenergo_sum-zadrese. zenergo-papild1nfo = wa_record_zenergo_sum-papild1nfo. zenergo-pakalp = wa_record_zenergo_sum-pakalp. zenergo-menge = wa_record_zenergo_sum-menge. zenergo-netpr = wa_record_zenergo_sum-netpr. zenergo-wrbtr = wa_record_zenergo_sum-wrbtr. zenergo-merv = wa_record_zenergo_sum-merv. zenergo-eic = wa_record_zenergo_sum-eic. zenergo-gads = wa_record_zenergo_sum-gads. zenergo-periods = wa_record_zenergo_sum-periods. INSERT zenergo. endloop. |
Автор: | Kuranov.Dmitry [ Вт, янв 14 2020, 12:16 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
Используйте форматирование кода на форуме Могу предположить вы не все поля определили при перечислении в record_zenergo_sum или записи с такими ключами уже есть в таблице. Code: DATA: gt_record_zenergo_sum TYPE TABLE OF zenergo, gs_record_zenergo_sum LIKE LINE OF gt_record_zenergo_sum. ** наполняем gt_record_zenergo_sum. INSERT zenergo FROM TABLE gt_record_zenergo_sum. |
Автор: | irik [ Вт, янв 14 2020, 12:42 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
Kuranov.Dmitry написал(а): Используйте форматирование кода на форуме Могу предположить вы не все поля определили при перечислении в record_zenergo_sum или записи с такими ключами уже есть в таблице. Code: DATA: gt_record_zenergo_sum TYPE TABLE OF zenergo, gs_record_zenergo_sum LIKE LINE OF gt_record_zenergo_sum. ** наполняем gt_record_zenergo_sum. INSERT zenergo FROM TABLE gt_record_zenergo_sum. так тоже не работает |
Автор: | Кодер [ Вт, янв 14 2020, 12:52 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
Как предположил коллега Kuranov.Dmitry - скорее всего, в загружаемом файле есть и новые и уже существующие в таблице записи. Надо определиться, что следует делать в случае, если запись уже есть в табле. Варианты 1) писать протокол ошибок, прерывать работу, если есть хотя бы 1 такая запись 2) писать протокол ошибок, сохранять корректные записи 3) писать сообщения об обнаруженных записях, существующие записи обновлять, новые - вставлять для случая 3 обновление самое простое Code: DATA: gt_record_zenergo_sum TYPE TABLE OF zenergo,
gs_record_zenergo_sum LIKE LINE OF gt_record_zenergo_sum. loop at gt_record_zenergo_sum into gs_record_zenergo_sum. modify zenergo from gs_record_zenergo_sum. endloop. commit work. |
Автор: | irik [ Вт, янв 14 2020, 12:57 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
Кодер написал(а): Как предположил коллега Kuranov.Dmitry - скорее всего, в загружаемом файле есть и новые и уже существующие в таблице записи. Надо определиться, что следует делать в случае, если запись уже есть в табле. Варианты 1) писать протокол ошибок, прерывать работу, если есть хотя бы 1 такая запись 2) писать протокол ошибок, сохранять корректные записи 3) писать сообщения об обнаруженных записях, существующие записи обновлять, новые - вставлять для случая 3 обновление самое простое Code: DATA: gt_record_zenergo_sum TYPE TABLE OF zenergo, gs_record_zenergo_sum LIKE LINE OF gt_record_zenergo_sum. loop at gt_record_zenergo_sum into gs_record_zenergo_sum. modify zenergo from gs_record_zenergo_sum. endloop. commit work. Таблица ZENERGO записей не содержит, пустая |
Автор: | Кодер [ Вт, янв 14 2020, 14:09 ] |
Заголовок сообщения: | Re: Заполнение Z-таблицы из internal table |
Цитата: Таблица ZENERGO записей не содержит, пустая Проверьте файл тогда. Возможно он содержит дублирующиеся по ключу таблицы ZENERGO записи |
Автор: | Kuranov.Dmitry [ Вт, янв 14 2020, 14:51 ] |
Заголовок сообщения: | Re: Заполнение Z-таблицы из internal table |
Кодер написал(а): Цитата: Таблица ZENERGO записей не содержит, пустая Проверьте файл тогда. Возможно он содержит дублирующиеся по ключу таблицы ZENERGO записи а модифай разве не будет обновлять дубликаты? |
Автор: | Кодер [ Вт, янв 14 2020, 16:12 ] |
Заголовок сообщения: | Re: Заполнение Z-таблицы из internal table |
Kuranov.Dmitry написал(а): а модифай разве не будет обновлять дубликаты? Конечно будет. Просто вопрос дубликатов (как их обрабатывать), как мне кажется, надо решать до разработки. И уже имея представление, что же именно нужно - писать программу |
Автор: | LKU [ Вт, янв 14 2020, 19:46 ] |
Заголовок сообщения: | Re: Заполнение Z таблицы из internal table |
irik написал(а): Таблица ZENERGO записей не содержит, пустая Обратите внимание, что в примере который вам привели есть commit work, а в вашем нет. Вы в итоге commit work у себя в программе написали? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |