Текущее время: Чт, июл 31 2025, 01:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Блокирование запаса.
СообщениеДобавлено: Чт, фев 21 2008, 14:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Добрый день!

Создал заказ на поставку используя BAPI_SALESORDER_CREATEFORMDAT2. Нужен BAPI осуществляющий блокирование запаса под заказ на поставку. :?

_________________
С уважением, Сергей С.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 22 2008, 01:43 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
По идее блокирование осуществляется при создании заказа. Если этого не происходит, значит так оно и сконфигурировано. Или я что-то пропустила? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 22 2008, 01:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Затрудняюсь ответить. У меня запас не блокирован. Есть догадки и предположения, что существует определенная процедура блокирования запаса. Как я понимаю, заказ на поставку - лишь преамбула к действию. :? Если Вы правы, Jelena, то нужна доработка функции создания заказа. Как вариант - возможно мне нужен не BAPI, а update пары полей "хитрой" таблички...

_________________
С уважением, Сергей С.


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Не нужно ничего апдейтить, нужно перенести требуемое количество материала (то, что указано в заказе на поставку) из свободно-используемого запаса в запас под заказ клиента - делается в ММ, 413 вид движения.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 22 2008, 09:34 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Спасибо, уже легче! Мне нужно делать удаленно, методом вызова функции. :)

_________________
С уважением, Сергей С.


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Тогда BAPI_GOODSMVT_CREATE, примеров его использования найдете здесь множество


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 22 2008, 13:31 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Спасибо!

_________________
С уважением, Сергей С.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 22 2008, 20:48 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Возможно я слегка "lost in translation". Речь шла о перемещении материалов или об ATP (available to promise)? ATP у нас, например, происходит при создании заказа. Т.е. если на складе 6 штук и создали заказ на 2 штуки, то при попытке создать заказ еще на 6 штук подтвердятся только 4. В то же время на складе никаких движений при этом не произойдет и если, например, заказ на 2 штуки удалить, то это кол-во станет опять "available to promise".

Если же нужно производить goods movement, то, конечно, BAPI_GOODSMVT_CREATE подойдет. Хотя и не совсем понятно, зачем... :?


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Действительно, если речь идет об АТР, то все можно решить соответствующими настройками и ничего тогда специально делать не надо. Если ж речь идет о создании особого запаса под заказ клиента (т.е. чтобы этот запас нельзя было израсходовать никуда кроме как на нужды конкретного заказа клиента), то необходимо сделать перенос запаса из свободно используемого в особый.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 27 2008, 12:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Речь именно о создании особого запаса под заказ клиента.BAPI BAPI_GOODSMVT_CREATE, Вид движения 413, код 'E', gm_code = '04'. Все как Вы и говорили, OlegDm. Едиственная заминка с массой примеров, дело идет, но медленнее, чем хотелось бы :)

Jelena написала:
Речь шла о перемещении материалов или об ATP (available to promise)? ATP...
Не мой случай, но если поделитесь докой по ATP буду премного благодарен :oops:

Спасибо!

_________________
С уважением, Сергей С.


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
east написал:
... Едиственная заминка с массой примеров, дело идет, но медленнее, чем хотелось бы :)


Code:
report ZPM_X_BAPI_GOODSMVT_413.

tables: mara.

* Data for BAPI_GOODSMVT_CREATE
data: gmhead type bapi2017_gm_head_01,
      gmcode type bapi2017_gm_code,
      mthead type bapi2017_gm_head_ret.

data: goodsmvt_item like bapi2017_gm_item_create occurs 0 with header line.

data: ls_request like bapideliciousrequest,
      lt_return type bapiret2 occurs 0 with header line,
      error_occured.


data: p_meins like mara-meins.


parameters: p_budat  like sy-datum,   " Дата проводки
            p_matnr  like mara-matnr, " Номер материала
            p_quant  type menge_d,    " Количество
            p_vbeln  like vbap-vbeln, " Заказ клиента
            p_posnr  like vbap-posnr, " Позиция заказа клиента
            p_plant  like t001l-werks, " Завод
            p_lgt_fr like t001l-lgort, " Склад (Откуда)
            p_lgt_to like t001l-lgort. " Склад (Куда)


end-of-selection.

  clear: gmhead,
         gmcode,
         goodsmvt_item.

  refresh: goodsmvt_item.


* Fill goodsmvt_code = gmcode
  move: '04' to gmcode-gm_code. "Transfer

* Fill Head for Mat.document
  move: p_budat              to gmhead-pstng_date,
        sy-datum             to gmhead-doc_date,
        sy-uname             to gmhead-pr_uname.

  move 'Mat.transfer: 413 Mvt.' to gmhead-header_txt.

* Fill Item for Mat.document
  move: '413' to goodsmvt_item-move_type,
        space to goodsmvt_item-mvt_ind.

  select single meins into p_meins from mara where matnr = p_matnr.

  move: p_matnr  to goodsmvt_item-material,
        p_quant  to goodsmvt_item-entry_qnt,
        p_meins  to goodsmvt_item-entry_uom,
        p_vbeln  to goodsmvt_item-sales_ord,
        p_posnr  to goodsmvt_item-s_ord_item,
        p_plant  to goodsmvt_item-plant,
        p_lgt_fr to goodsmvt_item-stge_loc,
        p_lgt_to to goodsmvt_item-move_stloc.


  append goodsmvt_item.

  call function 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header = gmhead
      goodsmvt_code   = gmcode
    TABLES
      goodsmvt_item   = goodsmvt_item
      return          = lt_return.


  if lt_return[] is initial.
    call function 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  endif.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 27 2008, 14:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
