無名经验总结与分享(SAP)            十年树木,百年树人

WMS函数组:17.WMS 对交货单进来拣货确认

FUNCTION ZRFC_WMS_LIPS_CONFIM.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      ET_LOG STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------
DATA:
      EP_EBELN LIKE EKKO-EBELN,
      EP_FRGKX TYPE FRGKX,
*      EX_VLELN LIKE EKKO-EBELN,
      IP_VBELN LIKE LIPS-VBELN,
      EP_SUBRC0 TYPE SY-SUBRC.
DATA:
******** VL10B
      EX_VBELN LIKE LIPS-VBELN,
      IP_INPUT LIKE ZWMS_VL10B_INPUT OCCURS 0 WITH HEADER LINE,
      ET_LOG_1 LIKE BAPIRET2 occurs 0 with header line,
      IT_EBELN LIKE ZWMS_CONVERT OCCURS 0 WITH HEADER LINE.
******3.对交货单进行过帐
CLEAR:
  IT_EBELN[].
**查找未生成的单据
SELECT * FROM  ZWMS_CONVERT AS C INTO TABLE  IT_EBELN WHERE ISOK <> 'X' AND FLAG <> '' AND VBELN = ' '.
*---------------CHA JWY_20170811
SORT IT_EBELN.
*---------------CHA JWY_20170811
LOOP AT IT_EBELN.
SELECT SINGLE BELNR INTO IT_EBELN-VBELN  FROM EKBE WHERE BEWTP = 'L' AND EBELN = IT_EBELN-EBELN.
UPDATE  ZWMS_CONVERT  SET  VBELN = IT_EBELN-VBELN
WHERE BILLNO  = IT_EBELN-BILLNO .
ENDLOOP.
CLEAR:
  IT_EBELN[].
SELECT * FROM  ZWMS_CONVERT AS C INTO TABLE  IT_EBELN WHERE ISOK <> 'X' AND VBELN <> ''.
DATA: t_XCHPF LIKE MARA-XCHPF.
DATA : SV(10),
  t_vbeln like likp-vbeln,
  t_charg like lips-charg,
  t_lgort like lips-lgort,
  t_LFIMG like LIPSD-G_LFIMG  .
*---------------CHA JWY_20170811
SORT IT_EBELN.
*---------------CHA JWY_20170811
LOOP AT IT_EBELN.
clear: sv,t_vbeln,t_charg,t_lgort,t_LFIMG.
    SV = IT_EBELN-VBELN.
perform f_add_zero using IT_EBELN-MATERIAL .
SELECT SINGLE XCHPF INTO t_XCHPF FROM MARA WHERE MATNR = IT_EBELN-MATERIAL .
IF t_XCHPF = 'X'.
      t_CHARG  = IT_EBELN-CHARG.
ELSE.
      t_CHARG  = ' '.
ENDIF.
    t_VBELN = IT_EBELN-VBELN.
    t_LGORT = IT_EBELN-LGPBE2.
    t_LFIMG = IT_EBELN-Quantity.
PERFORM F_ADD_ZERO USING SV.
    EP_SUBRC0 = -1.
*******查看是否已经过帐完成
DATA: P_WBSTK LIKE VBUK-WBSTK.
SELECT SINGLE WBSTK INTO P_WBSTK FROM VBUK WHERE VBELN = SV .
IF P_WBSTK = 'C'.
      ET_LOG-TYPE = 'W'.
      ET_LOG-ID = IP_VBELN.
      ET_LOG-MESSAGE = 'Goods Post Can''t Do Many Times!'.
APPEND ET_LOG.
ELSE.
CALL FUNCTION 'ZRFC_WMS_VL02N'
EXPORTING
          IP_CHARG = t_CHARG
          IP_VBELN = t_VBELN
          IP_LGORT = t_LGORT
          IP_LFIMG = t_LFIMG
IMPORTING
          EP_SUBRC = EP_SUBRC0
TABLES
          ET_LOG   = ET_LOG_1.
APPEND LINES OF ET_LOG_1 TO ET_LOG.
CLEAR ET_LOG_1[].
******更新信息
UPDATE  ZWMS_CONVERT  SET  FLAG = ET_LOG_1-MESSAGE
WHERE BILLNO  = IT_EBELN-BILLNO .
ENDIF.
*******查看是否已经过帐完成
SELECT SINGLE WBSTK INTO P_WBSTK FROM VBUK WHERE VBELN = SV .
IF P_WBSTK = 'C'.
UPDATE  ZWMS_CONVERT  SET  ISOK = 'X'
WHERE BILLNO  = IT_EBELN-BILLNO .
ENDIF.
DATA: it_convert like ZWMS_CONVERT.
clear it_convert.
select single * into it_convert from  ZWMS_CONVERT WHERE BILLNO  = IT_EBELN-BILLNO .
insert into ZWMS_CONVERT_log values it_convert.
ENDLOOP.
ENDFUNCTION.
***** 检查单据是否已经完成-START
*    CLEAR IP_WBSTK.
*    SELECT SINGLE WBSTK INTO IP_WBSTK FROM VBUK WHERE VBELN = IP_VBELN.
*
*    IF IP_WBSTK = 'C'.
*      ET_LOG-TYPE = 'W'.
*      ET_LOG-ID = IP_VBELN.
*      ET_LOG-MESSAGE = 'Goods Post Can''t Do Many Times!'.
*      APPEND ET_LOG.
*      ITAB_RETURN-SUBRC = 0.
*      ITAB_RETURN-MSG = ET_LOG-MESSAGE.
*      APPEND ITAB_RETURN.
*      CONTINUE.
*    ENDIF.
***** 检查单据是否已经完成-END

posted @ 2021-01-25 21:22  無名  阅读(124)  评论(0编辑  收藏  举报
Twttafku@163.com
十年树木,百年树人