• BAPI创建MIGO


    * Program Name :   ZGER_BAPI_17                                    *
    * describe:                                                  *
    * Created by   :                                             *
    * Created on   :                                             *
    *                                                            *
    *------------------------------------------------------------*
    REPORT zger_bapi_17.


    TABLES:mseg, mkpf, rm07m, t158b,t001l, msegk.
    "凭证段:物料 抬头:物料凭证 输入输出字段:模块存储SAPMM07M
    "检查表: 业务处理码的移动类型 仓储地点 物料部分的帐户分配字段

    DATA: mat_doc LIKE bapi2017_gm_head_ret-mat_doc."物料凭证编号

    DATA:save_code   LIKE sy-ucomm,
         ok_code     LIKE sy-ucomm,
         loc_msg(50),
         gmnga       LIKE afru-gmnga,
         mtsnr       LIKE  rm07m-mtsnr,
         errflag..

    DATA:BEGIN OF gt_afpo OCCURS 0.
        INCLUDE STRUCTURE afpo.
    DATA:END OF gt_afpo.

    DATA:gmhead LIKE bapi2017_gm_head_01.

    DATABEGIN OF gmcode.                            "为 BAPI 货物移动分配事务代码
        INCLUDE STRUCTURE bapi2017_gm_code.
    DATAEND OF gmcode.

    DATABEGIN OF mthead.
        INCLUDE STRUCTURE bapi2017_gm_head_ret.   "物料凭证编号年度
    DATAEND OF mthead.

    DATABEGIN OF itab OCCURS 100.
        INCLUDE STRUCTURE bapi2017_gm_item_create.
    DATAEND OF itab.

    DATABEGIN OF errmsg OCCURS 10.
        INCLUDE STRUCTURE bapiret2.
    DATAEND OF errmsg.


    SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME.
    PARAMETERS: p_01 TYPE ebeln."采购订单
    PARAMETERS: p_02 TYPE t001l-lgort."库存地点
    PARAMETERS: p_03 TYPE erfmg."录入数量
    SELECTION-SCREEN  END OF BLOCK block.

    INITIALIZATION.
      t001l-lgort '3000'.  "仓储地点-库存地点
      mseg-lgort '3000'.  "库存地点
      mseg-werks '2010'.   "工厂
      t158b-bwart '101'.   "移动类型(库存管理)
      rm07m-werks '2010'.  "工厂
      rm07m-lgort '3000'"库存地点
      mseg-erfme 'ST'.     "条目单位
      gmcode-gm_code '05'"为 BAPI 货物移动分配事务代码

      gmhead-pstng_date = sy-datum."mkpf-bldat.
      gmhead-doc_date = sy-datum."mkpf-budat.
      gmhead-pr_uname = sy-uname.

      itab-material '000000000000001217'."物料编号
      itab-plant '2010'."工厂
      itab-stge_loc '3000'."仓储
      itab-move_type '101'."移动类型(库存管理)
      "ITAB-SPEC_STOCK = 'BG01'.
      itab-entry_qnt '5'."以录入项单位表示的数量
      itab-entry_uom 'ST'."条目单位
      itab-po_number = p_01."采购订单号
      itab-po_item '00001'.
      itab-mvt_ind 'B'.
      "itab-move_mat = '3000000098'.  "收货/发货物料
      "itab-move_plant = '3000'.      "
      "itab-move_stloc = 'BG01'.      "收货/发货库存地点
      "itab-nb_slips = 1.
      itab-vendor '0000000183'."供应商账号
      itab-orderpr_un_iso '101'."采购组
      APPEND itab.

    START-OF-SELECTION.

      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          goodsmvt_header  = gmhead
          goodsmvt_code    = gmcode
    *     TESTRUN          = ' '
    *     GOODSMVT_REF_EWM =
        IMPORTING
          goodsmvt_headret = mthead
          materialdocument = mat_doc
    *     MATDOCUMENTYEAR  =
        TABLES
          goodsmvt_item    = itab
    *     GOODSMVT_SERIALNUMBER         =
          return           = errmsg
    *     GOODSMVT_SERV_PART_DATA       =
    *     EXTENSIONIN      =
        .
     BREAK-POINT.

      LOOP AT errmsg.
        CLEAR loc_msg.
        CONCATENATE '过帐成功!' errmsg-message INTO loc_msg.
        IF errmsg-type EQ 'E'.
          MESSAGE errmsg-message TYPE 'E'.
          errflag 'X'.
        ELSE.
          MESSAGE loc_msg TYPE 'S'.
        ENDIF.
      ENDLOOP.

      IF errflag IS INITIAL.
        COMMIT WORK AND WAIT.
        CLEAR loc_msg.
        IF sy-subrc NE 0.
          MESSAGE '过账操作出现错误,请稍后重试' TYPE 'E'.
          EXIT.
        ELSE.
          CONCATENATE '物料凭证' mat_doc '已成功创建' INTO loc_msg.
          MESSAGE i000(znyj13WITH loc_msg.

          gmhead-ref_doc_no ''."参考凭证编号
          gmhead-header_txt ''."凭证抬头文本
          mseg-matnr ''.       "物料编号
          msegk-mat_kdauf ''.  "评估销售定单库存的销售定单号
          msegk-mat_kdpos ''.  "评估销售订单库存的销售订单项目
          mseg-erfmg ''.       "以录入项单位表示的数量
          rm07m-mtsnr ''.      "外部物料单编号
          gmnga ''.            "按订单单位的先前确认结果
          mkpf-bktxt ''.       "凭证抬头文本
        ENDIF.
      ELSE.
        MESSAGE '这不是真确的发料单或者已经创建凭证' TYPE 'E'.
      ENDIF.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait 'X'
    *   IMPORTING
    *     RETURN        =
        .

  • 相关阅读:
    一 基础--进制转化
    七牛云上传视频并截取第一帧为图片(js实现)
    FNScanner二维码接口openView自定义扫码Demo
    UIPickerView 模块示例demo
    vPlayer 模块Demo
    doT的高级用法及loadData的使用
    acmPush模块示例demo
    UIChatBox模块示例demo
    分享一款基于aui框架的图文发布界面
    基于js的APP多语言处理
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12431361.html
Copyright © 2020-2023  润新知