sap-ronny

前台:MI01

[转载]SAP盘点:创建盘点凭证BAPI_MATPHYSINV_CREATE_MULT
输入工厂,库存地点,在记账冻结打X,具体什么意思F1查看
 
回车后,填写物料,回车,项目号会自动变更
[转载]SAP盘点:创建盘点凭证BAPI_MATPHYSINV_CREATE_MULT

BAPI:BAPI_MATPHYSINV_CREATE_MULT
查找bapi参见:http://blog.sina.com.cn/s/blog_c0978c9b0102uxji.html
[转载]SAP盘点:创建盘点凭证BAPI_MATPHYSINV_CREATE_MULT


 
 
*&---------------------------------------------------------------------*
*&创建盘点凭证 MI01
*&---------------------------------------------------------------------*
TABLES:MARA.

DATA: IT_ITEM       LIKE TABLE   OF BAPI_PHYSINV_COUNT_ITEMS WITH HEADER LINE,
           RET_MSG     LIKE TABLE  OF BAPIRET2                                    WITH HEADER LINE,
          G_INVDOC    LIKE IKPF-IBLNR.
*&--------------------------------------------------------------------*
*&  SEKECTION-SCREEN
*&--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

PARAMETERS:P_WERKS LIKE MARD-WERKS        DEFAULT \'RYL5\',
                        P_LGORT LIKE MARD-LGORT         DEFAULT \'3100\',
                       P_MATNR LIKE MARD-MATNR       DEFAULT \'0609990060199112\',
                       P_DATE  LIKE SY-DATUM                DEFAULT \'20140618\'.
SELECTION-SCREEN END OF BLOCK BLK1.

*&---------------------------------------------------------------------*
*&  START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*& 创建盘点凭证
  PERFORM CREATE_INVENTORY_DOCUMENT.

*&---------------------------------------------------------------------*
*&      Form  CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CREATE_INVENTORY_DOCUMENT .

  DATA:L_HEAD TYPE BAPI_PHYSINV_CREATE_HEAD,
       ITEM   LIKE TABLE OF BAPI_PHYSINV_CREATE_ITEMS WITH HEADER LINE .

  L_HEAD-PLANT          = P_WERKS.
  L_HEAD-STGE_LOC     = P_LGORT.
  L_HEAD-DOC_DATE   = P_DATE.
  L_HEAD-PLAN_DATE = P_DATE. "盘点日期
  L_HEAD-PLAN_DATE = P_DATE. "凭证日期


*  GS_HEAD-PLANT          = P_WERKS."工厂
*  GS_HEAD-STGE_LOC     = P_LGORT."库存地点
*  GS_HEAD-PLAN_DATE = P_BLDAT."盘点日期
*  GS_HEAD-DOC_DATE  = P_GIDAT."凭证日期

*  GS_HEAD-PHYS_INV_NO = P_INVNU."实际库存编号
*  GS_HEAD-PHYS_INV_REF = P_XBLNI."库存盘点参考

*SPEC_STOCK 特殊库存标识
*POST_BLOCK 由于实际盘点而冻结记帐
*FREEZEBOOKINV 冻结帐面库存
*DEL_BATCHES  XLVOCA 包括带有删除标识的批量
*GROUPING_TYPE 分组标准类型

*    GT_ITEM-MATERIAL       = GT_IT_DATA-MATNR.               "物料号码
*    GT_ITEM-BATCH            = GT_IT_DATA-CHARG.                "批次编号
**    GT_ITEM-STOCK_TYPE = GT_IT_DATA-BSTAR.                  "库存类型(1~4)
*    APPEND GT_ITEM.
*    CLEAR GT_ITEM.


  ITEM-MATERIAL    = P_MATNR.
  ITEM-STOCK_TYPE = 1.

  APPEND ITEM.
  CLEAR  ITEM.
  CALL FUNCTION \'BAPI_MATPHYSINV_CREATE_MULT\'
    EXPORTING
      HEAD     = L_HEAD
    TABLES
      ITEMS    = ITEM[]
      RETURN = RET_MSG.

  PERFORM COMMIT_OPERATION.

ENDFORM.                    " CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
*&      Form  COMMIT_OPERATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM COMMIT_OPERATION .

  READ TABLE RET_MSG WITH KEY TYPE = \'E\'.
  IF SY-SUBRC <> 0.
    CALL FUNCTION \'BAPI_TRANSACTION_COMMIT\'
      EXPORTING
        WAIT = \'X\'.
    READ TABLE RET_MSG INDEX 1.
    IF SY-SUBRC = 0.
      WRITE:/ \'document:\',RET_MSG-MESSAGE_V1.
    ENDIF.
  ELSE.
    LOOP AT RET_MSG.
      WRITE:/ \'erro message:\',RET_MSG-MESSAGE.
    ENDLOOP.
  ENDIF.

ENDFORM.                    " COMMIT_OPERATION
 
***********************************************

修改盘点数量MI04过账Mi07:BAPI_MATPHYSINV_COUNT/BAPI_MATPHYSINV_POSTDIFF

 (2014-08-18 08:28:56)
