[ECC 6.0] Workflow fails at switch step when logistics invoice header text is 'R', but not when it is 'r' or 'Really strange'

Kjetil Kilhavn kjetil.kilhavn at bluec.no
Fri May 9 06:21:32 EDT 2008


Ready for the strangest problem I have ever encountered? I've actually given 
up this one, but it should be usable as weekend amusement I think.

I've made a custom workflow for handling parked logistics invoices (don't need 
advice about how this is a bad idea - I know). Anyway, an issue came up for 
invoices for late payment interest (or Rente (either forsinkelsesrente or 
morarente) as it is called in Norway). Handling these invoices were a 
problem, so we needed to identify them and have a separate branch in the 
workflow.

Simple solutions are the best often, so it was suggested that an R would be 
put in the header text instead of the normal <purchase order number>/<contact 
person> header text - or at least preceding it.

Very well, I created a virtual attribute (boolean) to have something I could 
use in my conditions. This virtual attribute retrieves the header text, which 
had already been added as an attribute, and checks if the first non-space 
character is either 'R' or 'r'. If it is, my new attribute is set to X, 
otherwise cleared (set to space). So far all is well. 

I inserted a switch (expecting more special cases to come along) in the 
workflow. In the switch I check my attribute, and if it is X the outcome for 
late payment interest invoices is selected, otherwise the default outcome is 
selected. So far all is still well.

The funny thing is, if I park an invoice where the header text is 'R' the 
virtual attribute seems to be set correctly when I test the BOR object type, 
but the workflow fails (status ERROR) with two error messages in the log:
WL/821 (Work item nnn: Object FLOWITEM method EXECUTE can not be executed)
SWP/103 (Error when starting a SWITCH branch)

If, on the other hand, the header text is 'r' the virtual attribute seems to 
be set correctly, and the workflow functions as expected. If I have parked 
the invoice with header text 'R', I can later change it to e.g. 'Rente' and 
use transaction SWPR to kick the stopped workflow back into action.

I would love to see an explanation for this behaviour, but I don't expect one.

In a final act of desperation I substituted a condition for the switch, and 
that solved the problem - but I am still wondering why UPPER and lower case 
in a header text which was not referenced either in the switch or in the 
steps following the outcome would make a difference.

Have a good weekend :-)
-- 
Kjetil Kilhavn (+47 40220607)
Blue Consulting AS (http://www.bluec.no/)



More information about the SAP-WUG mailing list