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 = 0 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.