<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:9.0pt;
        font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Courier New";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Thank you everyone for the replies.  Thanks to what Kjetil mentioned about “General” substitution, I now see what is happening.<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>When our users create a substitution rule through the UWL, the screen initially defaults to the profile “ALL”:<o:p></o:p></span></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><img width=818 height=382 id="Picture_x0020_1" src="cid:image001.png@01D05010.7CDEA810"><o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>The user can use the drop-down to select one of the other profiles if they want to, but it will not allow them to leave the profile blank:<o:p></o:p></span></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><img width=395 height=92 id="Picture_x0020_2" src="cid:image002.png@01D05011.0EB73C20"><o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>The issue occurs when they do choose the “ALL” profile.  The resulting table entry in HRUS_D2 ends up with the profile field being blank:<o:p></o:p></span></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><img width=574 height=136 id="Picture_x0020_4" src="cid:image003.png@01D05011.CAA54800"><o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>This then treats the newly created substitution rule as “General” substitution.<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>If I use a back-end utility to change the profile field from blank to “ALL”, then the new task classification does get excluded from the substitute’s view.<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>So does this imply that the default profile of “ALL” that shows up in the Manage Substitution Rules screen is really the “General” profile and not our custom defined profile named “ALL”?  Or is it possible there is some kind of bug in the UWL substitution function that is not passing the “ALL” profile to the backend table?<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Loren Bratzler<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Norfolk Southern Corporation<o:p></o:p></span></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>-----Original Message-----<br>From: sap-wug-bounces@mit.edu [mailto:sap-wug-bounces@mit.edu] On Behalf Of Kjetil Kilhavn<br>Sent: Tuesday, February 24, 2015 6:01 AM<br>To: SAP Workflow Users' Group<br>Subject: [EXTERNAL] Re: Task Classification and Substitution Profiles</p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>Tirsdag 24. februar 2015 09.19.05 skrev Dart, Jocelyn:<o:p></o:p></p><p class=MsoPlainText>&gt; Hi Kjetil<o:p></o:p></p><p class=MsoPlainText>&gt; No not harsh just grimly realistic.<o:p></o:p></p><p class=MsoPlainText>&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; Biggest problem with task profiles to me is you can only assign 1 task <o:p></o:p></p><p class=MsoPlainText>&gt; classification per substitute.  So if you want to assign eg travel <o:p></o:p></p><p class=MsoPlainText>&gt; tasks &amp; budget tasks to the same substitute that's not permitted.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>I assume you mean profiles here - because a profile with both travel tasks and budget tasks can be created so the substitute would only have to be defined once to get both types of tasks.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>But I agree that this can be a problem, as an organization using a wide variety of workflow tasks may end up with an unmanageable number of substitution profiles since you have to create a substitution profile for every combination of classfication someone will want to assign. Thorough analysis is necessary to reduce the number of profiles as much as possible.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>Combined with good assignment of possible agents it should be manageable with quite a few task classes I would think, but perhaps not when you exceed 10-15. <o:p></o:p></p><p class=MsoPlainText>I don't have any experience with a high number of task classes, but with five classes it is at least not a problem. We actually ended up with fewer profiles than task classes there - but it will depend on policies and a lot of factors.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>&gt; I have seen some sites create wrappers for task launch to recheck the <o:p></o:p></p><p class=MsoPlainText>&gt; executing users authority before launching the application itself.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>There are as always many roads leading to Rome.<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>&gt; Others have created their own substitution checks. Eg in BADIs that <o:p></o:p></p><p class=MsoPlainText>&gt; only permit users to assign a substitute of equal or greater authority <o:p></o:p></p><p class=MsoPlainText>&gt; or limit substitutes to managers in the same reporting line<o:p></o:p></p><p class=MsoPlainText>&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; I'm still hoping for better answers<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>It would be an improvement if the substitute could be assigned to selected substitution profiles instead of just one. One could probably remove the entire profile concept, and let the substitute be assigned directly to selected task classes. Not a minor change though...<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>&gt; Rgds<o:p></o:p></p><p class=MsoPlainText>&gt; Jocelyn<o:p></o:p></p><p class=MsoPlainText>&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; Sent from my iPhone with many apologies for the spelling, grammar and <o:p></o:p></p><p class=MsoPlainText>&gt; any other deficiencies<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; On 23 Feb 2015, at 10:40 pm, Kjetil Kilhavn &lt;<a href="mailto:list.sap-wug@vettug.no"><span style='color:windowtext;text-decoration:none'>list.sap-wug@vettug.no</span></a>&gt;<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; wrote:<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; Don't be so harsh on SAP Jocelyn - they try their best ;-)<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; The main problem is that task classification is not obligatory, and <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; that it is not mandatory to select a substitution profile (in GUI <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; the lack of a profile is accompanied by the description “General <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; substitution”, I guess this is equivalent to the “All tasks” <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; selection in the UWL although it appears as if you select a profile in the UWL).<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; You *can* solve your problem by doing the following:<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; 1) Implement a measure (I don't know if there are any explicit <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; enhancement<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; possibilities) to ensure that “All tasks”/“General substitution” is <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; not an accepted choice of substitution profile.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; 2) Assign classification to all tasks in use, and create the <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; substitution profiles for all required combinations of task classes.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; Even if you don't have to assign task classification to a task for <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; which substitution should not be possible I would recommend creating <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; a class that makes it obvious that it is excluded from substitution.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; The “General substitution” profile is the only profile that allows a <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; substitute to see tasks without classification, so both steps are <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; required.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; I have not implemented such solutions (customer did not want to), <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; but it would be a permanent and proper solution to the problem which <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; could be applied to any number of tasks without requiring further <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; development. It would also (and I would argue this is equally <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; important) force users to actively make a choice of substitution <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; profile. They often don't, even if the substitute should only handle <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; e.g. approval of purchases and invoices.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt; Lørdag 21. februar 2015 08.17.11 skrev Dart, Jocelyn:<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Hi Loren<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Unfortunately I suspect what you are missing is the reality check <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; on task classification capabilities or lack thereof - perhaps try <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; work item exit or a wrapper function or the Substitution BADIs <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; instead Rgds Jocelyn<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Sent from my iPhone with many apologies for the spelling, grammar <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; and any other deficiencies<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; On 21 Feb 2015, at 8:08 am, Bratzler, Loren <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; &lt;<a href="mailto:Loren.Bratzler@nscorp.com%3cmailto:Loren.Bratzler@nscorp.com"><span style='color:windowtext;text-decoration:none'>Loren.Bratzler@nscorp.com&lt;mailto:Loren.Bratzler@nscorp.com</span></a>&gt;&gt; wrote:<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Hello Wuggers!<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; We have a situation here where the business realized that Annual <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Performance Reviews can be opened and read by UWL Substitutes.  <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; They want us to exclude tasks related to the Annual Appraisal <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; process from a UWL Substitute’s view when they are working on items <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; on behalf of someone else.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; I found this very good article on SCN that explains the process for <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; creating task classifications and assigning those classifications <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; to substitution profiles:<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <a href="http://wiki.scn.sap.com/wiki/display/HOME/Link+Substitution,+Classi"><span style='color:windowtext;text-decoration:none'>http://wiki.scn.sap.com/wiki/display/HOME/Link+Substitution,+Classi</span></a><o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; ficati<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; on+ and+Profiles<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; However, I am struggling to make this work.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Our situation is that we basically have two Substitution profiles.  <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; One is named “ALL” (for all tasks) and the other is named <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; “TRAVEL_APPRO” (for only approving travel related tasks).  What I <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; tried to do was define a new Classification for performance reviews <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; named “PDR” (Personal Development Review).  We use the standard <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; appraisal workflow, WS12300110, which has standard task TS12300115 <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; for the employee to read and respond to their performance review.  <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; I assigned task TS12300115 to the new “PDR”<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; classification.  But then I did not assign “PDR” as a <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; classification for the “ALL” substitution profile.  PDR is not assigned to any profile.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; My thinking was that if the new classification is not included in <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; any profile, then the tasks assigned to that classification would <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; not show up in the substitutes’ queue, regardless of which profile they were using.<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Am I missing something here?<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Any help is greatly appreciated!<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Loren Bratzler<o:p></o:p></p><p class=MsoPlainText>&gt; &gt;&gt; Norfolk Southern Corporation<o:p></o:p></p><p class=MsoPlainText>&gt; <o:p></o:p></p><p class=MsoPlainText>&gt; _______________________________________________<o:p></o:p></p><p class=MsoPlainText>&gt; SAP-WUG mailing list<o:p></o:p></p><p class=MsoPlainText>&gt; <a href="mailto:SAP-WUG@mit.edu"><span style='color:windowtext;text-decoration:none'>SAP-WUG@mit.edu</span></a><o:p></o:p></p><p class=MsoPlainText>&gt; <a href="http://mailman.mit.edu/mailman/listinfo/sap-wug"><span style='color:windowtext;text-decoration:none'>http://mailman.mit.edu/mailman/listinfo/sap-wug</span></a><o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>--<o:p></o:p></p><p class=MsoPlainText>Kjetil Kilhavn / Vettug AS (<a href="http://www.vettug.no"><span style='color:windowtext;text-decoration:none'>http://www.vettug.no</span></a>)<o:p></o:p></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>SAP-WUG mailing list<o:p></o:p></p><p class=MsoPlainText><a href="mailto:SAP-WUG@mit.edu"><span style='color:windowtext;text-decoration:none'>SAP-WUG@mit.edu</span></a><o:p></o:p></p><p class=MsoPlainText><a href="http://mailman.mit.edu/mailman/listinfo/sap-wug"><span style='color:windowtext;text-decoration:none'>http://mailman.mit.edu/mailman/listinfo/sap-wug</span></a><o:p></o:p></p></div></body></html>