<br><font size=2 face="sans-serif">Good to hear from the experts! &nbsp;Accept
my apology for misinterpreting your request.</font>
<br>
<br><font size=2 face="sans-serif">The redirect that Mark was interested
in happens after the login user has been determined to have valid work
items.</font>
<br><font size=2 face="sans-serif">At that point, we call transaction SO01.
&nbsp;Sample code shown below.</font>
<br>
<br><font size=1 face="Arial Monospaced for SAP">DATA: wi_tab &nbsp; &nbsp;
&nbsp; LIKE swwwlhead OCCURS 0 WITH HEADER LINE.</font>
<br><font size=1 face="Arial Monospaced for SAP">DATA: wl_user_tab &nbsp;LIKE
swhactor &nbsp;OCCURS 0 WITH HEADER LINE. </font>
<br><font size=1 face="Arial Monospaced for SAP">DATA: lcount &nbsp; &nbsp;
&nbsp; TYPE i.</font>
<br><font size=1 face="Arial Monospaced for SAP">DATA: wl_subrc &nbsp;
&nbsp; TYPE sysubrc. </font>
<br>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; CALL FUNCTION
'SWR_WL_CREATE' &nbsp; &nbsp;&quot;get user's worklist</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; EXPORTING
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
language &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= sy-langu
&nbsp;&quot;system language &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
user &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
sy-uname &nbsp;&quot;user logged on &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; TABLES
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
worklist &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= wi_tab
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; EXCEPTIONS
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
orginfo_not_found &nbsp; &nbsp; &nbsp; = 1 &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
OTHERS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; . &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; LOOP AT
wi_tab. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* check for
runaway WIs - general tasks w/ no agent assigned</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; CALL
FUNCTION 'RH_WI_AGENTS_GET' &nbsp; &nbsp; &quot;get agents for work items
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
EXPORTING &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; act_wi_id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
= wi_tab-wi_id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
TABLES &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; wi_agent_list &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = wl_user_tab
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
EXCEPTIONS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; no_active_plvar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1 &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; no_agent_found &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 2 &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; general_task &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 3
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; background_task &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 4 &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; OTHERS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;= 5. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; IF
sy-subrc = 3. &nbsp; &nbsp;&quot;no specific agent(s) found &nbsp; </font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* runaway WIs
need to be reserved by someone </font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* Reserve WI
to static user ID until alternative found &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
DATA: &nbsp;wl_agent TYPE sy-uname VALUE 'JOHNDOE'. &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
CALL FUNCTION 'SAP_WAPI_RESERVE_WORKITEM' &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; EXPORTING &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; workitem_id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= wi_tab-wi_id
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; actual_agent &nbsp; &nbsp; &nbsp; &nbsp; = wl_agent &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; do_commit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 'X'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; IMPORTING &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; return_code &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= wl_subrc
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; . &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* Remove the
General Task WI from logon user's list</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
DELETE wi_tab INDEX sy-tabix. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font>
<br>
<br><font size=1 color=blue face="Arial Monospaced for SAP">***** NOTIFY
WF ADMINISTRATORS OF WI ***** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
IF wl_subrc = 0. &nbsp; &nbsp;&quot;WI was successfully reserved &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &lt;&lt;&lt;insert some kind of e-mail communicaton process here&gt;&gt;&gt;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; &nbsp;
ENDIF. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; ENDIF.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; ENDLOOP.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;</font>
<br>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; DESCRIBE
TABLE wi_tab LINES lcount.</font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* &nbsp;Only
process transaction when workitems are present</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; IF lcount
&gt; 0.</font>
<br><font size=1 color=blue face="Arial Monospaced for SAP">* &nbsp;shows
SAP Office Inbox</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; &nbsp; CALL
TRANSACTION 'SO01'.</font>
<br><font size=1 face="Arial Monospaced for SAP">&nbsp; &nbsp; ENDIF.</font>
<br>
<br>
<br>
<br><font size=1 face="sans-serif"><b>Michael Pokraka &lt;wug.replies@workflowconnections.com&gt;</b>
</font>
<p><font size=1 face="sans-serif">05/10/2005 08:44 AM</font>
<p>
<br>
<br><font size=2><tt>Indeed, it's the quiet ones that you've got to watch
out for!<br>
<br>
Just thought I might throw in another variation of the same theme: The
same<br>
check on RH_WI_AGENTS_GET can also be done if the client happens to run
a<br>
custom RSWUWFML. Neither method is foolproof as they rely on nobody reserving<br>
the item in between runs/logons, but having used the RSWUWFML it seemed
to<br>
catch most of them. <br>
<br>
Cheers<br>
Mike<br>
<br>
--- Mark Pyc &lt;mark.pyc@gmail.com&gt; wrote:<br>
G'day Tedde,<br>
This is a new one on me! How many more tricks do you have up your sleeve?<br>
The usage I liked was where in log-on exit you check if a user has<br>
newWorkitems and if so redirect them to the business workplace as theirstart<br>
transaction. This is much nicer than setting the businessworkplace as the<br>
standard log in transaction statically as it only applies to those who
have<br>
work to do.<br>
Same exit I presume? How do you set the business workplace as the first<br>
screen?<br>
Have fun,Mark</tt></font>
<br><font size=2><tt><br>
On 5/9/05, Tedde Taege &lt;ttaege@nebraska.edu&gt; wrote:</tt></font>
<br>
<br><font size=2><tt>At the urging of workflow gurus Mark P. &amp; Mike
P., I am posting an idea that was included in my presentation at ASUG.
&nbsp;</tt></font>
<br>
<br><font size=2><tt>I have been burnt by general tasks that get sent into
everyone's workflow&gt; inbox. &nbsp;Here is a way that lowers the exposure
from a runaway general task by checking for general tasks as each user
logs into the system. &nbsp;</tt></font>
<br>
<br><font size=2><tt>In user exit EXIT_SAPLSUSF_001 - ZXUSRU01 (function
group XUSR) which executes at user login: </tt></font>
<br><font size=2><tt>• &nbsp; &nbsp; &nbsp; &nbsp;Retrieve work list for
user &nbsp;(function SWR_WL_CREATE) </tt></font>
<br><font size=2><tt>• &nbsp; &nbsp; &nbsp; &nbsp;Check agents assigned
for work items (function RH_WI_AGENTS_GET) </tt></font>
<br><font size=2><tt>• &nbsp; &nbsp; &nbsp; &nbsp;Reserve general task
work items to a specific ID (i.e. workflow&gt; administrator) (function
SAP_WAPI_RESERVE_WORKITEM) </tt></font>
<br><font size=2><tt>• &nbsp; &nbsp; &nbsp; &nbsp;Upon a successful reservation,
notify workflow administration about the work item </tt></font>
<br>
<br><font size=2><tt>Use caution with this exit because if you mess up
here, then your users might not able to log into the system.</tt></font>
<br><font size=2><tt><br>
</tt></font>
<br>