Beispiel für Lesen Klassenmerkmal zum Batch (Materialnummer + Charge, Transaktion MSC3N)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche
FUNCTION YLOC_GET_CLASS_CHARGE.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_MATNR) TYPE  MATNR
*"     VALUE(I_CHARG) TYPE  CHARG_D
*"  EXPORTING
*"     VALUE(E_CHARG) TYPE  CHARG_D
*"----------------------------------------------------------------------

  DATA:
    ld_objectname      TYPE bapi1003_key-object,
    ld_objectkey       TYPE bapi1003_key-object_guid,
    lt_allocvaluesnum  TYPE STANDARD TABLE OF bapi1003_alloc_values_num,
    lt_allocvalueschar TYPE STANDARD TABLE OF bapi1003_alloc_values_char,
    ls_allocvalueschar TYPE bapi1003_alloc_values_char,
    lt_allocvaluescurr TYPE STANDARD TABLE OF bapi1003_alloc_values_curr,
    lt_return          TYPE STANDARD TABLE OF bapiret2.

  CONCATENATE i_matnr i_charg INTO ld_objectname.

  CALL FUNCTION 'BAPI_OBJCL_GET_KEY_OF_OBJECT'
    EXPORTING
      objectname         = ld_objectname
      objecttable        = 'MCH1'
      classtype          = '023'
      create_missing_key = abap_true
    IMPORTING
      clobjectkeyout     = ld_objectkey
    TABLES
      return             = lt_return.

  CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
    EXPORTING
      clobjectkey     = ld_objectkey
      classnum        = 'CHARGE_V1'
    TABLES
      allocvaluesnum  = lt_allocvaluesnum
      allocvalueschar = lt_allocvalueschar
      allocvaluescurr = lt_allocvaluescurr
      return          = lt_return.

  READ TABLE lt_allocvalueschar WITH KEY charact = 'LAGERCHARGE' INTO ls_allocvalueschar.
  IF sy-subrc IS INITIAL.
    e_charg = ls_allocvalueschar-value_char.
  ENDIF.

ENDFUNCTION.