segunda-feira, 17 de março de 2014

Classificação e características de objeto - Funções úteis

======== Busca características de uma classe.
  CALL FUNCTION 'BAPI_CLASS_GET_CHARACTERISTICS'
    EXPORTING
      classnum        f_classnum  "Nome da classe
      classtype       '023' "Tipo da classe
    TABLES
      characteristics gt_charact 
      char_values     gt_charact_val.



characteristics = Tabela retorna as características e tipos
char_values     = Tabela com os valores fixos de uma característica


======== Buscar detalhes de um objeto

  CLEAR gw_class_key.
  CONCATENATE l_matnr f_charg INTO gw_class_key-object.
  gw_class_key-objecttable 'MCH1'.
  gw_class_key-classnum    f_classnum. "Nome da Classe de objetos
  gw_class_key-classtype   '023'.

  CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
    EXPORTING
      objectkey       gw_class_key-object
      objecttable     gw_class_key-objecttable
      classnum        gw_class_key-classnum
      classtype       gw_class_key-classtype
    TABLES
      allocvaluesnum  gt_num
      allocvalueschar gt_char
      allocvaluescurr gt_curr
      return          gt_return.



============== Separação das características por tipo..
Tipos NUM e DATE para tabela   allocvaluesnum
Tipo CHAR para tabela allocvalueschar
Tipo CURR para tabela allocvaluescurr

================ Alteração de classificação
  CALL FUNCTION 'BAPI_OBJCL_CHANGE'
    EXPORTING
      objectkey          l_object
      objecttable        'MCH1'
      classnum           l_classnum
      classtype          l_classtype
      keydate            sy-datum
    TABLES
      allocvaluesnumnew  lt_num_charac
      allocvaluescharnew lt_chr_charac
      allocvaluescurrnew lt_cur_charac
      return             lt_return.  


============= exemplo

        CASE lw_charact-data_type.
          WHEN 'CHAR'.
            lw_allocvaluescharnew-charact ls_comp-name.
            lw_allocvaluescharnew-value_char <fs_comp>.
            APPEND lw_allocvaluescharnew TO lt_chr_charac.
          WHEN 'NUM' OR 'DATE'.
            lw_allocvaluesnumnew-charact ls_comp-name.
            lw_allocvaluesnumnew-value_from <fs_comp>.
            lw_allocvaluesnumnew-value_to   <fs_comp>.
            APPEND lw_allocvaluesnumnew TO lt_num_charac.
          WHEN 'CURR'.
            lw_allocvaluescurrnew-charact ls_comp-name.
            lw_allocvaluescurrnew-value_from <fs_comp>.
            lw_allocvaluescurrnew-value_to   <fs_comp>.
            APPEND lw_allocvaluescurrnew TO lt_cur_charac.
        ENDCASE. 

Nenhum comentário:

Postar um comentário