Текущее время: Чт, сен 04 2025, 02:27

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


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


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: BAPI для ME41 (Quotation)
СообщениеДобавлено: Вт, ноя 12 2013, 09:44 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 02 2006, 11:27
Сообщения: 51
Откуда: Ярославль
Пол: Мужской
BAPI для ME41 (Quotation)

Всем привет.
Тема обсуждалась здесь: http://sapboard.ru/forum/viewtopic.php?f=13&t=71820&p=426620&hilit=BAPI+ME41#p426620
В общем задача стоит создавать Запрос (Quotation) программно.
Call transaction - устаревший метод, ФМ 'BAPI_QUOTATION_CREATEFROMDATA2' - это для сбыта.
Коллегами с форума найден ФМ 'BS01_MM_QUOTATION_CREATE'.

ФМ немного не работает, потому что создан для функциональности DIMP, которая не активирована, и которую трогать не хочется по нескольким причинам.
( Note 1666702 - Syntax Error occurs when using BS01_MM_QUOTATION_CREATE...
Function module BS01_MM_QUOTATION_CREATE is part of software component ECC-DIMP...
Please do not consider activating the Business Function Set DIMP because you only would like to use this specific function BAPI BS01_MM_QUOTATION_CREATE...).

При запуске ФМ возникают проблемы с валютой, количеством, типом документа. Пришлось его немного доработать. Доработки максимально приближены к стандарту из DIMP. Получилась полноценная BAPI'шка. У кого версия SAP другая, код может чуть-чуть отличаться.

Запуск ФМ:
Code:
FORM bapi_quotation_create .

  DATA wa_quotation_header    TYPE bs01mmhead.
  DATA wa_quotation_address   TYPE bapiaddress.
  DATA p_quotation            TYPE bapiekkoc-po_number.
  DATA wa_quotation_items     TYPE bs01mmitem.
  DATA gt_quotation_items     TYPE STANDARD TABLE OF bs01mmitem.
  DATA wa_schedules           TYPE bs01mmschedule.
  DATA gt_schedules           TYPE STANDARD TABLE OF bs01mmschedule.
  DATA gt_return              TYPE STANDARD TABLE OF bapiret2.
  DATA wa_return              TYPE bapiret2.
*"      QUOTATION_ACCOUNT_ASSIGNMENT STRUCTURE  BAPIEKKN OPTIONAL
*"      QUOTATION_ITEM_TEXT STRUCTURE  BS01MMITEMTX OPTIONAL
*"      QUOTATION_LIMITS STRUCTURE  BAPIESUHC OPTIONAL
*"      QUOTATION_CONTRACT_LIMITS STRUCTURE  BAPIESUCC OPTIONAL
*"      QUOTATION_SERVICES STRUCTURE  BSMMESLLC OPTIONAL
*"      QUOTATION_SRV_ACCASS_VALUES STRUCTURE  BAPIESKLC OPTIONAL
*"      QUOTATION_SERVICES_TEXT STRUCTURE  BAPIESLLTX OPTIONAL
*"      EXTENSIONIN STRUCTURE  BAPIPAREX OPTIONAL

********************************************


  CLEAR wa_quotation_header.
  wa_quotation_header-CREATED_BY  = sy-uname.
  wa_quotation_header-co_code     = 'JNZ'.
  wa_quotation_header-doc_cat     = 'A'.
  wa_quotation_header-doc_type    = 'AN'.
  wa_quotation_header-vendor      = '0000000123'.
  wa_quotation_header-language    = sy-langu.
  wa_quotation_header-purch_org   = 'YNOS'.
  wa_quotation_header-pur_group   = '10'.
  wa_quotation_header-currency    = 'RUB'.
  wa_quotation_header-doc_date    = sy-datum.   "Дата документа закупки
  wa_quotation_header-APPLIC_BY   = '20131231'. " BWBDT Срок подачи заявления
  wa_quotation_header-quot_dead   = '20131231'. " ANGAB "Срок подачи предложения
  wa_quotation_header-COLL_NO     = '1'.        " Групповой номер
**********************************************


  CLEAR wa_quotation_items.
  wa_quotation_items-material     = '000000000000340060'.
  wa_quotation_items-PUR_MAT      = wa_quotation_items-material.
  wa_quotation_items-co_code      = 'JNZ'.
  wa_quotation_items-plant        = 'YNOS'.
  wa_quotation_items-store_loc    = '0001'.
  wa_quotation_items-trackingno   = '1001'.  " bednr
  wa_quotation_items-DOC_CAT      = 'A'. " запрос
  wa_quotation_items-QUOT_DEAD    = '20131231'."ANGAB
  APPEND wa_quotation_items TO gt_quotation_items.


************************************************
  CLEAR wa_schedules.
  wa_schedules-DEL_DATCAT  = '1'. " тип даты - день
  wa_schedules-deliv_date  = '20140101'.
  wa_schedules-QUANTITY    = '3'.
  APPEND wa_schedules TO gt_schedules.

***********************************************


  CALL FUNCTION 'BS01_MM_QUOTATION_CREATE'
  EXPORTING
       quotation_header   = wa_quotation_header
*"     VALUE(QUOTATION_ADDRESS) LIKE  BAPIADDRESS STRUCTURE
*"        BAPIADDRESS OPTIONAL
*"     VALUE(SKIP_ITEMS_WITH_ERROR) LIKE  BAPIMMPARA-SELECTION DEFAULT
*"       'X'
  IMPORTING
       quotation                  = p_quotation
  TABLES
       quotation_items            = gt_quotation_items[]
       quotation_item_schedules   = gt_schedules[]
