Текущее время: Ср, июл 09 2025, 18:49

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


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

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


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

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