*"----------------------------------------------------------------------
DATA : l_chavl TYPE rsd_chavl.
l_chavl = source_fields-/bic/nccredit .
CALL FUNCTION 'RSAU_READ_MASTER_DATA'
EXPORTING
i_iobjnm = 'NCCHCRKK'
i_chavl = l_chavl
i_attrnm = 'NCCRKK'
i_date = l_date
IMPORTING
e_attrval = l_crkk
EXCEPTIONS
OTHERS.
DATA : l_chavl TYPE rsd_chavl.
l_chavl = source_fields-/bic/nccredit .
CALL FUNCTION 'RSAU_READ_MASTER_DATA'
EXPORTING
i_iobjnm = 'NCCHCRKK'
i_chavl = l_chavl
i_attrnm = 'NCCRKK'
i_date = l_date
IMPORTING
e_attrval = l_crkk
EXCEPTIONS
OTHERS.
*-----------------------------------------------------------------------
А вот чуть более дерзко:
*"----------------------------------------------------------------------
DATA :
l_chavl TYPE rsd_chavl ,
l_attrval TYPE /bic/oizenzid ,
l_chktab TYPE rsdchkview ,
l_dref TYPE REF TO data .
FIELD-SYMBOLS :
<fs_structure> TYPE any ,
<fs_zumrez> TYPE /bic/oizumrez ,
<fs_zumren> TYPE /bic/oizumren .
*-----------------------------------------------------------------------
*" ZLCMENGE: Из поля SMENGE - преобразовать значение в БЕИ
*" в соответствии со «Справочник ЕИ», ZBISMTCNV
*" (умножить на значение в поле «ZUMREZ», и делить на «ZUMREN»)
BREAK-POINT ID break .
CLEAR : l_chavl, result .
*" Вот таким дерзким способом получаем структуру справочника
CALL FUNCTION 'RSD_CHKTAB_GET_FOR_CHA_BAS'
EXPORTING
i_chabasnm = 'ZBISMTCNV'
IMPORTING
e_chktab = l_chktab
EXCEPTIONS
OTHERS .
IF sy- subrc NE 0 . EXIT. ENDIF .
l_chavl = source_fields -/bic/zunit .
CREATE DATA l_dref TYPE ( l_chktab ).
ASSIGN l_dref ->* TO <fs_structure>.
CALL FUNCTION 'RSAU_READ_MASTER_DATA'
EXPORTING
i_iobjnm = 'ZBISMTCNV'
i_chavl = l_chavl
IMPORTING
e_structure = <fs_structure>
EXCEPTIONS
OTHERS .
IF sy- subrc NE 0 . EXIT. ENDIF .
ASSIGN COMPONENT '/BIC/ZUMREZ'
OF STRUCTURE <fs_structure>
TO <fs_zumrez> .
ASSIGN COMPONENT '/BIC/ZUMREN'
OF STRUCTURE <fs_structure>
TO <fs_zumren> .
result = source_fields -/bic/zlcmenge * <fs_zumrez> / <fs_zumren> .
*-----------------------------------------------------------------------
Ну ок, а если у нас составной ключ?
Про ф.м. 'RSAU_READ_MASTER_DATA'.
В программе определяете структуру из двух полей. Первое поле - compounding атрибут, второе - признак.
Заполняете поля структуры вашими значениями. Потом переменной chavl типа RSD_CHAVL присваиваете значение переменной структуры. Автоматически выполнится преобразование типов данных.
Далее вызываете RSAU_READ_MASTER_DATA с параметром i_chavl = chavl, как и для обычного признака.
Комментариев нет:
Отправить комментарий