SAP: VA02 Enhancement MV45AF0F_FCODE_BEARBEITEN / MV45AF0F_FUNKTION_AUSFUEHREN

58 篇文章 0 订阅

MV45AF0F_FCODE_BEARBEITEN:

ENHANCEMENT 1  ZSO_WF_CHECK.    "active version
DATA: L_WFSTATE TYPE CHAR1.
DATA:L_INSTID TYPE ZWF004-INSTID.
l_INSTID VBAK-VBELN.
IF SY-TCODE 'VA02' and sy-calld space . "AND  ( SY-UNAME = 'AGATELIU' OR SY-UNAME = 'LIONELYIP' ).
CALL FUNCTION 'ZWF_GET_CURRENTSPSTEPID'
 EXPORTING
   WFID              'WFSD0001'
   INSTID            L_INSTID
 IMPORTING
   WFSTATE           L_WFSTATE   .

IF SY-SUBRC AND L_WFSTATE 2.
MESSAGE E011(ZWF).
ENDIF.
ENDIF.
ENDENHANCEMENT.

 

FUNCTION ZWF_GET_CURRENTSPSTEPID .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(WFID) TYPE  ZWF001-WFID OPTIONAL
*"     VALUE(INSTID) LIKE  ZWF005-INSTID OPTIONAL
*"  EXPORTING
*"     VALUE(NEXTSPID) LIKE  ZWF001-SPID
*"     VALUE(NEXTSPTITLE) LIKE  ZWF001-SPNAME
*"     VALUE(NEXTSPUSER) LIKE  WFSYST-AGENT
*"     VALUE(CURSPID) LIKE  ZWF001-SPID
*"     VALUE(CURSPTITLE) LIKE  ZWF001-SPNAME
*"     VALUE(INITSPID) LIKE  ZWF001-SPID
*"     VALUE(ENDSPID) LIKE  ZWF001-SPID
*"     VALUE(WFSTATE) TYPE  CHAR1
*"  TABLES
*"      SPJB STRUCTURE  ZWF005 OPTIONAL
*"----------------------------------------------------------------------


  data: it_wf001 type table of zwf001 with header line.
  DATA: L_SPLX TYPE ZWF004-SPLX.

  select single spid into initspid
                     from zwf001
                    where wfid wfid
                      and spidlx '1'.

  SELECT  INTO CORRESPONDING FIELDS OF TABLE IT_wf004
    FROM ZWF004
    WHERE INSTID INSTID
      AND WFID WFID.

  sort it_wf004 by spcnt descending.
  read table it_wf004 into it_wf004 index 1.
  if sy-subrc 0.
    curspid it_wf004-xjspid.
    L_SPLX IT_WF004-SPLX.
  endif.

  select into corresponding fields of table it_wf005
    from zwf005
    where instid instid
     and wfid wfid.


  data: tmp_selid type zwf005-selid.
  data: tmp_spid type zwf005-spid.
  sort it_wf005 by spid descending.
  loop at it_wf005 into it_wf005.
    if tmp_spid <> space.
      it_wf005-nstep tmp_spid.
      MODIFY IT_WF005 FROM IT_WF005 TRANSPORTING NSTEP.
      clear tmp_spid.
    endif.
    if tmp_selid it_wf005-selid or it_wf005-selid space.
      tmp_spid it_wf005-NSTEP.
      delete it_wf005.
      continue.
    endif.
    tmp_selid it_wf005-selid.
  endloop.


  READ TABLE IT_WF005 INTO IT_WF005 INDEX 1.
  IF SY-SUBRC 0.
    ENDSPID IT_WF005-SPID.
  ENDIF.

  READ TABLE IT_WF005 WITH KEY SPID CURSPID.
  IF SY-SUBRC 0.
    NEXTSPID IT_WF005-NSTEP.
    NEXTSPUSER+2 IT_WF005-SELID.
    NEXTSPUSER+0(2'US'.
  ENDIF.

  SELECT SINGLE SPNAME INTO CURSPTITLE
     FROM ZWF001
     WHERE WFID WFID
       AND SPID curSPID.

  SELECT SINGLE SPNAME INTO NEXTSPTITLE
     FROM ZWF001
    WHERE WFID WFID
     AND SPID NEXTSPID.

  spjb[] it_WF005[].
  LOOP AT Spjb INTO SPJB.
    SPJB-SELID+2 SPJB-SELID.
    SPJB-SELID+0(2'US'.
    MODIFY SPJB FROM SPJB TRANSPORTING SELID.
  ENDLOOP.
  SORT SPJB BY SPID.


  IF L_SPLX 'C'.
    WFSTATE '4'.
  ELSEIF CURSPID INITSPID OR CURSPID IS INITIAL.
    WFSTATE '1'.
  ELSEIF CURSPID 'APP'.
    WFSTATE '3'.
  ELSE.
    WFSTATE '2'.
  ENDIF.
ENDFUNCTION.

 

MV45AF0F_FUNKTION_AUSFUEHREN:

ENHANCEMENT 18  /NFM/SD_SAPMV45A.    "active version
* Local saving of NF data during navigation:                      "/NFM/
  if /nfm/g_tbasic-active /nfm/c_xflag.                         "/NFM/
    data: l_fcode like sy-ucomm.                                  "/NFM/
    if fcode 'KUST' or fcode 'VA05' or                        "/NFM/
       fcode 'VA15' or fcode 'VA25' or                        "/NFM/
       fcode 'VA35' or fcode 'VA45' or                        "/NFM/
       fcode 'VA55'.                                            "/NFM/
      include /nfm/mv45a1.                                        "/NFM/
      l_fcode fcode.                                            "/NFM/
    endif.                                                        "/NFM/
  endif.                                                          "/NFM/
ENDENHANCEMENT.
ENHANCEMENT 1  ZCHECK_DELETE_SO.    "active version
*
  IF fcode 'LOES' AND sy-uname ne 'OLIVER_LEE'.
    OLD_FCODE 'ENT1'.
    fcode 'ENT1'.
    exit.
  ENDIF.
ENDENHANCEMENT.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值