读取批次特性

FUNCTION zmm_get_ausp.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_MATNR) TYPE  MATNR
*"     VALUE(I_WERKS) TYPE  WERKS_D
*"     VALUE(I_CHARG) TYPE  CHARG_D
*"  TABLES
*"      IT_CHARS STRUCTURE  ZSTMM002
*"      ET_VALUES STRUCTURE  ZSTMM003
*"----------------------------------------------------------------------

*  CHECK it_chars[] IS NOT INITIAL.
  DATA l_objek TYPE inob-objek.
  DATA l_date TYPE d.
  DATA l_i TYPE i.
  DATA l_c(15).
  DATA l_quan TYPE menge_d.

  LOOP AT it_chars.
    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
      EXPORTING
        input  = it_chars-atnam
      IMPORTING
        output = it_chars-atinn.
    MODIFY it_chars.
  ENDLOOP.

  SELECT atinn,atfor INTO TABLE @DATA(lt_cabn) FROM cabn
    FOR ALL ENTRIES IN @it_chars
    WHERE atinn = @it_chars-atinn.

  SELECT SINGLE matnr, werks, charg INTO @DATA(ls_key) FROM mcha
    WHERE matnr = @i_matnr
    AND   werks = @i_werks
    AND   charg = @i_charg.

  l_objek = ls_key.

  SELECT SINGLE cuobj INTO @DATA(l_cuobj) FROM inob WHERE objek = @l_objek.
  SELECT * INTO TABLE @DATA(lt_ausp) FROM ausp
     WHERE objek = @l_cuobj.

  LOOP AT lt_ausp INTO DATA(ls_ausp).
    READ TABLE lt_cabn INTO DATA(ls_cabn) WITH KEY atinn = ls_ausp-atinn.
    IF sy-subrc = 0.
      MOVE ls_ausp-atinn TO et_values-atinn.
      CALL FUNCTION 'CONVERSION_EXIT_ATINN_OUTPUT'
        EXPORTING
          input  = et_values-atinn
        IMPORTING
          output = et_values-atnam.

      CASE ls_cabn-atfor.
        WHEN 'DATE'.
          MOVE ls_ausp-atflv TO l_i.
          MOVE l_i TO  ls_ausp-atwrt.
          CONDENSE ls_ausp-atwrt NO-GAPS.
          et_values-atwrt = ls_ausp-atwrt.
        WHEN 'CHAR'.
          et_values-atwrt = ls_ausp-atwrt.
          CONDENSE ls_ausp-atwrt.
        WHEN 'NUM'.
          MOVE ls_ausp-atflv TO l_quan.
          MOVE l_quan TO  ls_ausp-atwrt.
          CONDENSE ls_ausp-atwrt NO-GAPS.
          et_values-atwrt = ls_ausp-atwrt.
        WHEN OTHERS.
      ENDCASE.
      APPEND et_values.
      CLEAR  et_values.
    ENDIF.
  ENDLOOP.

ENDFUNCTION.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值