Armann's blog
Грабли
Thu Oct 16, 2008 10:58 am
[ Currently: Working ]
Забавный язык ABAP... работаю с ним уже больше 4-х лет, а все меня периодически удивляет.
Никогда бы не подумал, что после команды
EXPORT obj1 TO MEMORY ID 'ZMEM_ID'.
такая команда
IMPORT obj3 FROM MEMORY ID 'ZMEM_ID'.
не сработает, пусть хоть трижды одинаковы MEMORY ID и четырежды - структура obj1 и obj3.
А сработает только такой вариант:
IMPORT obj1 FROM MEMORY ID 'ZMEM_ID'.
т.е. если вы экспортировали переменную с именем obj1 - то будьте добры и импортировать в переменную с точно таким же именем.
Полдня убил на такую фигню...
The Trackback URL for this entry is:
http://www.sapnet.ru/trackback.php?e=35
Author |
Message |
John Doe Модератор
Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар View Blog
|
Posted: Fri Oct 17, 2008 10:30 am Post subject: |
|
Все самописное, в экзитах точно нет.
Quote: | А может не устанавливается при каких-то условиях в транзакции xxxx? | Оно либо ставится, либо нет - по условию. Но засада в том, что я вижу в дебагере как ставится, после этого заканчивается транзакция (выход там без LEAVE PROGRAM, просто команд больше нет), вовзращаюсь в метод БО (не выходя из дебагера) и считываю пустое значение... |
Back to top |
|
|
r00xus Участник
Joined: 30 Mar 2010 Posts: 8
|
Posted: Mon Dec 06, 2010 11:48 am Post subject: |
|
нет это никакие не грабли . ABAP отрабатывает корректно. вам не приходило в голову что под одним ID можно заслать в память несколько объектов и совершенно естественно что при импорте система как-то должна их различать и делает она это конечно же по имени вот пример:
Code: | * таблица 1
DATA BEGIN OF obj1 OCCURS 0.
DATA f1(1).
DATA f2(2).
DATA f3(3).
DATA END OF obj1.
* таблица 2
DATA BEGIN OF obj2 OCCURS 0.
DATA f1(1).
DATA f2(2).
DATA f3(3).
DATA f4(4).
DATA END OF obj2.
* заполняем первую табличку
obj1-f1 = 'a'.
obj1-f2 = 'aa'.
obj1-f3 = 'aaa'.
APPEND obj1.
obj1-f1 = 'b'.
obj1-f2 = 'bb'.
obj1-f3 = 'bbb'.
APPEND obj1.
* заполняем вторую табличку
obj2-f1 = 'a'.
obj2-f2 = 'aa'.
obj2-f3 = 'aaa'.
obj2-f4 = 'aaaa'.
APPEND obj2.
obj2-f1 = 'b'.
obj2-f2 = 'bb'.
obj2-f3 = 'bbb'.
obj2-f4 = 'bbbb'.
APPEND obj2.
obj2-f1 = 'c'.
obj2-f2 = 'cc'.
obj2-f3 = 'ccc'.
obj2-f4 = 'cccc'.
APPEND obj2.
* экспортируем 2 таблицы в память под одним ID
EXPORT obj1 obj2 TO MEMORY ID 'MEM_ID1'.
* очищаем таблицы
CLEAR: obj1, obj2, obj1[], obj2[].
* импортируем
IMPORT obj1 obj2 FROM MEMORY ID 'MEM_ID1'.
* очищаем область памяти
FREE MEMORY ID 'MEM_ID1'. | |
Back to top |
|
|
wnckwend Участник
Joined: 25 Aug 2014 Posts: 0 Location: rafael (fletaport) garcia bouved veracruz 9 subsotano c Madrid Spain 28036
|
Posted: Wed Aug 27, 2014 7:35 pm Post subject: |
|
|
Back to top |
|
|
wnckwend Участник
Joined: 25 Aug 2014 Posts: 0 Location: rafael (fletaport) garcia bouved veracruz 9 subsotano c Madrid Spain 28036
|
Posted: Sun Dec 07, 2014 11:27 pm Post subject: |
|
|
Back to top |
|
|
wnckwend Участник
Joined: 25 Aug 2014 Posts: 0 Location: rafael (fletaport) garcia bouved veracruz 9 subsotano c Madrid Spain 28036
|
Posted: Fri Dec 19, 2014 10:08 am Post subject: |
|
|
Back to top |
|
|
|
Russian ABAP Developer's Club Forum Index
-> Blogs
-> Armann's blog
-> Грабли
|
|
|