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

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


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

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


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

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