修改盘点数量、过账  
1、MI04: 库存盘点  
2、MI07过账  
3、MI09 = MI01 + MI04
 
 
【MI04: 库存盘点】
修改盘点数量MI04过账Mi07:BAPI_MATPHYSINV_COUNT/BAPI_MATPHYSINV_POSTDIFF
回车输入盘点数量
修改盘点数量MI04过账Mi07:BAPI_MATPHYSINV_COUNT/BAPI_MATPHYSINV_POSTDIFF
点保存即可
 
【MI07过账】
MI07:
修改盘点数量MI04过账Mi07:BAPI_MATPHYSINV_COUNT/BAPI_MATPHYSINV_POSTDIFF

系统根据账面库存数量和用户输入的盘点数量,计算出差额。检查无误后,点击保存按钮,屏幕左下角会显示凭证保存成功的信息

修改盘点数量MI04过账Mi07:BAPI_MATPHYSINV_COUNT/BAPI_MATPHYSINV_POSTDIFF

 

【BAPI】

REPORT  YLM_TEST012.

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

PARAMETERS:P_WERKS LIKE  MARD-WERKS DEFAULT \'RYL5\',
           P_LGORT LIKE  MARD-LGORT DEFAULT \'3100\',
           P_MATNR LIKE  MARD-MATNR DEFAULT \'0609990060199012\',
           P_CHARG TYPE ISEG-CHARG DEFAULT \'2013102799\',
           P_ERFMG TYPE ISEG-ERFMG DEFAULT \'999\',
           P_MEINS TYPE MEINS      DEFAULT \'CTL\',
           P_IBLNR TYPE IKPF-IBLNR DEFAULT \'100000173\',
           P_DATE  TYPE IKPF-BLDAT DEFAULT \'20140618\',
           P_GJAHR TYPE IKPF-GJAHR DEFAULT \'2014\'.
SELECTION-SCREEN END OF BLOCK BLK1.

DATA:
      GT_RETURN_CODE  LIKE TABLE OF BAPIRET2 WITH HEADER LINE, "创建凭证返回信息
      GT_RETURN_CODE2 LIKE TABLE OF BAPIRET2 WITH HEADER LINE, "创建凭证返回信息
      GT_ITEM         LIKE ISEG                     OCCURS 0 WITH HEADER LINE,
      GT_BAPI_ITEM    LIKE BAPI_PHYSINV_COUNT_ITEMS OCCURS 0 WITH  HEADER LINE,
      GT_BAPI_ITEM2   LIKE BAPI_PHYSINV_POST_ITEMS
      OCCURS 0 WITH HEADER LINE.

DATA: GV_DATUM  LIKE IKPF-BLDAT,  "盘点日期
      GV_IBLNR LIKE IKPF-IBLNR,  "盘点凭证号
      GV_GJAHR LIKE IKPF-GJAHR.  "会计年度

GT_BAPI_ITEM-ITEM      = 1.      "行号
GT_BAPI_ITEM-MATERIAL  = P_MATNR."物料编码
GT_BAPI_ITEM-BATCH     = P_CHARG."批次
GT_BAPI_ITEM-ENTRY_QNT = P_ERFMG."录入系统实盘数
GT_BAPI_ITEM-ENTRY_UOM = P_MEINS."计量单位

CASE P_ERFMG.
  WHEN 0.
    GT_BAPI_ITEM-ZERO_COUNT = \'X\'.
  WHEN OTHERS.
ENDCASE.

APPEND GT_BAPI_ITEM.

GT_BAPI_ITEM2-ITEM     = 1.      "行号
GT_BAPI_ITEM2-MATERIAL = P_MATNR."物料编码
GT_BAPI_ITEM2-BATCH    = P_CHARG. "批次
APPEND GT_BAPI_ITEM2.

**************调用bapi,相当于MI04录入实盘数
GV_IBLNR = P_IBLNR."盘点凭证
GV_DATUM = P_DATE."盘点日期
GV_GJAHR = P_GJAHR."会计年度

CALL FUNCTION \'BAPI_MATPHYSINV_COUNT\'
  EXPORTING
    PHYSINVENTORY = GV_IBLNR
    FISCALYEAR    = GV_GJAHR
    COUNT_DATE    = GV_DATUM
  TABLES
    ITEMS         = GT_BAPI_ITEM
    RETURN        = GT_RETURN_CODE.

CALL FUNCTION \'BAPI_TRANSACTION_COMMIT\'
  EXPORTING
    WAIT = \'X\'.
*
**************调用bapi,相当于MI07差异过帐
CALL FUNCTION \'BAPI_MATPHYSINV_POSTDIFF\'
  EXPORTING
    PHYSINVENTORY = GV_IBLNR
    FISCALYEAR    = GV_GJAHR
    PSTNG_DATE    = GV_DATUM
  TABLES
    ITEMS         = GT_BAPI_ITEM2
    RETURN        = GT_RETURN_CODE2.

CALL FUNCTION \'BAPI_TRANSACTION_ROLLBACK\'.
*      EXPORTING
*        WAIT = \'X\'.

分类:

技术点:

相关文章:

  • 2021-12-18
  • 2021-12-14
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2021-10-02
猜你喜欢
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
  • 2021-11-11
  • 2021-12-26
相关资源
相似解决方案