Текущее время: Пн, авг 04 2025, 21:59

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Программное создание резервирования - вопросы
СообщениеДобавлено: Вт, авг 05 2008, 07:29 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 21 2008, 12:46
Сообщения: 7
Откуда: Сибирь
Программно создаю резервирования с видом движения 311 на основе 201. Заполняю структуры XRKPF и XRESB, потому что хочу воспользоваться MB_CREATE_RESERVATION. Третья структура в параметрах этого badi - XREUL. Не пойму, нужно ли ее заполнять-?, ведь при наличии в системе резервирований, созданных этой функцией, таблица REUL пустая...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное создание резервирования - вопросы
СообщениеДобавлено: Вт, авг 05 2008, 07:45 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Листья написал(а):
Программно создаю резервирования с видом движения 311 на основе 201. Заполняю структуры XRKPF и XRESB, потому что хочу воспользоваться MB_CREATE_RESERVATION. Третья структура в параметрах этого badi - XREUL. Не пойму, нужно ли ее заполнять-?, ведь при наличии в системе резервирований, созданных этой функцией, таблица REUL пустая...
Лучше пользоваться BAPI_RESERVATION_CREATE1 (BAPI_RESERVATION_CREATE).

_________________
"I have a dream"(c)Martin Luther King, Jr.


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

Зарегистрирован:
Ср, май 21 2008, 12:46
Сообщения: 7
Откуда: Сибирь
Спасибо! А почему лучше? В транзакции mb21 используется mb_create_reservation, оттуда собственно его и увидела :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 05 2008, 08:04 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Листья написал(а):
Спасибо! А почему лучше? В транзакции mb21 используется mb_create_reservation, оттуда собственно его и увидела :)
Потому что это модуль обновления и до его вызова в транзакции выполняются проверки. Выбирайте или пакетник на mb21 или BAPI.

_________________
"I have a dream"(c)Martin Luther King, Jr.


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Code:
report z_test.

PARAMETERS: mtype    type bwart default '311',
            budat    type budat,
            matnr    type matnr,
            plant    type werks_d,
            lgo_from type lgort_d,   " Склад - откуда
            lgo_to   type lgort_d,   " Склад - куда
            quant    type menge_d,   " Количество
            meins    type meins.

data: e_res_header  type BAPI2093_RES_HEAD,
      et_res_items  type BAPI2093_RES_ITEM occurs 0 with header line,
      et_profit     type BAPI_PROFITABILITY_SEGMENT occurs 0 with header line,
      lt_return     type BAPIRET2 occurs 0 with header line,
      l_reservation type BAPI2093_RES_KEY-RESERV_NO.

data is_error.


clear e_res_header.
e_res_header-res_date   = budat.
e_res_header-move_type  = mtype.
e_res_header-move_plant = plant.
e_res_header-move_stloc = lgo_to.

clear et_res_items.
refresh et_res_items.

et_res_items-req_date = budat.
et_res_items-material = matnr.
et_res_items-plant = plant.
et_res_items-stge_loc = lgo_from.
et_res_items-entry_qnt = quant.
et_res_items-entry_uom = meins.
et_res_items-movement = 'X'.

APPEND et_res_items.

CALL FUNCTION 'BAPI_RESERVATION_CREATE1'
  EXPORTING
    reservationheader    = e_res_header
  IMPORTING
    reservation          = l_reservation
  TABLES
    reservationitems     = et_res_items
    PROFITABILITYSEGMENT = et_profit
    return               = lt_return
  EXCEPTIONS
    OTHERS               = 1.

if lt_return[] is not initial.
  loop at lt_return.
    case lt_return-type.
      when 'E' or 'A'.
        is_error = 'X'.
        exit.
    endcase.

  endloop.
endif.

if is_error is initial.
  call function 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
endif.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 13 2008, 06:19 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 21 2008, 12:46
Сообщения: 7
Откуда: Сибирь
OlegDm, спасибо, я воспользовалась вашим кодом. Но при проверке он у меня отрабатывает только в случае создания одного резервирования. В цикле по внутренней таблице, содержащей данные для создания резервирований, не отрабатывает. День в отладчике пока ситуацию не прояснил.
(А 'BAPI_RESERVATION_CREATE1' вообще можно так вызывать? из цикла? :oops: Возможно глупый вопрос :) )


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
о каком цикле идет речь?

1) Одно резервирование и много позиций? - тогда наполняйте позициями вн.таб. et_res_items
2) Несколько резервирований - формируйте по новой e_res_header и et_res_items для каждого нового резервирования


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 13 2008, 10:51 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 21 2008, 12:46
Сообщения: 7
Откуда: Сибирь
У меня оба цикла в наличии :)
И для каждого нового резервирования 'BAPI_RESERVATION_CREATE1' вызываю.
Но, кажется, все-таки разобралась в чем дело - материал не определен на заводе, и как раз на этой проверке получаем
is_error = 'X'.
Огромное спасибо, вы мне очень помогли!


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

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


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

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


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

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