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

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


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

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


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

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