Текущее время: Вт, июл 29 2025, 14:26

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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