WF Program Exists

Sample, Rick Rick.Sample at graybar.com
Wed Oct 27 13:04:15 EDT 2010


Hi all,

With this said, I have a wee bit of concern. I want to leverage some
newer technology to solve some annoyances that I think are work arounds,
but don't want to get burned by changing winds at SAP.

I am in the process of learning these as well as SAP OO. Simple class files
to get our feet wet type stuff. And only approved to use where we can leverage the use.
i.e. not re-writing everything in OO just because we look cool to do so.

Thoughts on these WF Program Exits lively hood? Direction? etc. etc.

Rick


From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On Behalf Of Dart, Jocelyn
Sent: Wednesday, October 20, 2010 10:11 PM
To: SAP Workflow Users' Group
Subject: RE: WF ProgramExists

Don't  know them that well sorry Karl... but yes the scenario you describe would be what I would expect.
You would need to choose which state to react to.
Regards,
Jocelyn

From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On Behalf Of Karl Nietz
Sent: Thursday, 21 October 2010 11:32 AM
To: SAP Workflow Users' Group
Subject: WF ProgramExists


Hi Jocelyn,
That was quite useful but I did notice that when a workitem was executed the event STATE_CHG was published twice.  I wonder whether this is because it occurs when you first reserve the workitem during execution and then again when you complete execution.  No problem for my application but maybe an issue if you only want to react once during the LUW.
Karl
From:

"Dart, Jocelyn" <jocelyn.dart at sap.com>

To:

"SAP Workflow Users' Group" <sap-wug at mit.edu>

Date:

19/10/2010 10:31 AM

Subject:

RE: WF ProgramExists


________________________________



Mike - Try the state change event - Yes that should be usable when the work item is forwarded, reserved or replaced.
Regards,
Jocelyn

-----Original Message-----
From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On Behalf Of Mike Pokraka
Sent: Monday, 18 October 2010 9:20 PM
To: SAP Workflow Users' Group
Subject: Re: WF ProgramExists

Hi Kjetil,

Doesn't address the question whether it gets called during forwarding, but
a much more useful piece of info instead, thanks!

Mike

