Вызов ракурса ведения с помощью ФМ VIEW_MAINTENANCE_CALL с фильтром значений.
Показаны сообщения с ярлыком fm. Показать все сообщения
Показаны сообщения с ярлыком fm. Показать все сообщения
14 июня 2022
08 апреля 2022
Подпрограмма преобразования для домена
Чтобы подпрограмма преобразования <conv_name> была доступна, нужно создать два функциональных модуля.
02 декабря 2021
20 августа 2021
Проблема вывода ALV Grid после вызова ФМ TEXT_CONVERT_CSV_TO_SAP
Было замечено, что после загрузки CSV-файла ФМом TEXT_CONVERT_CSV_TO_SAP вывод ALV Grid (как через класс cl_gui_alv_grid, так и cl_salv_table) происходит медленно.
05 февраля 2021
ФМ CS_BOM_EXPL_MAT_V2
Функциональный модуль CS_BOM_EXPL_MAT_V2 для разузлования спецификаций. Количество компонент будет рассчитано с учетом входного параметра EMENG.
01 февраля 2021
ФМ CS_WHERE_USED_MAT
Функциональный модуль CS_WHERE_USED_MAT для определения в каких спецификациях используется материал.
18 декабря 2020
14 декабря 2020
Загрузка данных из CSV-файла
Загрузка данных из CSV-файла, разделенных точкой с запятой. Используется ФМ TEXT_CONVERT_CSV_TO_SAP.
13 июля 2020
06 апреля 2020
Преобразование количества из одной единицы измерения в другую
Используем ФМ MATERIAL_CONVERT_QUANTITY или MD_CONVERT_MATERIAL_UNIT.
28 мая 2019
Серийные номера
Примеры добавления (ФМ SERNR_ADD_TO_PP) и удаления (ФМ SERNR_DEL_FROM_PP) серийных номеров из заказа.
14 мая 2019
Отслеживание изменений в пользовательских таблицах
Создаём объект документа изменений и выполняем запись истории изменения. Кратко.
22 апреля 2019
Получить список файлов в директории на сервере приложений
Пример использования функционального модуля EPS2_GET_DIRECTORY_LISTING.
14 ноября 2018
Расчет суммы налога по коду налога и базовой сумме
Используется функциональный модуль CALCULATE_TAX_FROM_NET_AMOUNT.
CALL FUNCTION 'CALCULATE_TAX_FROM_NET_AMOUNT'
EXPORTING
i_bukrs = lv_bukrs
i_mwskz = lv_mwskz
i_waers = lv_waers
i_wrbtr = lv_wrbtr
IMPORTING
e_fwste = lv_fwste
TABLES
t_mwdat = lt_mwdat
EXCEPTIONS
bukrs_not_found = 1
country_not_found = 2
mwskz_not_defined = 3
mwskz_not_valid = 4
ktosl_not_found = 5
kalsm_not_found = 6
parameter_error = 7
knumh_not_found = 8
kschl_not_found = 9
unknown_error = 10
account_not_found = 11
txjcd_not_valid = 12
OTHERS = 13.
13 ноября 2018
Сумма прописью
Используется функциональный модуль SPELL_AMOUNT.
DATA:
lv_p1(8) TYPE p VALUE '950',
ls_words TYPE spell.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = lv_p1
* currency = ' '
* filler = ' '
language = 'R'
IMPORTING
in_words = ls_words
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc EQ 0.
" ls_words-word содержит сумму прописью
ENDIF.
26 сентября 2018
Popup окно с выбором значения в виде таблицы ALV
Есть два (а может и больше) ФМа SRM_SELECTION_POPUP_WITH_ALV и REUSE_ALV_POPUP_TO_SELECT.
DATA:
lt_tab TYPE TABLE OF rbkp_key,
lv_selected_line TYPE i,
lv_canceled TYPE srmboolean,
ls_selfield TYPE slis_selfield,
lv_exit.
SELECT *
FROM rbkp
INTO CORRESPONDING FIELDS OF TABLE lt_tab
WHERE bldat BETWEEN '20180901' AND '20181231'.
CALL FUNCTION 'SRM_SELECTION_POPUP_WITH_ALV'
EXPORTING
im_title = 'Title'
im_tabname = 'RBKP_KEY'
im_startx = 5
im_stopx = 100
im_starty = 1
im_stopy = 10
IMPORTING
ex_selected_line = lv_selected_line
ex_canceled_by_user = lv_canceled
CHANGING
lt_outtab = lt_tab.
" Or
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = 'Это заголовок'
* i_selection = 'X'
* i_allow_no_selection =
i_zebra = 'X'
* i_screen_start_column = 0
* i_screen_start_line = 0
* i_screen_end_column = 0
* i_screen_end_line = 0
* i_checkbox_fieldname =
* i_linemark_fieldname =
* i_scroll_to_sel_line = 'X'
i_tabname = '1'
i_structure_name = 'RBKP_KEY'
* it_fieldcat =
* it_excluding =
* i_callback_program =
* i_callback_user_command =
* is_private =
IMPORTING
es_selfield = ls_selfield
e_exit = lv_exit
TABLES
t_outtab = lt_tab
EXCEPTIONS
program_error = 1
OTHERS = 2.
02 февраля 2018
Средство поиска со значениями из внутренней таблицы
Используем функциональный модуль F4IF_INT_TABLE_VALUE_REQUEST.
DATA: lt_tab1 TYPE TABLE OF ztab1,
lt_return_tab TYPE TABLE OF ddshretval,
ls_return_tab LIKE LINE OF lt_return_tab.
SELECT *
FROM ztab1
INTO TABLE lt_tab1.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* ddic_structure = ' '
retfield = 'DOCTYPE' " for example
* pvalkey = ' '
* dynpprog = ' '
* dynpnr = ' '
* dynprofield = ' '
* stepl = 0
* window_title =
* value = ' '
value_org = 'S'
* multiple_choice = ' '
* display = ' '
* callback_program = ' '
* callback_form = ' '
* callback_method =
* mark_tab =
* IMPORTING
* user_reset =
TABLES
value_tab = lt_tab1
* field_tab =
return_tab = lt_return_tab
* dynpfld_mapping =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE lt_return_tab INTO ls_return_tab INDEX 1.
IF sy-subrc EQ 0.
" ls_return_tab-fieldval содержит выбранное значение
ENDIF.
ENDIF.
01 февраля 2018
Чтение значений домена
Для чтения значений домена используем функциональный модуль BKK_DOMAIN_TEXTS_READ.
DATA: lt_domain_text TYPE bkkdc_t_domain_text.
CALL FUNCTION 'BKK_DOMAIN_TEXTS_READ'
EXPORTING
i_langu = sy-langu
i_domname = 'ZDOMNAME'
IMPORTING
et_domain_text = lt_domain_text.
" Внутренняя таблица lt_domain_text содержит значения домена
20 декабря 2017
Чтение набора, созданного в GS01
Имеем набор значений, созданный в транзакции GS01.
* Importing:
* iv_setname TYPE c " Set name
* Exporting:
* et_range TYPE TABLE " Range with values
DATA: lv_setid TYPE sethier-setid,
lt_set_values TYPE TABLE OF rgsb4.
FIELD-SYMBOLS: <lfs_set_values> LIKE LINE OF lt_set_values,
<lfs_range> TYPE any,
<lfs_value> TYPE any.
* Чтение набора
CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'
EXPORTING
shortname = iv_setname
IMPORTING
new_setid = lv_setid
* set_info =
* TABLES
* t_sets =
EXCEPTIONS
no_set_found = 1
no_set_picked_from_popup = 2
wrong_class = 3
wrong_subclass = 4
table_field_not_found = 5
fields_dont_match = 6
set_is_empty = 7
formula_in_set = 8
set_is_dynamic = 9
OTHERS = 10
.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'G_SET_GET_ALL_VALUES'
EXPORTING
setnr = lv_setid
TABLES
set_values = lt_set_values
EXCEPTIONS
set_not_found = 1
OTHERS = 2.
CHECK sy-subrc EQ 0.
LOOP AT lt_set_values ASSIGNING <lfs_set_values>.
INSERT INITIAL LINE INTO TABLE et_range ASSIGNING <lfs_range>.
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <lfs_range> TO <lfs_value>.
IF sy-subrc EQ 0.
<lfs_value> = 'I'.
ENDIF.
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <lfs_range> TO <lfs_value>.
IF sy-subrc EQ 0.
IF <lfs_set_values>-to IS NOT INITIAL.
<lfs_value> = 'BT'.
ELSE.
<lfs_value> = 'EQ'.
ENDIF.
ENDIF.
ASSIGN COMPONENT 'LOW' OF STRUCTURE <lfs_range> TO <lfs_value>.
IF sy-subrc EQ 0.
<lfs_value> = <lfs_set_values>-from.
ENDIF.
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <lfs_range> TO <lfs_value>.
IF sy-subrc EQ 0.
<lfs_value> = <lfs_set_values>-to.
ENDIF.
ENDLOOP.
19 марта 2017
Прибавить/отнять N лет/месяцев/дней к дате
Чтобы прибавить к дате некоторое количество лет/месяцев/дней, используем функциональный модуль RP_CALC_DATE_IN_INTERVAL.
Чтобы отнять от даты некоторое количество лет/месяцев/дней используем signum = '-'.
DATA: lv_days(2) TYPE n,
lv_months(2) TYPE n,
lv_years(2) TYPE n,
lv_date TYPE d.
" Прибавить к текущей дате 6 месяцев
lv_months = '6'.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = lv_days
months = lv_months
* signum = '+'
years = lv_years
IMPORTING
calc_date = lv_date.
Чтобы отнять от даты некоторое количество лет/месяцев/дней используем signum = '-'.
Подписаться на:
Сообщения (Atom)