*"      QUOTATION_ACCOUNT_ASSIGNMENT STRUCTURE  BAPIEKKN OPTIONAL
*"      QUOTATION_ITEM_TEXT STRUCTURE  BS01MMITEMTX OPTIONAL
*"      QUOTATION_LIMITS STRUCTURE  BAPIESUHC OPTIONAL
*"      QUOTATION_CONTRACT_LIMITS STRUCTURE  BAPIESUCC OPTIONAL
*"      QUOTATION_SERVICES STRUCTURE  BSMMESLLC OPTIONAL
*"      QUOTATION_SRV_ACCASS_VALUES STRUCTURE  BAPIESKLC OPTIONAL
*"      QUOTATION_SERVICES_TEXT STRUCTURE  BAPIESLLTX OPTIONAL
*"      EXTENSIONIN STRUCTURE  BAPIPAREX OPTIONAL
       return             = gt_return[]  .


  LOOP AT gt_return INTO  wa_return
                    WHERE type = 'E'
                    OR    type = 'A'.
    ROLLBACK WORK.
    EXIT.
  ENDLOOP.  " return

  IF NOT sy-subrc = 0.
    COMMIT WORK AND WAIT.
    message i096(zm) with p_quotation.
  ENDIF.

ENDFORM.                    " BAPI_QUOTATION_CREATE



LBOS04F01 . form DOC_HEADER_GENERATE
find block
Code:
  if not tekko is initial.
    tekkorel = 'X'.
  endif.
  call function 'ME_CREATE_PO_HEADER'


modify block
Code:
*  Создание Запроса ММ . Request or Quotation
  call function 'ME_CREATE_PO_HEADER'
       exporting
            i_bedat       = cekko-bedat
            i_bsart       = cekko-bsart
            i_bukrs       = cekko-bukrs
            i_ekgrp       = cekko-ekgrp
            i_ekorg       = cekko-ekorg
            i_konnr       = cekko-konnr
            i_lifnr       = cekko-lifnr
            i_reswk       = cekko-reswk
            i_ebeln       = cekko-ebeln
            i_tekko       = tekko
            i_tekkorel    = tekkorel
            i_address     = cadr
            i_vorga       = 'A'  "Needs to be "A" for MM RFQ/Quotation
*            i_bstyp       = document_category  "DIMP
*            i_angdt       = cekko-angdt        "DIMP
            z_bstyp       = document_category
            z_angdt       = cekko-angdt
       exceptions
            error_message = 1.
*}   REPLACE


FM 'ME_CREATE_PO_HEADER'
find block
Code:
  ekko-spras = i_spras.                                     "567213
  ekko-scmproc = i_scmproc.                    "APO Push Deployment


insert block
Code:
* создание запроса . Create Request for Quotation
  if sy-tcode cs 'ZZZ'
  or sy-tcode = 'SE38'.
    if z_bstyp = 'A'.
      EKKO-ANGDT = Z_ANGDT.
      EKKO-BSTYP = Z_BSTYP.
      ekko-waers = I_TEKKO-waers.
    endif.
  endif.


MM06EF0I_INIT_FC. FORM init_fc
find block
Code:
  ekko-mandt     = sy-mandt.
  ekko-aedat     = sy-datum.
  ekko-spras     = sy-langu.
  IF ekko-ernam EQ space.
    ekko-ernam     = sy-uname.
  ENDIF.
  ekko-bstyp = bstyp-best.


insert block
Code:
* Создание Запроса . Request for Quotation
  IF sy-tcode CS 'ZZZ'
  OR sy-tcode = 'SE38'.
    IF i_vorga = bstyp-anfr.  " 'A'-Quotation
      auswahl0   = 'ME41'.
      t160-bstyp = bstyp-anfr.
      t160-vorga = vorga-anfr.
      ekko-bstyp = bstyp-anfr.
      rfq_language = sy-langu. 
      CLEAR ekko-statu.
    ENDIF.
  ENDIF.


MM06EF0E_EKPO-NETWR_MOD. FORM ekpo-netwr_mod
find block
Code:
  CASE ekko-bstyp.
    WHEN bstyp-anfr.


insert block
Code:
*     создание запроса . Reuest for Quotation
      if sy-tcode cs 'ZZZ'
      or sy-tcode = 'SE38'.
        IF ( NOT fc_call IS INITIAL ) AND
          ekko-bstyp = bstyp-anfr AND
          ekpo-pstyp = pstyp-lagm.  " pstyp = 0
          rm06e-anmng = ekpo-menge.
        ENDIF.
      ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для ME41 (Quotation)
СообщениеДобавлено: Чт, ноя 14 2013, 15:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 18 2006, 09:06
Сообщения: 325
Откуда: Astana
Пол: Мужской
http://sapland.ru/articles/stats/2012/1 ... renii.html


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI для ME41 (Quotation)
СообщениеДобавлено: Вт, ноя 19 2013, 07:16 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 02 2006, 11:27
Сообщения: 51
Откуда: Ярославль
Пол: Мужской
askarik написал:
http://sapland.ru/articles/stats/2012/1/prakticheskie-rekomendatsii-po-poisku-user-exit-ov-polizovateliskih-rasshirenii.html


Простите, если в ссылке присутствует какая-то альтернативная и ГОТОВАЯ версия BAPI для ME41, то я ее не нашел.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для ME41 (Quotation)
СообщениеДобавлено: Пт, ноя 22 2013, 12:32 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
askarik написал:
http://sapland.ru/articles/stats/2012/1/prakticheskie-rekomendatsii-po-poisku-user-exit-ov-polizovateliskih-rasshirenii.html

мимо кассы. в ссылке речь о экзитах. ТС пишет о bapi.

_________________
Eritis sicut Deus, scientes bonum et malum...


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

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


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

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


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

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