zhouying23 发表于 2015-9-19 10:35:38

SAP Migo增强 105时通过提货单号自动带出批次和生产日期

SAP Migo增强 105时通过提货单号自动带出批次和生产日期

  实现功能1:在MVT103时录入提货单(送货单),自动查询类表是否存在送货单,如果不存在,提示录入错误。
  实现功能2:在105时,根据送货单自动带出来批次号码,生产日期;并把批次号码,生产日期写到对应的行项目当中。
  
  1、建表ZMES_MIGO_VD



  2、创建RFC函数供MES系统调用。
  1)、ZMES_RFC_MIGO_VD_INSERT


  2)、ZMES_RFC_MIGO_VD_DELETE


  
  3、找到客户增强MBCF0002。
  se37->EXIT_SAPMM07M_001->双击ZXMBCU02。点修改按钮后加入以下代码:
  ***************移动类型103或105时从MES取批次信息*******************
DATA: FRBNRLIKE MKPF-FRBNR. "提货单号
if ( I_MSEG-BWART = '103' OR I_MSEG-BWART = '105' )
AND ( I_MSEG-WERKS = 'G009' OR I_MSEG-WERKS = 'G010' ).
SELECT SINGLE FRBNR INTO FRBNR
FROM ZMES_MIGO_VD
WHERE EBELN = I_MSEG-EBELN AND FRBNR = I_MKPF-FRBNR.
IF SY-SUBRC <> 0.
    MESSAGE E398(00) WITH '采购订单'
                        I_MSEG-EBELN
                        '不存在送货单'
                        I_MKPF-FRBNR.
ENDIF.
endif.
***************移动类型103或105时从MES取批次信息*******************

  4、Se19创建BADI MB_MIGO_BADI的实现。
  1)、在se19界面选择Create Implementation->选择Classic BAdI->输入MB_MIGO_BADI->点击Create Impl.

  2)、输入Implementation Short Text,然后点保存按钮。

  3)、创建传输请求并保存。这时弹出Create Enhancement Implementation对话框,在Enhancement Implementation输入ZMIGO,然后输入Short Text后保存。
  4)、双击ZCL_IM_MIGO_IMPORT_CHARG进入该Class Interface。

  5)、点击Attributes Tab标签。新建一个参数:GS_GOHEAD。

  6)、在Methods Tab页,找到方法IF_EX_MB_MIGO_BADI~PAI_HEADER,双击打开它。然后加入代码GS_GOHEAD = IS_GOHEAD. 如下图:

  7)、回到Methods Tab页,找到方法IF_EX_MB_MIGO_BADI~LINE_MODIFY,双击打开它。然后加入以下代码:
  IF GS_GOHEAD-FRBNR <> ''
    AND ( CS_GOITEM-WERKS = 'G009' OR CS_GOITEM-WERKS = 'G010' )
    AND CS_GOITEM-BWART = '105' AND CS_GOITEM-CHARG = ''.
    SELECT SINGLE CHARG HSDAT INTO (CS_GOITEM-CHARG,CS_GOITEM-HSDAT)
    FROM ZMES_MIGO_VD
    WHERE EBELN = CS_GOITEM-EBELN
      AND EBELP = CS_GOITEM-EBELP
      AND FRBNR = GS_GOHEAD-FRBNR.
endif.
如下图:
页: [1]
查看完整版本: SAP Migo增强 105时通过提货单号自动带出批次和生产日期