Текущее время: Пн, июл 28 2025, 05:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_PS_PRECOMMIT
СообщениеДобавлено: Ср, июн 11 2008, 09:37 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Схема работы с BAPI:

BAPI_PS_INITIALIZATION
... (Individual BAPI)
BAPI_PS_PRECOMMIT
BAPI_TRANSACTION_COMMIT
COMMIT WORK AND WAIT

В Individual BAPI возникает какая-то ошибка. При COMMIT возникает ошибка и сваливается в дамп:

MESSAGE x033(cnif_pi).

Short text of error message:
Precommit выполнен без результата

Technical information about the message:
Message classe...... "CNIF_PI"
Number.............. 033
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
Variable 3.......... " "
Variable 4.......... " "

Вопрос: какие есть варианты обработки ошибки ? Понятно, что один из них это ROLLBACK, но это несколько не то, т.к. при этом откатывается слишком много (включая все результаты обработки).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PS_PRECOMMIT
СообщениеДобавлено: Ср, июн 11 2008, 10:08 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rovik написал(а):
Схема работы с BAPI:

BAPI_PS_INITIALIZATION
... (Individual BAPI)
BAPI_PS_PRECOMMIT
BAPI_TRANSACTION_COMMIT
COMMIT WORK AND WAIT

В Individual BAPI возникает какая-то ошибка. При COMMIT возникает ошибка и сваливается в дамп:

...

Вопрос: какие есть варианты обработки ошибки ? Понятно, что один из них это ROLLBACK, но это несколько не то, т.к. при этом откатывается слишком много (включая все результаты обработки).

А чем плох ROLLBACK и прерывание выполнения поседующего кода для обработки неопределённой ошибки?
Как бы особо других вариантов нет.
Иначе проанализируйте (самостоятельно, не програмно) что за ошибка возникает и сделайте её специальную обработку или коррекцию предшествующего кода/данных для устранения ошибки.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 11 2008, 12:53 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Rollback не интересно делать. Нужна возможность поддержать выполнение того что отработало корректно и избежать при этом дампа.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 16 2008, 10:10 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
У меня была подобная проблема!
Я создавал СПП-элементы с помощью BAPI.

Эти ФМ 'BAPI_PS_*' используют некие глобальные флаги.

Сама BAPI по созданию СПП отрабатывала как будто корректно и не возвращала ошибки. Но в BAPI_PS_PRECOMMIT падало в дамп.

После 2х дней в отладке я выяснил что в BAPI (Создающей СПП) отрабатывает экзит из за которого значения в глобальных флагах ставятся не те. Вследствие чего в BAPI_PS_PRECOMMIT падет в дамп.

Т. е. вот эта вещь BAPI_PS_INITIALIZATION обнуляет флаги.

Потом ваша BAPI их меняет

А вот эта вещь BAPI_PS_PRECOMMIT смотрит на них и падает в дамп :))

Меня спасло добавление еще одной проверки в экзите(уже не помню какой)..

Для ясности можно посмотреть группу функций PS_BAPI


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

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


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

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


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

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