Автор Тема: Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ  (Прочитано 6370 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergiucz

  • Newbie
  • *
  • Сообщений: 69
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ
« : Декабрь 01, 2012, 02:47:48 pm »
Добрый день господа гуру !
Не могу найти где заполняется это поле в BAPI_PO_CREATE1.

Я нашел где Отпускающий склад при заказе на транспортировку

             
Код: You are not allowed to view links. Register or Login
  t_po_items-suppl_stloc = gs_header-scladp.

заполняется но он не активен он заполняется автоматически когда пишешь в RESLO_BEZ в транзакций Me21n.

И при этом бапи не вставляет t_po_items-suppl_stloc в заказ.
Подскажите плз где найти.
Жизнь - это программа , найти бы debugger к ней :)

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 765
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ
« Ответ #1 : Декабрь 02, 2012, 04:14:59 pm »
Эпилог: Трудно найти черную кошку в темной комнате, особенно если ее там нет.

Ну что я могу сказать... новые транзакции системы похоже умеют вогнать в ступор не окрепшие умы. И так что мы имеем, SAP сделал такую вещь как вывод наименований в полях ввода, вместо кодов. Это привело к тому, что поле типа отпускающий склад в транзакции имеет длину CHAR(16) хотя на самом деле код склада CHAR(4). Просто в транзакции вы вводите код склада, а система автоматом ищет его описание и вставляет в данном поле и как следствие не окрепшие умы начинающих абаперов бесполезно ищут в разных BAPI поле типа CHAR(16). Хотя для BAPI это поле и даром не нужно, так как это только в диалоге и  требуется, чтобы к коду склада, показать его текстовое описание. Поэтому я не понимаю зачем вы ищете где в BAPI именно это поле.

Далее, если у вас что-то там вы заполняете, но у вас это не работает, это значит что у вас вид заказа не является типа UB - т.е. заказ на перемещение запаса, а просто заказ на закупку. Так вот для заказа на закупку поле отпускающий код склада не может быть определено, поэтому идете к специалисту по ММ и он пусть вам покажет какой вид документа он предполагал вводить в систему и т.д.
« Последнее редактирование: Декабрь 02, 2012, 04:17:40 pm от Uukrul »

Оффлайн sergiucz

  • Newbie
  • *
  • Сообщений: 69
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ
« Ответ #2 : Декабрь 02, 2012, 10:28:54 pm »
Спасибо за быстрый ответ.
Группа ММ дала задачу на разработку программы для создания заказов из внешнего файла .

Я программно создаю заказ перемещ вн БЕ (TEM) или перемещ в БЕ  (TIM). И потом появилась задача автоматически там поставить Отпускающий склад.
вот и здесь начались вопросы у меня.
Из ваше ответа я уже понял  с чем имею дело.

« Последнее редактирование: Декабрь 02, 2012, 10:39:05 pm от sergiucz »
Жизнь - это программа , найти бы debugger к ней :)

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 765
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ
« Ответ #3 : Декабрь 02, 2012, 10:46:11 pm »
You are not allowed to view links. Register or Login
Я программно создаю заказ перемещ вн БЕ (TEM) или перемещ в БЕ  (TIM). И потом появилась задача автоматически там поставить Отпускающий склад.
Ну я заказ на перемещение запаса программно не помню, чтобы создавал, но проверь у себя что заполняется поле RESWK (SUPPL_PLNT) в заголовке структуры POHEADER, это отпускающий код завода. Если оно не заполнено, то отпускающий склад будет при заполнении очищаться.

Оффлайн sergiucz

  • Newbie
  • *
  • Сообщений: 69
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Не могу найти в BAPI_PO_CREATE1 RESLO_BEZ
« Ответ #4 : Декабрь 03, 2012, 11:28:34 am »
You are not allowed to view links. Register or Login
но проверь у себя что заполняется поле RESWK (SUPPL_PLNT) в заголовке структуры POHEADER, это отпускающий код завода. Если оно не заполнено, то отпускающий склад будет при заполнении очищаться.

Заполнил в заголовке SUPPL_PLNT . Но тоже эффекта 0.
Код: You are not allowed to view links. Register or Login
"----------- Заголовок  --------------------
        l_po_header-comp_code  = pa_bukrs.        "-- Балансовая единица
        l_po_header-doc_type   = gs_header-auart. " 'TEM' -- Вид документа закупки
        l_po_header-creat_date = sy-datum.        "-- Дата создания записи
        l_po_header-created_by = sy-uname.        "-- Имя исполнителя
        l_po_header-vendor     = gs_header-kunnr. " 'R001' -- Номер счета поставщика
        l_po_header-langu      = sy-langu.        "-- Код языка
        l_po_header-purch_org  = gs_header-vkorg ." 'Z006' -- Закупочная организация
        l_po_header-pur_group  = gs_header-vtweg. " 'G02' -- Группа закупок
        l_po_header-currency   = 'MDL'.           "-- Код валюты
        l_po_header-doc_date   = sy-datum.        "-- Дата документа закупки
        l_po_header-suppl_plnt = gs_header-scladp.
*        l_po_header-ref_1     = 'test'.
        CLEAR : l_po_headerx.
        l_po_headerx-comp_code  = 'X'.
        l_po_headerx-doc_type   = 'X'.
        l_po_headerx-creat_date = 'X'.
        l_po_headerx-created_by = 'X'.
        l_po_headerx-vendor     = 'X'.
        l_po_headerx-langu      = 'X'.
        l_po_headerx-purch_org  = 'X'.
        l_po_headerx-pur_group  = 'X'.
        l_po_headerx-currency   = 'X'.
        l_po_headerx-doc_date   = 'X'.
        l_po_header-suppl_plnt  = 'X'.
по позициям
Код: You are not allowed to view links. Register or Login
SHIFT gt_poz-matnr RIGHT DELETING TRAILING space.
            OVERLAY gt_poz-matnr WITH '000000000000000000'.
            SELECT matnr charg clabs FROM mchb INTO CORRESPONDING FIELDS OF TABLE gt_charg
                                   WHERE matnr EQ  gt_poz-matnr
                                     AND werks EQ  gs_header-zterm
                                     AND lgort EQ  gs_header-scladp
                                     AND clabs EQ
                                    ( SELECT MAX( clabs ) FROM mchb
                                   WHERE matnr EQ  gt_poz-matnr
                                     AND werks EQ  gs_header-zterm
                                     AND lgort EQ  gs_header-scladp ).

            IF sy-subrc EQ 0.
              READ TABLE gt_charg INDEX 1.

              CLEAR : lv_taklv,t_po_items,t_po_itemsx,po_schedule,po_schedulex.
              IF gg_zakaz > 0.

                t_po_items-po_item     = i.              "-- Номер позиции
                t_po_items-material    = gt_poz-matnr.   "-- '000000000000100053'.
                t_po_items-plant       = gs_header-zavod."-- 'M006'.     "-- Завод
                t_po_items-stge_loc    = gs_header-sclad."-- '0001'.     "-- Склад
                t_po_items-batch       = gt_charg-charg. "-- Партия
                t_po_items-suppl_stloc = gs_header-scladp.
*                t_po_items-info_rec   = space.
                IF gt_charg-clabs < gt_poz-zakaz.
                  t_po_items-quantity = gt_charg-clabs. "-- Количество с партии
                  gt_poz-zakaz = gt_poz-zakaz - gt_charg-clabs.
                ELSE.
                  t_po_items-quantity = gt_poz-zakaz.        " '11' "-- Количество с партии.
                  gg_zakaz = 0.
                ENDIF.
Жизнь - это программа , найти бы debugger к ней :)