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

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


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

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


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

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