SAPфорум.RU
https://www.sapboard.ru/forum/

Эмуляция расчета фрахтовых расходов в LE-TRA
https://www.sapboard.ru/forum/viewtopic.php?f=95&t=92949
Страница 1 из 1

Автор:  SDюк [ Пн, май 02 2016, 08:44 ]
Заголовок сообщения:  Эмуляция расчета фрахтовых расходов в LE-TRA

Добрый день.
Не могу разобраться как работает Фм SD_SCD_SIMULATE_FREIGHT_COSTS
нужно в Z-отчет по транспортировкам тянуть суммы фрахта для транспортировок без документа фрахтовых расходов

Пытался сохранить тестовые данные в SE37, система выдает ошибку TPDA432

Может есть какие-то другие варианты?

Автор:  DED_MOROZ [ Вт, июн 14 2016, 09:36 ]
Заголовок сообщения:  Re: Эмуляция расчета фрахтовых расходов в LE-TRA  Тема решена

Вот расчет стоимости фрахта для списка транспортировок(Аналог нажатия на кнопку "Оценка фрахтовых расходов" в VT03n:


SELECT * FROM vttk
INTO TABLE lt_vttk
WHERE tknum IN s_tknum
AND tplst IN s_tplst
AND tdlnr IN s_tdlnr
AND exti1 IN s_exti1
AND ernam IN s_ernam
AND erdat IN s_erdat
AND route IN s_route
AND sttrg IN s_sttrg
AND shtyp IN s_shtyp.

CHECK sy-subrc = 0.

DATA: l_netwr_all TYPE netwr_all,
l_waers_all TYPE waers_all.

LOOP AT lt_vttk ASSIGNING FIELD-SYMBOL(<fs_vttk>).
REFRESH: xvttk[], xvttk.
FREE gs_data.

gs_data = <fs_vttk>.

CALL FUNCTION 'RV_SHIPMENT_VIEW' "#EC DOM_EQUAL
EXPORTING
shipment_number = <fs_vttk>-tknum
option_tvtk = 'X'
option_ttds = 'X'
language = sy-langu
option_items = 'X'
option_minimized_item_data = ' ' "temporary full read B
option_sales_orders = ' '
option_export_data = ' '
option_stawn_read = 'X' "read comm.codes
option_segments = 'X'
option_partners = 'X'
option_messages = 'X'
option_packages = ' '
option_package_dialog = 'X'
option_flow = 'X'
"option_delivery_lock = space
option_authority_check = 'X'
activity = 'A'
option_no_refresh = option_no_refresh
option_ignore_missing_deliv = l_option_ignore_missing_deliv
gi_badi_shpmnt_extension = gi_badi_shpmnt_extension "n_1661311
IMPORTING
f_vttkvb = vttkvb
f_tvtk = tvtk
f_tvtkt = tvtkt
f_ttds = ttds
f_ttdst = ttdst
e_delivery_missing = l_delivery_missing
e_dsd_display = l_dsd_display "n_1661311
TABLES
f_vttp = xvttp
f_trlk = xtrlk
f_trlp = xtrlp
f_vtts = xvtts
f_vtsp = xvtsp
f_vbpa = xvbpa
f_vbadr = xvbadr
f_vtfa = xvtfa
f_yvtfa = yvtfa
EXCEPTIONS
not_found = 1
delivery_missing = 3
OTHERS = 99.

IF sy-subrc = 0.

xvttk = vttkvb.
APPEND xvttk TO xvttk.

* move data which has not to be filtered
c_shipment_data-tvtk_wa = tvtk.
c_shipment_data-ttds_wa = ttds.
c_shipment_data-xsadr[] = xvbadr[].

c_shipment_data-xvttk[] = xvttk[].
c_shipment_data-xvttp[] = xvttp[].
c_shipment_data-xvtts[] = xvtts[].
c_shipment_data-xvtsp[] = xvtsp[].
c_shipment_data-xvbpa[] = xvbpa[].
c_shipment_data-xtrlk[] = xtrlk[].
c_shipment_data-xtrlp[] = xtrlp[].


CALL FUNCTION 'SD_SCD_COST_INFO_SHIPMENT'
EXPORTING
i_shipment_data = c_shipment_data
i_opt_dialog = ' '
i_opt_batch_mode = 'X'
i_opt_sim = 3
IMPORTING
e_result = l_netwr_all
e_result_waers = l_waers_all.
IF sy-subrc = 0.
gs_data-netwr = l_netwr_all.
gs_data-waers = l_waers_all.
ENDIF.

APPEND gs_data TO gt_data.
ENDIF.

ENDLOOP.

P.S. Работает на большом объеме транспортировок очень долго. Анализом производительности не занимался :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/