Текущее время: Ср, июл 23 2025, 18:28

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание заказа на поставку из BAPI_PO_CREATE1
СообщениеДобавлено: Пн, мар 28 2011, 15:09 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Добрый день, коллеги!
Помогите решить проблему: пробую создать заказ на поставку из BAPI_PO_CREATE1, выдает сообщение 062(ME) Для материала 31000020 контировка обязательна (укажите тип контировки).
Для позиций, где необязательно указывать тип контировки - заказ создается.

Вот код:
Code:
    ls_header-comp_code = ztmmekko-bukrs." Company Code
    ls_header-doc_type = 'NB'. " Order Typr BSART
    ls_header-creat_date = SY-DATUM. " P.O Dt - BEDAT
    ls_header-vendor = ztmmekko-lifnr. "Vendor - EKKO-LIFNR
    ls_header-purch_org = ztmmekko-ekorg. " Purch. Org - EKKO-EKORG
    ls_header-pur_group = ztmmekko-ekgrp. " Purch Group - EKKO-EKGRP
    ls_header-currency_iso = ztmmekko-waers. " Currency Default field for Enjoy

    ls_headerx-po_number = 'X'.
    ls_headerx-comp_code = 'X'." Company Code
    ls_headerx-doc_type = 'X'. " Order Typr BSART
    ls_headerx-creat_date = 'X'.
    ls_headerx-vendor = 'X'. "Vendor - EKKO-LIFNR
    ls_headerx-purch_org = 'X'. " Purch. Org - EKKO-EKORG
    ls_headerx-pur_group = 'X'. " Purch Group - EKKO-EKGRP
    ls_headerx-currency_iso = 'X'. " Currency Default field for Enjoy

    " customer fields
    clear lt_extensionin.
    lt_extensionin-structure = 'BAPI_TE_MEPOHEADER'.
    ls_bapi_te_mepoheader-zzdoknr = ztmmekko-doknr.
    " выбор номера договора
    select single znum_1 from zvca_dogovor
      into ls_bapi_te_mepoheader-zznum_1
     where doknr = ztmmekko-doknr.
    if sy-subrc <> 0.
      select single znum_1 from zvca_dogovor_dop
        into ls_bapi_te_mepoheader-zznum_1
       where doknr = ztmmekko-doknr.
      if sy-subrc <> 0.
        clear ls_bapi_te_mepoheader-zznum_1.
      endif.
    endif.
    lt_extensionin+30 = ls_bapi_te_mepoheader.
    append lt_extensionin.
    clear lt_extensionin.
    lt_extensionin-structure = 'BAPI_TE_MEPOHEADERX'.
    ls_bapi_te_mepoheaderx-zzdoknr = 'X'.
    ls_bapi_te_mepoheaderx-zznum_1 = 'X'.
    lt_extensionin+30 = ls_bapi_te_mepoheaderx.
    append lt_extensionin.


    " позиции
    loop at lt_selpos1.

      lt_items-po_item = lt_selpos1-aktpo." line item no - ekpo-ebelp
*      t_po_items-short_text = 'ksr text'." line item text
      lt_items-acctasscat = lt_selpos1-knttp.    " тип контировки
      lt_items-material = lt_selpos1-matnr. " material no - ekpo-ematn
      lt_items-plant = ztmmekko-werks. " plant - ekpo-werks
*      lt_items-quantity = '1'.
      lt_items-quantity = '1.000'.
      loop at lt_selpos where matnr = lt_selpos1-matnr and
                              mwskz = lt_selpos1-mwskz and
                              knttp = lt_selpos1-knttp and
                              sakto = lt_selpos1-sakto and
                              kostl = lt_selpos1-kostl.
        if lt_selpos1-mwskz = 'F1'.
          lt_items-net_price = lt_items-net_price + lt_selpos-wrbtr + lt_selpos-wmwst.
        else.
          lt_items-net_price = lt_items-net_price + lt_selpos-wrbtr.
        endif.
      endloop.
      lt_items-po_price = '2'.
      lt_items-price_unit = '1'.
      lt_items-tax_code = lt_selpos1-mwskz.
      lt_items-gr_ind = 'X'.
      lt_items-ir_ind = 'X'.
      lt_items-gr_basediv = 'X'.
      append lt_items.
      clear lt_items.

      lt_itemsx-po_item = lt_selpos1-aktpo.
      lt_itemsx-po_itemx = 'X'.
      lt_items-acctasscat = 'X'.
      lt_itemsx-ematerial = 'X'.
      lt_itemsx-plant = 'X'.
      lt_itemsx-quantity = 'X'.
      lt_itemsx-net_price = 'X'.
      lt_itemsx-po_price = 'X'.
      lt_itemsx-price_unit = 'X'.
      lt_itemsx-tax_code = 'X'.
      lt_itemsx-gr_ind = 'X'.
      lt_itemsx-ir_ind = 'X'.
      lt_itemsx-gr_basediv = 'X'.
      append lt_itemsx.
      clear lt_itemsx.

      " контировка
      lt_account-po_item = lt_selpos1-aktpo .
      lt_account-serial_no = '01' .
