Текущее время: Пн, июл 21 2025, 04:10

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Контировки в BAPI BAPI_PO_CREATE1
СообщениеДобавлено: Чт, дек 20 2007, 17:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Добрый день!
Юзаю BAPI BAPI_PO_CREATE1 создавая заказ на поставку со ссылкой на контракт. Проблема в том, что нужно поменять вид контировки позиции заказа при создании. Но система ругается на это. Что я делаю не так? как это можно обойти?
Code:
  lpoheader-comp_code = p_ekko-bukrs.
  lpoheader-doc_type = 'NB'.
  lpoheader-item_intvl  = p_ekko-pincr.
  lpoheader-agreement  = p_rkonnr.
  lpoheader-doc_date  = sy-datum.
  lpoheader-purch_org  = p_ekko-ekorg.
  lpoheader-pur_group  = p_ekko-ekgrp.
  lpoheader-vper_start = p_kdatb.
  lpoheader-vper_end = p_kdate.
  lpoheader-our_ref = p_unsez.
  lpoheader-currency = p_ekko-waers.
  lpoheader-exch_rate = p_ekko-wkurs.
  lpoheader-pmnttrms = p_ekko-zterm.

  lpoheaderx-comp_code  = c_mark.
  lpoheaderx-doc_type   = c_mark.
  lpoheaderx-item_intvl = c_mark.
  lpoheaderx-agreement  = c_mark.
  lpoheaderx-doc_date   = c_mark.
  lpoheaderx-purch_org  = c_mark.
  lpoheaderx-pur_group  = c_mark.
  lpoheaderx-vper_start = c_mark.
  lpoheaderx-vper_end   = c_mark.
  lpoheaderx-our_ref    = c_mark.
  lpoheaderx-currency   = c_mark.
  lpoheaderx-exch_rate  = c_mark.
  lpoheaderx-pmnttrms   = c_mark.

  LOOP AT pt_ekpo ASSIGNING <lekpos>.
    CLEAR: lpoacc, lpoaccx, lpoitem, lpoitemx.
    lpoitem-acctasscat = '4'.
    lpoitem-plant      = <lekpos>-werks.
    lpoitem-po_item    = sy-tabix.
    lpoitem-quantity   = <lekpos>-menge.
    lpoitem-po_unit    = <lekpos>-meins.
    lpoitem-agreement  = p_rkonnr.
    lpoitem-agmt_item  = <lekpos>-ebelp.
    lpoitem-gr_ind     = c_mark.
    APPEND lpoitem TO lt_poitem.
    lpoitemx-po_item    = lpoitem-po_item.
    lpoitemx-po_itemx   = c_mark.
    lpoitemx-acctasscat = c_mark.
    lpoitemx-plant      = c_mark.
    lpoitemx-po_itemx   = c_mark.
    lpoitemx-quantity   = c_mark.
    lpoitemx-po_unit    = c_mark.
    lpoitemx-agreement  = c_mark.
    lpoitemx-agmt_item  = c_mark.
    lpoitemx-gr_ind     = c_mark.
    APPEND lpoitemx TO lt_poitemx.
    lpoacc-po_item = lpoitem-po_item.
    lpoacc-gl_account = '7909000000'.
    APPEND lpoacc TO lt_poacc.
    lpoaccx-po_item   = lpoitem-po_item.
    lpoaccx-po_itemx  = c_mark.
    lpoacc-gl_account = c_mark.
    APPEND lpoaccx TO lt_poaccx.

  ENDLOOP.

  CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
      poheader                     = lpoheader
      poheaderx                    = lpoheaderx
      TESTRUN                      = c_mark
    TABLES
      return                       = lt_bapiret2
      poitem                       = lt_poitem
      poitemx                      = lt_poitemx
      poaccount                    = lt_poacc
      poaccountx                   = lt_poaccx

Из бапи возвращается список мессаг:
Цитата:
I 000 Функция 'Создание заказа на поставку' выполнена в тестов. режиме
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EKPODB
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EKKODB
E MEPO 046 Позиция заказа на поставку 00001 еще содержит контировки с ошибками
W 06 174 Срок действия меньше одной недели.
W 06 173 Начальный срок действия равен конечному.
E ME 042 Основной счет 804400100 не создан (проверьте данные ввода).
W ME 040 Эта дата поставки может быть соблюдена?
W 06 078 Договорное количество превышено на 4 ШТ
W 06 531 Типы контировки в договоре и в заявке не согласуются.

В сообщении об ошибке фигурирует счет из договора, а не тот, который я передаю в структуре. Система не меняет его, не смотря на заполненую строку в lt_poaccx?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 07:07 
Гуру-эксперт
Гуру-эксперт

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 10:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 OlegDM: надо попробовать, но вроде как там больше никаких контировок-то и не было, только данные счета. Но вообще как-то странно: перед этим реализовал эту же функциональность через пакетник ME21 - все срослось. Здесь же - что-то непонятное. Есть правда мысль, что должно получится, если завести этот самый счет, на который ругается мессага, может поможет.


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Контировка без объекта контировки не имеет смысла (т.е. обычно контировка в ЗнП это - Объект контировки + Счет).
через пакетник контировки у тебя из контракта автоматом подтянутся, и ты только счет меняешь. В случае с БАПИ ты вручную задаешь в контировках (poaccount, poaccountx) только счет, без объекта контировки. Хотя конечно проверять надо.


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А вы попробуйте натравить на созданный руками заказ BAPI_PO_GETDETAIL или BAPI_PO_GETDETAIL1 и посмотреть чего он там назаполнял.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 10:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 OlegDm: проверю.

2 Lars: натравливал, ничего особенного не увидел.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 16:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Code:

   lpoacc-po_item = lpoitem-po_item.
    lpoacc-gl_account = '7909000000'.
    APPEND lpoacc TO lt_poacc.
    lpoaccx-po_item   = lpoitem-po_item.
    lpoaccx-po_itemx  = c_mark.
    [b] lpoacc-gl_account = c_mark. [/b]
    APPEND lpoaccx TO lt_poaccx.


а вот то. что выделено - это правильно .. это не lpoaccx-gl_account = c_mark

и еще, я в свое время, ставил номер контировки, оно может и не надо, но и не мешало

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

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


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

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


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

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