Текущее время: Ср, июл 23 2025, 22:59

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Вт, фев 21 2012, 23:36 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Коллеги, помогите разобраться со сложившейся ситуацией.
Вызываю BAPI_RESERVATION_CREATE1, передаю все параметры по максимуму.
Внутри BAPI в методе IF_EX_MB_RES_BAPI_CREATE1~EXTENSIONIN_TO_RESB возникает динамическая ошибка
при чтении таблицы resb.

Code:
method IF_EX_MB_RES_BAPI_CREATE1~EXTENSIONIN_TO_RESB.

data wa type resb.

read table resb with key RSPOS = '0001' into wa.
wa-TDFTIME = sy-uzeit.
modify resb from wa.

endmethod.


По каким-то причинам в таблице resb не проставляются номера позиций.
Анализ ошибки:

You attempted to change, delete or create a line in the
internal table "\FUNCTION-POOL=MB_BUS2093\DATA=T_RESB[]", but no valid cursor
exists
for the table.
Possible reasons:
1. The relevent ABAP/4 statement does not include the addition
"...INDEX...", although the statement is not
inside a "LOOP...ENDLOOP" loop processing this table.
2. The relevent ABAP/4 statement was called from within a
"LOOP...ENDLOOP" loop after a DELETE
"\FUNCTION-POOL=MB_BUS2093\DATA=T_RESB[]".

Подскажите, что с этим делать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Ср, фев 22 2012, 06:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
QWERT написал(а):
Коллеги, помогите разобраться со сложившейся ситуацией.
Вызываю BAPI_RESERVATION_CREATE1, передаю все параметры по максимуму.
Внутри BAPI в методе IF_EX_MB_RES_BAPI_CREATE1~EXTENSIONIN_TO_RESB возникает динамическая ошибка
при чтении таблицы resb.


Скорее всего ни при чтении таблицы,
Code:
read table resb with key RSPOS = '0001' into wa.

а при попытке изменить строку таблицы resb.
Code:
modify resb from wa.

Для изменения записи во внутренней таблицы в данном случае использовать для корректного изменения можно одну из двух записей, либо
Code:
modify table resb from wa.

либо
Code:
modify resb from wa index sy-tabix .

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Ср, фев 22 2012, 13:45 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
При отладке было выяснено, что поле RSPOS в таблице RESB не заполняется, значение для всех позиций '0000'.
Именно поэтому и подумали, что при чтении возникает проблема.
Оператор READ ничего не считывает, а следовательно ничего не может записать в таблицу.

Вы советуете дописать код метода. А как поменять стандартный код? Это же не Z-разработка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Ср, фев 22 2012, 13:56 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
QWERT написал(а):
При отладке было выяснено, что поле RSPOS в таблице RESB не заполняется, значение для всех позиций '0000'.
Именно поэтому и подумали, что при чтении возникает проблема.
Оператор READ ничего не считывает, а следовательно ничего не может записать в таблицу.

Вы советуете дописать код метода. А как поменять стандартный код? Это же не Z-разработка.

Выставить сообщение в SAP, параллельно с поиском нот попытаться понять почему же поле не заполняется

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Ср, фев 22 2012, 14:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
А внедрение BAdI точно стандартное, а не Z-кое? Уж больно код похож на "самописный".

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Ср, фев 22 2012, 17:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Ну вообще-то BAdI - это как раз Z-разработка ;)
Называется BAdI так - "BAdI: перенос собств. полей клиента в поля резервирования".
Посмотрите в дампе стек вызовов и увидите, что метод IF_EX_MB_RES_BAPI_CREATE1~EXTENSIONIN_TO_RESB содержится в классе с именем Z...

Дамп возник из-за того, что разработчик мало читал справку по операторам работы с внутренними таблицами (курсы BC400, BC405).
Вместо
Code:
read table resb with key RSPOS = '0001' into wa.
wa-TDFTIME = sy-uzeit.
modify resb from wa.

Можно было написать к примеру так:
Code:
wa-TDFTIME = sy-uzeit.
modify resb from wa transporting TDFTIME where RSPOS = '0001'.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая ошибка при вызове BAPI_RESERVATION_CREATE1
СообщениеДобавлено: Чт, мар 01 2012, 10:13 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Спасибо. Проблему решили.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB