Age: 48 Joined: 06 Aug 2010 Posts: 79 Location: Ukraine
Posted: Wed Dec 01, 2010 11:08 am Post subject: Функциональные модули или классы для работы с MM
Уважаемые коллеги, подскажите пожалуйста где мне посмотреть список ФМ или глобальных классов для работы с материалами и их движениями.
А вообщем задача такова, нужно выбрать движения материалов за период по материалу, партии, складу. Сделать это нужно не написав (собственноручно) ни одного запроса в базу, т.е. используя стандартные ФМ’ы или стандартные объекты.
Заранее спасибо...
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Dec 01, 2010 1:13 pm Post subject:
Типа такого 'BAPI_GOODSMVT_GETITEMS' ?
Code:
*&---------------------------------------------------------------------*
*& Form read_matdoc
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_SRS_PLANT text
* -->P_DATE1 text
* -->P_DATE2 text
* -->P_XTWIC0100_BWART_EINL text
* -->P_I_ERROR text
*----------------------------------------------------------------------*
FORM read_matdoc tables P_T_gm_head structure bapi2017_gm_head_02
P_T_gm_item structure bapi2017_gm_item_show
P_i_t_bapiret2 structure BAPIRET2
USING P_SRS_PLANT
P_DATE1
P_DATE2
P_TWIC0100_BWART_EINL.
DATA: plant_ra LIKE bapi2017_gm_plant_ra
OCCURS 1 WITH HEADER LINE,
pstng_date_ra LIKE bapi2017_gm_pstng_date_ra
OCCURS 1 WITH HEADER LINE,
move_type_ra LIKE bapi2017_gm_move_type_ra
OCCURS 1 WITH HEADER LINE.
IF NOT p_srs_plant IS INITIAL.
plant_ra-sign = 'I'.
plant_ra-option = 'EQ'.
plant_ra-low = p_srs_plant.
* plant_ra-high = pi_plant.
APPEND plant_ra.
ENDIF.
IF NOT p_date1 IS INITIAL and
p_date2 is initial.
pstng_date_ra-sign = 'I'.
pstng_date_ra-option = 'EQ'.
pstng_date_ra-low = p_date1.
* pstng_date_ra-high = sy-datlo.
APPEND pstng_date_ra.
ENDIF.
IF NOT p_date1 IS INITIAL and
not p_date2 is initial.
pstng_date_ra-sign = 'I'.
pstng_date_ra-option = 'BT'.
pstng_date_ra-low = p_date1.
pstng_date_ra-high = p_date2.
APPEND pstng_date_ra.
ENDIF.
IF NOT P_TWIC0100_BWART_EINL IS INITIAL.
move_type_ra-sign = 'I'.
move_type_ra-option = 'EQ'.
move_type_ra-low = P_TWIC0100_BWART_EINL.
APPEND move_type_ra.
ENDIF.
К сожалению я не умею работать с логическими базами данных
Вот то что посоветовал Vga, подходит мне, но слышал я что ЛБД работают значит1ельно быстрее, потому попробую и так и так, будем учиться работе с ЛБД Кстати сразу же и вопрос, а можно ли использовать ЛБД не только в отчетах?
Age: 48 Joined: 06 Aug 2010 Posts: 79 Location: Ukraine
Posted: Fri Dec 03, 2010 5:45 pm Post subject:
Удав wrote:
klkuznetsov wrote:
Мдя... я думал что будет быстрее... Что-то быстрее не работает, может я что-то не так делаю?
Ну смотря что делаете Приведите код.
Пытаюсь выбрать документы движения материалов за период, пока побеждает выборка с помощью запроса. Хотя нас начальство всегда тыкает мордой, что вы не используете стандартный функционал для данных выборок, в пример приводит ЛДБ и ФМ’ы. Начальство говорит, что стандарт работает быстрее чем наши кустарные запросы Вот ниже приведен код выборки из ЛБД. То же самое самое сделано с помощью запроса SQL.
REPORT z_xaxa.
TABLES: mkpf, mseg.
"SELECT-OPTIONS S_CARR FOR SPFLI-CARRID.
TYPE-POOLS: rsds, rsfs, abap.
DATA: callback TYPE TABLE OF ldbcb,
callback_wa LIKE LINE OF callback.
DATA: seltab TYPE TABLE OF rsparams,
seltab_wa LIKE LINE OF seltab.
DATA: texpr TYPE rsds_texpr,
fsel TYPE rsfs_fields,
fields like RSFS_STRUC OCCURS 10," WITH HEADER LINE,
fields_wa TYPE RSFS_STRUC,
fsel_wa TYPE RSFS_TAB_FIELDS.
DATA: lc_mjahr TYPE mjahr,
lc_budat TYPE budat,
lc_mblnr TYPE mblnr,
lc_charg TYPE CHARG_D,
lc_vgart TYPE vgart.
SELECT-OPTIONS: s_mjahr FOR lc_mjahr,
s_budat FOR lc_budat,
s_mblnr FOR lc_mblnr,
s_charg FOR lc_charg,
s_vgart FOR lc_vgart.
*SELECT mseg~werks mseg~aufnr mseg~mjahr mseg~matnr mseg~bwart mseg~erfmg mseg~erfme mkpf~budat
* mseg~dmbtr mseg~mblnr mseg~zeile mseg~menge mseg~meins mkpf~bktxt mkpf~bldat
* FROM mseg
* INNER JOIN mkpf ON mkpf~mblnr = mseg~mblnr
* APPENDING CORRESPONDING FIELDS OF TABLE it_kalk
* WHERE ( mseg~werks = p_werks )
* AND ( mseg~mjahr = p_mjahr )
* AND mseg~kostl IN s_kostl AND mseg~bwart IN ('981', '982').
IF sy-subrc <0>NAME text
* -->WA text
* -->EVT text
* -->CHECK text
*----------------------------------------------------------------------*
FORM callback_mkpf USING name TYPE ldbn-ldbnode
wa TYPE mkpf
evt TYPE c
check TYPE c.
CASE evt.
WHEN 'G'.
WRITE: / wa-mblnr, wa-budat.
ULINE.
WHEN 'L'.
ULINE.
ENDCASE.
ENDFORM. "CALLBACK_MKPF
*&---------------------------------------------------------------------*
*& Form CALLBACK_MSEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->NAME text
* -->WA text
* -->EVT text
* -->CHECK text
*----------------------------------------------------------------------*
FORM callback_mseg USING name TYPE ldbn-ldbnode
wa TYPE mseg
evt TYPE c
check TYPE c.
CASE evt.
WHEN 'G'.
WRITE: / wa-aufnr, wa-matnr, wa-mblnr.
ULINE.
WHEN 'L'.
ULINE.
ENDCASE.
ENDFORM. "CALLBACK_MSEG
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Mon Dec 06, 2010 11:50 am Post subject:
Ну конкретно с документами материалов (MKPF+MSEG) вообще с каждой выборкой отдельно надо заниматься совместно с базисниками
На самом деле использование ЛБД означает:
1.Для выборок по конкретным полям, указанным на экране выбора ЛБД существуют индексы, что ускоряет выборку по этим полям.
2.Производится проверка полномочий для каждой записи. _________________ С уважением,
Удав.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.