Текущее время: Пн, июл 28 2025, 09:27

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Создание договоров
СообщениеДобавлено: Сб, авг 14 2010, 15:45 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Доброго времени всем.

Подскажите пж через что лучше всего создать контракт. Есть нюанс, таблицу EKKO немного расширили, добавив несколько полей.
Нашел несколько вариантов:
* 1. BAPI_PO_CHANGE
* 2. BAPI_CONTRACT_CREATEFROMDATA
* 3. BAPI_AGREEMENT_MAINTAIN
* 4. BAPI_CONTRACT_CREATE
Или все-таки пакетник для тр. ME31K.
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Сб, авг 14 2010, 20:26 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, сен 13 2008, 08:50
Сообщения: 56
Добрый день.
Для бизнес-объекта BUS2014 "Контракт на закупку" смотрим метод "Create", видим BAPI "BAPI_CONTRACT_CREATE", ее то и нужно использовать.
Для заполнения собственных полей используйте параметр EXTENSIONIN.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Вс, авг 15 2010, 10:45 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Спасибо, будем пробовать


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

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
[s]Я не совсем понял что заполнять EXTENSIONIN или EXTENSIONOUT[/s] Сорри не внимательно прочитал
И вообще как заполнять?

И еще один вопрос: в таблице EKKO есть .INCLUDE структура CI_EKKODB (Грузополучатель к заказу), подскажите где в бапи заполнять эти поля?

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Вс, авг 15 2010, 19:23 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, сен 13 2008, 08:50
Сообщения: 56
Я уже писал, что для заполнения собственных полей(их вы добавили через Include-структуру CI_EKKODB) используйте параметр EXTENSIONIN (справка к параметру весьма подробная).
Рассмотрим на примере заголовка. Допустим таблицу EKKO расширили полем ZZCUSTOM (через CI_EKKODB!):
1) Добавляем в структуру CI_EKKODBX поле ZZCUSTOM тип BAPIUPDATE
2) В структуре BAPI_TE_MEOUTHEADER увидим наше поле ZZCUSTOM, а в структуре BAPI_TE_MEOUTHEADERX увидим поле ZZCUSTOM типа BAPIUPDATE
3) заполняем Extension и затем передаем в BAPI:
Code:
  DATA : wa_bapih     TYPE BAPI_TE_MEOUTHEADER,
             wa_bapihx    TYPE BAPI_TE_MEOUTHEADERX,
             wa_ext         TYPE BAPIPAREX.

  DATA : lt_extension  TYPE TABLE OF BAPIPAREX.

  CLEAR : wa_bapih,
               wa_bapihx.
  wa_bapih-zzcustom   = <значение поля>.
  wa_bapihx-zzcustom = 'X'.

  CLEAR wa_ext.
  wa_ext-structure  = 'BAPI_TE_MEOUTHEADER'.
  cl_abap_container_utilities=>fill_container_c(
                           EXPORTING  im_value               = wa_bapih
                           IMPORTING  ex_container           = wa_ext+30
                           EXCEPTIONS illegal_parameter_type = 1
                                              OTHERS                 = 2 ).
  APPEND wa_ext TO lt_extension.

  CLEAR wa_ext.
  wa_ext-structure  = 'BAPI_TE_MEOUTHEADERX'.
  cl_abap_container_utilities=>fill_container_c(
                           EXPORTING  im_value               = wa_bapihx
                           IMPORTING  ex_container           = wa_ext+30
                           EXCEPTIONS illegal_parameter_type = 1
                                      OTHERS                 = 2 ).
  APPEND wa_ext TO lt_extension.

* передаем lt_extension в BAPI

В общем как то так :)

Добавлено:
4) выяснил, что еще потребуется внедрить BADI "MEOUT_BAPI_CUST_01" метод "MAP_HEADER_IN"
В методе проделать обратную 3-му шагу операцию:
Code:
FIELD-SYMBOL : <fs_ext> type BAPIPAREX.

DATA              : ls_head  type BAPI_TE_MEOUTHEADER,
                        ls_headx type BAPI_TE_MEOUTHEADERX.


* для контракта
IF IM_BSTYP EQ 'K'.

READ TABLE IM_EXTENSIONIN ASSIGNING <fs_ext> WITH KEY STRUCTURE = 'BAPI_TE_MEOUTHEADER'.
IF sy-subrc EQ 0.
        CALL METHOD cl_abap_container_utilities=>read_container_c
          EXPORTING
            im_container           = <fs_ext>+30
          IMPORTING
            ex_value               = ls_head
          EXCEPTIONS
            illegal_parameter_type = 1.
        IF sy-subrc EQ 0.
          MOVE-CORRESPONDING ls_head TO CH_CUST_HEADER.
        ENDIF.
ENDIF.

READ TABLE IM_EXTENSIONIN ASSIGNING <fs_ext> WITH KEY STRUCTURE = 'BAPI_TE_MEOUTHEADERX'.
IF sy-subrc EQ 0.
        CALL METHOD cl_abap_container_utilities=>read_container_c
          EXPORTING
            im_container           = <fs_ext>+30
          IMPORTING
            ex_value               = ls_headx
          EXCEPTIONS
            illegal_parameter_type = 1.
        IF sy-subrc EQ 0.
          MOVE-CORRESPONDING ls_headx TO CH_CUST_HEADERX.
        ENDIF.
ENDIF.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Пн, авг 16 2010, 07:56 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Доброе утро.

У меня как бы возник вопрос, а точнее их 2.
1. Вопрос наверно глупый , но почему именно BAPI_TE_MEOUTHEADER, BAPI_TE_MEOUTHEADERX, ведь структура которая у меня в БАПИ bapimeoutheader, bapimeoutheaderx? Или я чего-то не допонимаю.
2. Не совсем понял 4-ый пункт, можете в кратце объяснить для чего он вообще нужен


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Пн, авг 16 2010, 08:40 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, сен 13 2008, 08:50
Сообщения: 56
Доброе утро.
По поводу 1-го вопроса - так написано в хелпе к параметру EXTENSIONIN (в SE37 напротив этого параметра нажмите на кнопочку с зеленым фонариком).
По поводу 2-го вопроса - поскольку поля пользовательские, то предлагается маппинг этих полей делать самим.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Пн, авг 16 2010, 09:27 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Спасибо.
В структуре bapimeoutaccount поле costcenter заполняю мвз. Только как-то странно что бапи на возврате выдает ошибку "Укажите МВЗ ."
bapimeoutaccountx = 'X'. В чем может быть причина? Где-то читал что надо заполнить еще и SERIAL_NO, только не пойму чем?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание договоров
СообщениеДобавлено: Пн, авг 16 2010, 10:10 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, сен 13 2008, 08:50
Сообщения: 56
DarZ написал(а):
Где-то читал что надо заполнить еще и SERIAL_NO, только не пойму чем?

Там указывается номер(1,2,..., n) контировки для позиции контракта.


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

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


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

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


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

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