gmhead-pstng_date = p_bldat.
  gmhead-doc_date = p_budat.
  gmhead-pr_uname = sy-uname.
  gmhead-header_txt = p_bktxt.
*  gmhead-bill_of_lading = p_xblnr.
  gmhead-ref_doc_no = p_xblnr.
*  REF_DOC_NO
  gmcode-gm_code = '04'.
*  mthead-doc_year = p_budat(4).


  REFRESH jtab_321.
  CLEAR jtab_321.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = 40
      text       = '正在处理转非限制库存和冻结库存数据,请稍候......!'
    EXCEPTIONS
      OTHERS     = 1.

*** 321 和 350 一起做 *****
  LOOP AT it_itab WHERE marked = 'X'.
    CLEAR jtab_321.


*    jtab_321-mvt_ind    = ' '.
    jtab_321-material   = it_itab-matnr.
    jtab_321-plant      = it_itab-werks.
    jtab_321-stge_loc   = it_itab-lgort.
    jtab_321-batch = it_itab-charg.

    jtab_321-move_mat = it_itab-matnr.
    jtab_321-move_plant = it_itab-werks.
    jtab_321-move_stloc = it_itab-lgort.
    jtab_321-move_batch = it_itab-charg.

    IF it_itab-sobkz = 'E'. " 销售订单库存

      jtab_321-spec_stock = it_itab-sobkz.

*      jtab_321-val_sales_ord = it_itab-kdauf.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = it_itab-kdauf
        IMPORTING
          output = jtab_321-val_sales_ord.

 

      jtab_321-val_s_ord_item = it_itab-kdpos.

    ELSEIF it_itab-sobkz = 'K'." 供应商库存
      jtab_321-spec_stock = it_itab-sobkz.

*      jtab_321-vendor = it_itab-lifnr.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = it_itab-lifnr
        IMPORTING
          output = jtab_321-vendor.

    ENDIF.

    jtab_321-entry_uom = it_itab-meins_input.

    IF it_itab-menge_free <> 0.
      jtab_321-entry_qnt  = it_itab-menge_free.
      jtab_321-move_type  = '321'.
      APPEND jtab_321.
    ENDIF.

    IF it_itab-menge_block <> 0.
      jtab_321-entry_qnt  = it_itab-menge_block.
      jtab_321-move_type  = '350'.
      APPEND jtab_321.
    ENDIF.

*    CLEAR jtab_321.

  ENDLOOP.

  REFRESH l_errmsg.
  CLEAR l_errmsg.

  IF jtab_321[] IS NOT INITIAL.

    REFRESH l_errmsg.
    CLEAR l_errmsg.

    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header             = gmhead
        goodsmvt_code               = gmcode
        testrun                     = l_testrun

      IMPORTING
*      MATERIALDOCUMENT            =
*      MATDOCUMENTYEAR             =
        goodsmvt_headret            = mthead
      TABLES
        goodsmvt_item               = jtab_321[]
*   GOODSMVT_SERIALNUMBER       =
        return                      = l_errmsg.

    LOOP AT l_errmsg WHERE type EQ 'E'.
      MOVE-CORRESPONDING l_errmsg TO g_errmsg .
      APPEND g_errmsg.
      CLEAR g_errmsg.
    ENDLOOP.
  ENDIF.

posted on 2009-07-21 16:47  学无止境 达者为先  阅读(752)  评论(0编辑  收藏  举报