понедельник, 2 февраля 2015 г.

Чистаем основные данные в правилах (чтобы подсматривать)

*"----------------------------------------------------------------------
   
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_chavlresult .
*"  Вот таким дерзким способом получаем структуру справочника 
    
CALL FUNCTION 'RSD_CHKTAB_GET_FOR_CHA_BAS' 
      
EXPORTING 
        i_chabasnm 
'ZBISMTCNV' 
      
IMPORTING 
        e_chktab   
l_chktab
                     
EXCEPTIONS 
                     
OTHERS .
    
IF sy- subrc NE 0 EXITENDIF .

    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 EXITENDIF .

    
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, как и для обычного признака.



Комментариев нет:

Отправить комментарий