Текущее время: Сб, июл 19 2025, 21:00

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


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

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


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

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