*      account-creat_date = sy-datum .
      lt_account-costcenter = lt_selpos1-kostl .
      lt_account-gl_account = lt_selpos1-sakto .
      lt_account-co_area = '1000' .
      lt_account-tax_code = lt_selpos1-mwskz .
      append lt_account.
      clear lt_account.

      lt_accountx-po_item = lt_selpos1-aktpo .
      lt_accountx-po_itemx = 'X' .
      lt_accountx-serial_no = 'X' .
      lt_accountx-serial_nox = 'X' .
*      accountx-creat_date = c_x .
      lt_accountx-costcenter = 'X' .
      lt_accountx-gl_account = 'X' .
      lt_accountx-co_area = 'X' .
      lt_accountx-tax_code = 'X' .
      append lt_accountx.
      clear lt_accountx.

    endloop.


    call function 'SAPGUI_PROGRESS_INDICATOR'
      exporting
        percentage = 5
        text       = 'Создание заказа на поставку...'.

    call function 'BAPI_PO_CREATE1'
      exporting
        poheader                     = ls_header
        poheaderx                    = ls_headerx
      importing
        exppurchaseorder             = l_purchaseorder
      tables
        return                       = lt_return[]
        poitem                       = lt_items[]
        poitemx                      = lt_itemsx[]
        poaccount                    = lt_account[]
        poaccountx                   = lt_accountx[]
        extensionin                  = lt_extensionin[]
              .



образец брал вот отсюда: http://sapnet.ru/viewtopic.php?t=268&highlight=bapipocreate1

Вроде все правильно заполнил...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание заказа на поставку из BAPI_PO_CREATE1
СообщениеДобавлено: Пн, мар 28 2011, 15:23 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
В ошибке все написано, для указанного материала необходимо указывать контировку.
Соответственно, необходимо в BAPI_PO_CREATE1 необходимо заполнить еще контировку.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание заказа на поставку из BAPI_PO_CREATE1
СообщениеДобавлено: Вт, мар 29 2011, 06:49 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Насчет контировки понял в чем ошибка - не было подтверждения в таблице флагов:
я указал
Code:
lt_items-acctasscat = 'X'.

а нужно было
Code:
lt_itemsx-acctasscat = 'X'.

глупо конечно)) но это машинально

Тем не менее исправление обнажило другую проблему: если ставлю контировку 'К', BAPI просит указать МВЗ, если 'X' - основной счет.
Я указываю их как в вышеупомянутом образце c SAPNET:
МВЗ:
lt_account-costcenter = lt_selpos1-kostl .
lt_accountx-costcenter = 'X' .
Основной счет:
lt_account-gl_account = lt_selpos1-sakto .
lt_accountx-gl_account = 'X' .

Значения в таблицы BAPI записываются и проверено, что с такими значениями МВЗ и контрольного счета ч-з тр. ME21N заказ на поставку создается.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание заказа на поставку из BAPI_PO_CREATE1
СообщениеДобавлено: Вт, мар 29 2011, 09:03 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Тема закрыта - оказалось лишним для заполнения: lt_accountx-serial_nox = 'X' - убрал строчку и все заработало


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание заказа на поставку из BAPI_PO_CREATE1
СообщениеДобавлено: Вт, мар 29 2011, 09:05 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
А через BAPI какие сообщения он тебе возвращает ?


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

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


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

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


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

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