SAP BAPI BAPI OBJCL GETCLASSES

From SapWiki
Revision as of 21:46, 24 June 2026 by WikiSysop (talk | contribs) (Created page with " <nowiki> *--------------------------------------------------------------------* DEFINE mc_move_allocvalueschar. *-----------------------------------------------------------...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
*--------------------------------------------------------------------*
  DEFINE mc_move_allocvalueschar.
*--------------------------------------------------------------------*
    move ls_allocvalueschar-charact to gs_data-charact_&1.
    move ls_allocvalueschar-value_char to gs_data-value_&1.
  END-OF-DEFINITION.

*--------------------------------------------------------------------*
  DEFINE mc_move_allocvaluescurr.
*--------------------------------------------------------------------*
    move ls_allocvaluescurr-charact to gs_data-charact_&1.

    call function 'CTBP_CONVERT_VALUE_INT_TO_EXT'
      exporting
       charactname             =  ls_allocvaluescurr-charact
        value_from              = ls_allocvaluescurr-value_from
        value_to                = ls_allocvaluescurr-value_to
        value_relation          = ls_allocvaluescurr-value_relation
*   CHARACTDETAIL           =
     importing
       value_external          =  ld_value_external
 exceptions
   charact_not_found       = 1
   no_authority            = 2
   wrong_data_type         = 3
   internal_error          = 4
   wrong_input             = 5
   wrong_format            = 6
   others                  = 7
              .
    if sy-subrc <> 0.
      clear ld_value_external.
    endif.
    move ld_value_external to gs_data-value_&1.
  END-OF-DEFINITION.

*--------------------------------------------------------------------*
  DEFINE mc_move_allocvaluesnum.
*--------------------------------------------------------------------*
    move ls_allocvaluesnum-charact to gs_data-charact_&1.

    call function 'CTBP_CONVERT_VALUE_INT_TO_EXT'
    exporting
   charactname             =  ls_allocvaluesnum-charact
    value_from              = ls_allocvaluesnum-value_from
    value_to                = ls_allocvaluesnum-value_to
    value_relation          = ls_allocvaluesnum-value_relation
*   CHARACTDETAIL           =
    importing
     value_external          =  ld_value_external
    exceptions
    charact_not_found       = 1
    no_authority            = 2
    wrong_data_type         = 3
    internal_error          = 4
    wrong_input             = 5
    wrong_format            = 6
    others                  = 7
          .
    if sy-subrc <> 0.
      clear ld_value_external.
    endif.
    move ld_value_external to gs_data-value_&1.
  END-OF-DEFINITION.

FORM select_data.
  DATA: lt_alloclist TYPE TABLE OF  bapi1003_alloc_list,
        lt_allocvalueschar TYPE TABLE OF  bapi1003_alloc_values_char,
        lt_allocvaluescurr TYPE TABLE OF  bapi1003_alloc_values_curr,
        lt_allocvaluesnum TYPE TABLE OF  bapi1003_alloc_values_num,
        lt_bapireturn LIKE TABLE OF bapiret2,
        ls_alloclist LIKE LINE OF lt_alloclist,
        ls_allocvalueschar TYPE bapi1003_alloc_values_char,
        ls_allocvaluescurr TYPE bapi1003_alloc_values_curr,
        ls_allocvaluesnum TYPE bapi1003_alloc_values_num,
        ld_object TYPE bapi1003_key-object,
        ld_cont(2) TYPE n,
        ld_value_external TYPE  atwrt.

  SELECT  equnr
          INTO CORRESPONDING FIELDS OF TABLE gT_equipos
          FROM  v_equi
         WHERE  equnr  IN s_equnr
         AND    eqtyp  IN s_eqtyp
         AND    swerk  IN s_swerk.

  LOOP AT  gt_equipos INTO gs_equipos.

    CLEAR: lt_alloclist[],
           lt_allocvalueschar[],
           lt_allocvaluescurr[],
           lt_allocvaluesnum[].
    CLEAR gs_data.

    ld_object = gs_equipos-equNR.
    CALL FUNCTION 'BAPI_OBJCL_GETCLASSES'
      EXPORTING
        objectkey_imp         = ld_object
        objecttable_imp       = 'EQUI'
        classtype_imp         = '002'
*   READ_VALUATIONS       =
*   KEYDATE               = SY-DATUM
*   LANGUAGE              = SY-LANGU
      TABLES
        alloclist             = lt_alloclist
        allocvalueschar       = lt_allocvalueschar
        allocvaluescurr       = lt_allocvaluescurr
        allocvaluesnum        = lt_allocvaluesnum
        return                = lt_bapireturn
              .

    LOOP AT lt_alloclist INTO ls_alloclist.
      gs_data-classnum = ls_alloclist-classnum.
      gs_data-classtype = ls_alloclist-classtype.
    ENDLOOP.
    CHECK SY-SUBRC = 0.

    ld_cont = 1.
    LOOP AT lt_allocvalueschar INTO ls_allocvalueschar.
      CASE ld_cont.
        WHEN 1.
          mc_move_allocvalueschar 01.
        WHEN 2.
          mc_move_allocvalueschar 02.
        WHEN 3.
          mc_move_allocvalueschar 03.
        WHEN 4.
          mc_move_allocvalueschar 04.
        WHEN 5.
          mc_move_allocvalueschar 05.
        WHEN 6.
          mc_move_allocvalueschar 06.
        WHEN 7.
          mc_move_allocvalueschar 07.
      ENDCASE.
      ADD 1 TO ld_cont.
    ENDLOOP.

    LOOP AT lt_allocvaluescurr INTO ls_allocvaluescurr.
      CASE ld_cont.
        WHEN 1.
          mc_move_allocvaluescurr 01.
        WHEN 2.
          mc_move_allocvaluescurr 02.
        WHEN 3.
          mc_move_allocvaluescurr 03.
        WHEN 4.
          mc_move_allocvaluescurr 04.
        WHEN 5.
          mc_move_allocvaluescurr 05.
        WHEN 6.
          mc_move_allocvaluescurr 06.
        WHEN 7.
          mc_move_allocvaluescurr 07.
      ENDCASE.
      ADD 1 TO ld_cont.
    ENDLOOP.


    LOOP AT lt_allocvaluesnum INTO ls_allocvaluesnum.
      CASE ld_cont.
        WHEN 1.
          mc_move_allocvaluesnum 01.
        WHEN 2.
          mc_move_allocvaluesnum 02.
        WHEN 3.
          mc_move_allocvaluesnum 03.
        WHEN 4.
          mc_move_allocvaluesnum 04.
        WHEN 5.
          mc_move_allocvaluesnum 05.
        WHEN 6.
          mc_move_allocvaluesnum 06.
        WHEN 7.
          mc_move_allocvaluesnum 07.
      ENDCASE.
      ADD 1 TO ld_cont.
    ENDLOOP.

    APPEND gs_data TO gt_data.

  ENDLOOP.

ENDFORM.                    "select_data