You are on page 1of 3

*Start 

of GK001.
*Fetching Plants from Tvarvc
SELECT SINGLE low
  FROM tvarvc
  INTO @DATA(lw_eumdr_plants)
  WHERE name = @lc_frs247_eumdr_plant
  AND   low  = @caufvd-werks.
IF sy-subrc = 0 AND lw_eumdr_plants IS NOT INITIAL.

*Converting material into actual Sap material number
  CALL FUNCTION 'CONVERSION_EXIT_ZMATI_INPUT'
    EXPORTING
      input  = caufvd-matnr
    IMPORTING
      output = caufvd-matnr.

  IF caufvd-matnr IS NOT INITIAL.
*Fetching Batch managed indicator
    SELECT SINGLE xchpf
      FROM mara
      INTO @DATA(lw_btch_mng)
      WHERE matnr = @caufvd-matnr.

    IF sy-subrc = 0 AND lw_btch_mng = abap_true.
*Fetching Serial numbers if Material is batch managed
      SELECT sernp
        FROM marc
        INTO TABLE @DATA(lt_slno)
        WHERE matnr = @caufvd-matnr.

      IF sy-subrc = 0 AND lt_slno IS NOT INITIAL.
*If material is both batch managed and serial managed then fetching Defined 
DOM

          CALL FUNCTION 'BAPI_BATCH_GET_DETAIL'
            EXPORTING
              material        = caufvd-matnr
              batch           = afpod-charg
              plant           = caufvd-werks
            IMPORTING
              batchattributes = lwa_batchdet.

        IF sy-subrc = 0 AND lwa_batchdet-free_date1 IS NOT INITIAL.
*Populating Defined DOM and DOM text into output parameters
          CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
            EXPORTING
              date_internal            = lwa_batchdet-free_date1
            IMPORTING
              date_external            = w_def_dom
            EXCEPTIONS
              date_internal_is_invalid = 1
              OTHERS                   = 2.
          IF sy-subrc EQ 0.
             w_dom_text = lc_def_dom.
          ENDIF.
        ENDIF.
      ENDIF.

    ELSE.  "IF sy-subrc = 0 AND lw_btch_mng = abap_true.

* if material is not batch managed then fetching Object key
      CALL FUNCTION 'QMSP_MATERIAL_BATCH_CLASS_READ'
        EXPORTING
          i_matnr                = caufvd-matnr
          i_mara_level           = lw_mara_level
        IMPORTING
          e_objec                = lw_objkey
        EXCEPTIONS
          no_class               = 1
          internal_error_classif = 2
          no_change_service      = 3
          OTHERS                 = 4.
      IF sy-subrc EQ 0 AND lw_objkey IS NOT INITIAL.

*If object key is found then fetching Material class characteristics values
        CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
          EXPORTING
            objectkey       = lw_objkey
            objecttable     = lc_mara
            classnum        = lc_defined_dom
            classtype       = lc_001
          TABLES
            allocvaluesnum  = lt_num_values
            allocvalueschar = lt_char_values
            allocvaluescurr = lt_curr_values
            return          = lt_return.

        IF lt_char_values[] IS NOT INITIAL.
*If Characteristics values is present then checking DEFINED_DOM_OPTION chara
cteristics
          READ TABLE lt_char_values ASSIGNING FIELD-SYMBOL(<lfs_char_values>) 
WITH KEY charact = lc_dom_opt.
          IF sy-subrc EQ 0 AND <lfs_char_values>-value_neutral EQ lc_s.
* If value is S then passing Production order Strat date as Defined DOM nd 
DOM text
            CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
            EXPORTING
              date_internal            = caufvd-gstrp
            IMPORTING
              date_external            = w_def_dom
            EXCEPTIONS
              date_internal_is_invalid = 1
              OTHERS                   = 2.
          IF sy-subrc EQ 0.
             w_dom_text = lc_def_dom.
          ENDIF.
          ENDIF."IF sy-subrc EQ 0 AND <lfs_char_values>-value_neutral EQ lc_
s.
        ENDIF."IF lt_char_values[] IS NOT INITIAL.
      ENDIF. "IF sy-subrc eq 0 and lw_objkey is NOT INITIAL.
    ENDIF."IF sy-subrc = 0 AND lw_btch_mng = abap_true.
  ENDIF."IF caufvd-matnr IS NOT INITIAL.
ENDIF."IF sy-subrc = 0 AND lw_eumdr_plants IS NOT INITIAL.
*End of GK001.

You might also like