On Mon, October 18, 2010 10:21 am, Kjetil Kilhavn wrote:
> Fredag 15. oktober 2010 09.44.51 skrev Mike Pokraka:
>> Hi Rick,
>>
>> No I haven't played with them, but looks like there's some good stuff
>> there. If the forwarding isn't catchable in the WF exit, you could do a
>> small enhancement somewhere in the forwarding functionality.
>
> It's been a while since I examined IF_SWF_IFS_WORKITEM in order to find
> out if
> I could use this interface to log some information in a solution's WF log
> instead of using separate logging tables, but here's my findings about the
> sequence of method invocations anyway - for what it is worth:
>
> WI type     | BC | AR       | C  | BE  | SC    | AE | AA | BR |
> ---------------------------------------------------------------
> W (dialog)  | 1  | 2 (a)    | 3  |     |       |    |    |    |
> B (backgr.) |    |          |    | 1   | 2     | 3  |    |    |
>             |    |          |    |     | 4,5   |    |    |    |
> F (flow)    | 1  | 6,7,8,9, | 2  | 3   | 4,5,  | 10,|    |    |
>             |    | 13,14,15,|    |     | 11,12 |    |    |    |
>             |    | 16,17    |    |     |       |    |    |    |
> ---------------------------------------------------------------
> (a) Not if no agent is found
>
> BC - BEF_CREAT
> AE - AFT_REXEC
> C  - CREATED
> BE - BEF_EXEC
> SC - STATE_CHG
> AE - AFT_EXEC
> AA - AFT_ASYINV
> BR - BEF_REMOVE
>
> Well, as I can recall it was the *sequence* I made a note of, my memory
> may of
> course be failing ;-)
>
>>
>> Cheers,
>> Mike
>>
>> On Thu, October 14, 2010 4:26 pm, Sample, Rick wrote:
>> > Mike,
>> >
>> > That is sort of what I have right now. Pre/Post BG steps on these
>> > approval tasks.
>> > I have a wee bit of time to play around with these WF Program Exits
>> and
>> > determine if I have valid use 'without' over engineering my WF.
>> > It looks doable and some simple container ops seem to work... mostly
>> > anyway.
>> >
>> > I am hacking some of the class files in the SWF_TST package. First try
>> > was the WF Trace.
>> > That did not work. Won't turn on via the class file. Annoying, but got
>> > the container ops
>> > code and kicking around.
>> >
>> > You use this functionality?
>> >
>> > I plan to spend a day or two more and see what I can get out of these
>> > class files.
>> >
>> > As always, thanks for the feedback.
>> > Rick
>> >
>> >> -----Original Message-----
>> >> From: sap-wug-bounces at mit.edu [mailto:sap-wug-
>> >> bounces at mit.edu] On Behalf Of Mike Pokraka
>> >> Sent: Thursday, October 14, 2010 8:03 AM
>> >> To: SAP Workflow Users' Group
>> >> Subject: RE: WF ProgramExists
>> >>
>> >> Rick,
>> >>
>> >> Just a general comment which may not apply, but I find
>> >> that I tend to do role resolution separately more often
>> >> than not as it avoids most of these conundrums.
>> >> To accomplish your scenario I'd use two conditional texts in
>> >> my work item and pass in a flag to display one or the other.
>> >> It may be possible to catch the forwarding action via a work
>> >> item exit (not sure & no time to look into it) and change
>> >> the flag in the container - the new text would be displayed
>> >> automatically for the new user.
>> >>
>> >> Cheers,
>> >> Mike
>> >>
>> >> On Thu, October 14, 2010 1:12 pm, Sample, Rick wrote:
>> >> > Sorry, dumb question. I know a flag gets set somewhere,
>> >>
>> >> because of the
>> >>
>> >> > option
>> >> >
>> >> > to fail the role if FM failed. "Terminate if Rule Resolution
>> >>
>> >> has no
>> >>
>> >> > Result".
>> >> >
>> >> >
>> >> >
>> >> > Most WFs we have a 'Fail Back' option. If role fails to find
>> >>
>> >> next
>> >>
>> >> > agent in approval,
>> >> >
>> >> > send back to last agent with a changed TEXT to inform
>> >>
>> >> user what to do
>> >>
>> >> > next.
>> >> >
>> >> > User can manually forward,  whatever...
>> >> >
>> >> >
>> >> >
>> >> > What appears to be a better option is to get last agent
>> >>
>> >> and compare to
>> >>
>> >> > the current agent.
>> >> >
>> >> > The event AFT_REXEC "after rule executed", looks like it is
>> >>
>> >> what I want.
>> >>
>> >> > Will forward findings if anyone cares...
>> >> >
>> >> >
>> >> >
>> >> > Thanks,
>> >> >
>> >> > Rick
>> >> >
>> >> >
>> >> > From: sap-wug-bounces at mit.edu [mailto:sap-wug-
>> >>
>> >> bounces at mit.edu] On
>> >>
>> >> > Behalf Of Steffen Schloenvoigt
>> >> > Sent: Thursday, October 14, 2010 4:58 AM
>> >> > To: SAP Workflow Users' Group
>> >> > Subject: Re: WF ProgramExists
>> >> >
>> >> > Hmm no, but you could try to use FM
>> >>
>> >> 'SAP_WAPI_WORKITEM_RECIPIENTS' and
>> >>
>> >> > check if the result is empty...
>> >> >
>> >> > Best regards,
>> >> > Steffen Schlönvoigt
>> >> > 2010/10/13 Sample, Rick
>> >>
>> >> <Rick.Sample at graybar.com<mailto:Rick.Sample at graybar.c
>> >> om>>
>> >>
>> >> > Update,
>> >> > I figured out how to update the WI_TEXT with some code
>> >>
>> >> in
>> >>
>> >> > CL_SWL_ADM_COMMAND-WITEXT_CHANGE.
>> >> >
>> >> > Now, I would like to change this WI_TEXT on failure of the
>> >>
>> >> role res.
>> >>
>> >> > Example, if
>> >> > role res fails, set the WI_TEXT to "Error, bla bla bla you
>> >>
>> >> received
>> >>
>> >> > this because could not find next agent... "
>> >> > Right now, I have to execute the role res in a background
>> >>
>> >> task just to
>> >>
>> >> > figure out if next agent is found, set the message if not,
>> >>
>> >> etc. Then,
>> >>
>> >> > execute the Decision task (which executes the role res
>> >>
>> >> again) and send
>> >>
>> >> > to last agent.
>> >> >
>> >> > Question: Is there a flag in Work Item container that is set
>> >>
>> >> if role
>> >>
>> >> > fails?
>> >> >
>> >> >
>> >> >
>> >> > From: Sample, Rick
>> >> > Sent: Wednesday, October 13, 2010 8:53 AM
>> >> > To: SAP Workflow Users' Group
>> >> > Subject: WF ProgramExists
>> >> >
>> >> >
>> >> > Hi all,
>> >> >
>> >> >
>> >> >
>> >> > I have a need for a WF "Program Exit" to dynamically
>> >>
>> >> change the Task
>> >>
>> >> > Text at runtime.
>> >> >
>> >> >
>> >> >
>> >> > Currently, if I need to change a task text at runtime, I
>> >>
>> >> create a
>> >>
>> >> > container element and
>> >> >
>> >> > place it in the WI_TEXT. I then have a background task
>> >>
>> >> determine what
>> >>
>> >> > the task text should be and
>> >> >
>> >> > pass it in before the Decision step is executed. Kludgy, but
>> >>
>> >> it works
>> >>
>> >> > and fairly simple to understand.
>> >> >
>> >> >
>> >> >
>> >> > Now, I want to dynamically change this value using a
>> >>
>> >> Program Exit.
>> >>
>> >> > So I added the SAP standard
>> >>
>> >> CL_SWF_TST_PE_GETDESCRIPTION class to a
>> >>
>> >> > new task and
>> >> >
>> >> > it gets the Desc text and sets a container. Fine.
>> >> >
>> >> > Next, I modified this class to just get/set a Work Item
>> >>
>> >> container.
>> >>
>> >> > This also works fine.
>> >> >
>> >> >
>> >> >
>> >> > Now, I tried to get this to change the Task Text with this
>> >>
>> >> new
>> >>
>> >> > container element but no luck.
>> >> >
>> >> > This changes the container element, but does not change
>> >>
>> >> the Work Item
>> >>
>> >> > text.
>> >> >
>> >> >
>> >> >
>> >> > Anyone use these WF program exits?
>> >> >
>> >> > Any thoughts, examples, assistance is greatly appreciated.
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > ==================================
>> >> >
>> >> > METHOD change_cont_element.
>> >> >
>> >> >
>> >> >
>> >> >   DATA:
>> >> >
>> >> >    container TYPE REF TO if_swf_cnt_container,
>> >> >
>> >> >    lh_wihandle TYPE REF TO if_swf_run_wim_internal,
>> >> >
>> >> >    l_exception TYPE REF TO cx_swf_cnt_container,
>> >> >
>> >> >    l_wiid TYPE sww_wiid.
>> >> >
>> >> >
>> >> >
>> >> >   BREAK-POINT ID zexits.
>> >> >
>> >> >
>> >> >
>> >> >   l_wiid = me->m_ctx->get_workitem_id( ).
>> >> >
>> >> >
>> >> >
>> >> >   TRY.
>> >> >
>> >> >       lh_wihandle =
>> >>
>> >> cl_swf_run_wim_factory=>find_by_wiid( l_wiid ).
>> >>
>> >> >       container = lh_wihandle->get_wi_container( ).
>> >> >
>> >> >     CATCH cx_swf_run_wim.
>> >> >
>> >> >   ENDTRY.
>> >> >
>> >> >
>> >> >
>> >> >   TRY.
>> >> >
>> >> >       CALL METHOD container->element_get
>> >> >
>> >> >         EXPORTING
>> >> >
>> >> >           name = 'ZWI_TEXT'.
>> >> >
>> >> >
>> >> >
>> >> >       CALL METHOD container->element_set
>> >> >
>> >> >         EXPORTING
>> >> >
>> >> >           name             = 'ZWI_TEXT'
>> >> >
>> >> >           value            = 'New_Text'
>> >> >
>> >> >         IMPORTING
>> >> >
>> >> >           exception_return = l_exception.
>> >> >
>> >> >
>> >> >
>> >> >     CATCH cx_swf_tst_introspection_error.
>> >> >
>> >> >     CATCH cx_swf_cnt_container.
>> >> >
>> >> >   ENDTRY.
>> >> >
>> >> >
>> >> >
>> >> > ENDMETHOD.
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > Rick Sample | SAP Workflow Analyst/Developer
>> >> > 11885 Lackland Road | Maryland Heights, MO 63146 |
> --
> Kjetil Kilhavn (+47 40220607)
> Blue Consulting AS (http://www.bluec.no<http://www.bluec.no/>)
>
> _______________________________________________
> SAP-WUG mailing list
> SAP-WUG at mit.edu
> http://mailman.mit.edu/mailman/listinfo/sap-wug
>


_______________________________________________
SAP-WUG mailing list
SAP-WUG at mit.edu
http://mailman.mit.edu/mailman/listinfo/sap-wug

_______________________________________________
SAP-WUG mailing list
SAP-WUG at mit.edu
http://mailman.mit.edu/mailman/listinfo/sap-wug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/sap-wug/attachments/20101027/43a60c40/attachment.htm


More information about the SAP-WUG mailing list