Текущее время: Сб, июл 19 2025, 02:53

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Чт, янв 17 2013, 15:30 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 17 2012, 08:34
Сообщения: 11
Коллеги, добрый день!

Возникла проблема с загрузкой единиц оборудования в систему.

В Z-программе в цикле происходят следующие операции:
1) Создание ЕО с помощью BAPI_EQUI_CREATE.
2) Присвоение ЕО класса с помощью BAPI_OBJCL_CREATE.
3) Если ошибок не было вызывается CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'.
В случае ошибки вызывается BAPI_TRANSACTION_ROLLBACK.

Складывается следующая ситуация:
1) Отрабатывается BAPI_EQUI_CREATE (без ошибок).
2) Отрабатывается BAPI_OBJCL_CREATE, возникают ошибки, вызывается BAPI_TRANSACTION_ROLLBACK, но при этом информация об основных данных ЕО не откатывается, а сохраняется где-то во внутреннем буфере.
3) При повторении операций (создание и присвоение класса) со следующей ЕО ФМ отрабатываются без ошибок, НО основные данные ЕО берутся из предыдущей (на вход подаются новые значения!).

Подскажите пожалуйста, как обойти сложившуюся ситуацию.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Пт, янв 18 2013, 12:12 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 11:47
Сообщения: 406
Пол: Мужской
set update task local.
BAPI_EQUI_CREATE.
commit.
set update task local.
BAPI_OBJCL_CREATE.
commit.

_________________
En Taro Tassadar


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Пт, янв 18 2013, 12:19 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 17 2012, 08:34
Сообщения: 11
Программа используется для массовой загрузки ЕО и в связи с этим commit необходимо делать, только в том случае, если вся операция (создание ЕО + присвоение класса, заполнение признаков) прошла успешно.
Если в результате BAPI_OBJCL_CREATE произошли ошибки нужен полный rollback.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Пт, янв 18 2013, 12:24 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 11:47
Сообщения: 406
Пол: Мужской
Так не получится. Для работы BAPI_OBJCL_CREATE объект уже должен быть в базе, а для этого нужен commit после BAPI_EQUI_CREATE.
set update task local в соем примере нужен как раз для того, чтобы дождаться завершения обновления.

_________________
En Taro Tassadar


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Пт, янв 18 2013, 13:02 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 17 2012, 08:34
Сообщения: 11
Если присвоение класса проходит без ошибок, то
Code:
set update task local.
BAPI_EQUI_CREATE.
BAPI_OBJCL_CREATE.
commit.

работает корректно.

Описанная ситуация возникает только в случае ошибки при присвоении классов/признаков (через BAPI_OBJCL_CREATE).

Может быть непонятно описал проблему, попробую по другому.
Есть файл, в нем 2 строки, в каждой данные о единице оборудования.
Запускаем Z-программу загрузки.
В ней единицы оборудования из файла обрабатываются построчно, выполняются в цикле следующие операции.
Для ЕО из 1 строки.
Code:
BAPI_EQUI_CREATE. - успешно
BAPI_OBJCL_CREATE. - ошибка
BAPI_TRANSACTION_ROLLBACK.

Переходим к ЕО из 2 строки.
Code:
BAPI_EQUI_CREATE. - успешно
BAPI_OBJCL_CREATE. - успешно
BAPI_TRANSACTION_COMMIT.

В результате в системе создается ЕО, в которой информация основных полей из 1 строки файла, а информация о классификации - из 2 (хотя данные на вход ФМ подаются корректные).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.  Тема решена
СообщениеДобавлено: Пт, янв 18 2013, 13:17 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 11:47
Сообщения: 406
Пол: Мужской
Попробуйте ФМ ITOB_CLEAR_BUFFER [s]перед вызовом[/s] после ROLLBACK

_________________
En Taro Tassadar


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_EQUI_CREATE Проблема при загрузке ЕО.
СообщениеДобавлено: Пн, янв 21 2013, 04:48 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 17 2012, 08:34
Сообщения: 11
Спасибо!

Вызов ФМ ITOB_BUF_FREE после ROLLBACK решил проблему.


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

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


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

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


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

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