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

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


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

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


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

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