Спасибо за пример!

Примерно так я и делаю. Только пока не уверен, что мой вариант будет выполнять именно то, что мне нужно.

Code:
FUNCTION ZWMS_GOODSMVT_CREATE.
*"----------------------------------------------------------------------
*"*"Локальный Интерфейс:
*"  IMPORTING
*"     VALUE(I_REVERSALFLAG) LIKE  BAPI2017_GM_ITEM_CREATE-XSTOB
*"       OPTIONAL
*"  EXPORTING
*"     VALUE(MATERIALDOCUMENT) LIKE  BAPI2017_GM_HEAD_RET-MAT_DOC
*"  TABLES
*"      POSITIONS STRUCTURE  ZGOODSMVT_CREATE_POS
*"      RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
DATA: it_return like BAPIRET2                OCCURS 0 WITH HEADER LINE.
DATA: items     like bapi2017_gm_item_create OCCURS 0 WITH HEADER LINE.
DATA: gmhead    like bapi2017_gm_head_01     OCCURS 0 WITH HEADER LINE.
DATA: gmcode    like bapi2017_gm_code        OCCURS 0 WITH HEADER LINE.
refresh it_return.
gmhead-pstng_date = sy-datum.
gmhead-doc_date   = sy-datum.
gmhead-pr_uname   = sy-uname.
gmcode-gm_code    = '04'.
loop at positions.
  items-plant      = items-move_plant = '1000'.
  items-stge_loc   = items-move_stloc = '8003'.
  items-move_type  = '413'.
  if I_REVERSALFLAG is not initial.
    items-xstob = 'X'.
  endif.
*  items-spec_stock ='E'.

  call function 'CONVERSION_EXIT_ALPHA_INPUT'
    exporting
      input  = positions-material
    importing
      output = items-material.

  select single meins into items-entry_uom from mara where matnr = items-material.

if sy-subrc eq 0.
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
    exporting
      input  = positions-vbeln
    importing
      output = items-sales_ord.

  items-s_ord_item = positions-vbnum * 10.
  items-entry_qnt  = positions-qty.
  items-sched_line = '0001'.
  append items.
endif.
endloop.

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
  EXPORTING
    GOODSMVT_HEADER               = gmhead
    GOODSMVT_CODE                 = gmcode
  IMPORTING
    MATERIALDOCUMENT              = materialdocument
  TABLES
    GOODSMVT_ITEM                 = items
    RETURN                        = it_return.
*--- check it_return
LOOP AT it_return.
  IF it_return-type = 'E'.
*    MESSAGE ID it_return-id TYPE 'E' NUMBER it_return-number WITH it_return-message_v1 it_return-message_v2
*                                                            it_return-message_v3 it_return-message_v4.
    append it_return to return.
  ENDIF.
ENDLOOP.refresh it_return.clear it_return.
IF return IS INITIAL.
*--- commit work.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'
    IMPORTING
      RETURN = return.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
   IMPORTING
      RETURN = return.
ENDIF.
ENDFUNCTION.


Я пытаюсь воспроизвести действие, аналогичное тому, что осуществляется транзакцией MIGO. Запас должен переводиться из свободно используемого количества под заказ клиента.

_________________
С уважением, Сергей С.


Последний раз редактировалось east Пн, мар 03 2008, 14:35, всего редактировалось 16 раз(а).

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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Несколько замечаний по вашему коду:
1. Код особого запаса "Е" для 413 вида движения указывать не нужно (только если речь не идет о переносе запаса из одного запаса заказа клиента в запас другого заказа).
2. Заказ клиента - это продажа (SD), а в вашем коде есть такие строки:

Code:
  items-po_number = positions-pur_doc.
  items-po_item = positions-po_item.


где судя по всему идет речь о заказе на поставку ММ (т.е. это уже закупки), а это совершенно не одно и то же.

Приведенный мной в предыдущем топике пример является рабочим.
Поэтому попробуйте потестировать его, по ходу и найдете где у вас ошибки.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 27 2008, 15:02 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
OlegDm написал(а):
Заказ клиента - это продажа (SD), а в вашем коде есть такие строки:

Code:
  items-po_number = positions-pur_doc.
  items-po_item = positions-po_item.


где судя по всему идет речь о заказе на поставку ММ (т.е. это уже закупки), а это совершенно не одно и то же.


Цель - блокировать запас под заказ на поставку.
east написал:
Создал заказ на поставку используя BAPI_SALESORDER_CREATEFORMDAT2. Нужен BAPI осуществляющий блокирование запаса под заказ на поставку.

_________________
С уважением, Сергей С.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 27 2008, 17:12 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской
На данный момент выдается сообщение об ошибке "Документ сбыта не существует в БД или архивирован" :?

_________________
С уважением, Сергей С.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

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


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

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


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

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